Added a hint flag to prevent us from needing to perform whole-repo updates for every multi-file status update (such as those in the content browser). This also keeps the performance improvements we get form querying the workign copy root when 'Submit to source control...' is clicked.
Also added a temp fix for a crash when initializing the file list in the submit dialog where plugin content would not resolve package names correctly. Right now we just display the filename. A proper fix is hopefully incoming from Rob M (listed as UE-11493) which measn we can revert back to using package names.
From this UDN:
https://udn.unrealengine.com/questions/238672/potential-threading-issue-using-subversion-in-edit.html
UE-11466 - SVN status can take a very long time in certain circumstances, and possibly crash
[CL 2473604 by Thomas Sarkanen in Main branch]
#jira UE-6304 - Source Control: Add the ability to commit file deletions from the editor
#reviewedby Thomas.Sarkanen
[CL 2446774 by Richard TalbotWatkin in Main branch]
API break: added new pure virtual ISourceControlProvider::UsesChangelists()
API break: added new pure virtual ISourceControlState::FindHistoryRevision(const FString&)
API break: added new pure virtual ISourceControlRevision::GetRevision()
Implementing a Git provider requires us to be able to display revisions that are not indices as Git revisions are hashes. This updates the relvant code to allow us to display these revisions correctly.
[CL 2411986 by Thomas Sarkanen in Main branch]
* Multicast delegate Add* calls now return FDelegateHandles, and Remove* calls are now all deprecated, except for a new Remove function which takes a FDelegateHandle.
* New FConsoleManager::RegisterConsoleVariableSink_Handle and UnregisterConsoleVariableSink_Handle functions which work in terms of FConsoleVariableSinkHandle.
* Timer calls which don't take FTimerHandles are deprecated.
* FTicker::AddTicker now returns an FDelegateHandle and is removed by an overloaded Remove function.
* DEFINE_ONLINE_DELEGATE* macros now define _Handle variants of the Add/Remove functions which return/take handles.
* Various other handle-based registration changes.
* Some unity build fixes.
* Some simplification of delegate code.
* Fixes for lots of existing code to use handle-based registration and unregistration.
#codereview robert.manuszewski
[CL 2400883 by Steve Robb in Main branch]
API-breaking change (although I dont think that any other 3rd-party provider plugins are using it at the moment).
Kept old single-filename call & added new version that takes array of files. Re-implemented this for internal source control providers (just a patch on the old version).
Added automation tests for label syncing.
TTP# 340899 - SourceControl: Need Sync() overloads that accept multiple files
[CL 2190291 by Thomas Sarkanen in Main branch]
Branching of files needed to be removed (by Bob Tellez) as it was causing crashes and mutiple duplicate files to show up in the content browser. This fix re-instates working branches in the Editor.
The idea is that we now do the copy/duplicate/rename operations first, then perform the 'branch' once the files are finished with by the Editor. This keeps the asset registry & directory watcher systems happy & leaves the issue of branching to source control alone.
Because of the way SVN copy works, the SVN verison of this is slightly icky. SVN copy does not allow a branch-copy over an existing file in the workspace (even if not under source control), so we have to move the file into a temp directory, do the copy, then re-move the file back over the top of its old location.
TTP# 334923 - EDITOR: Perforce Integration (Move -> Delete + Add instead of Integrate)
reviewed by Max.Preussner,Bob.Tellez,Matt.Kuhlenschmidt
[CL 2180124 by Thomas Sarkanen in Main branch]
TTP# 334923 - EDITOR: Perforce Integration (Move -> Delete + Add instead of Integrate)
New API: Added ISourceControlRevision::GetBranchSource.
Made sure the P4 and SVN providers perform integrates/copies so that history is maintained across file copies & moves.
Also fixed SCC icons not refreshing sometimes until source control operation has completed.
Added new branch icon.
Fixed date display in history.
This required some fairly nasty fixup to get it all working within the Editor copy code path, but the majority of the changes are in the source control providers.
reviewed by Andrew.Brown
[CL 2095604 by Thomas Sarkanen in Main branch]
Instead of using the (cached) state, we cache the brush to use to display the state and only hit the state cache when state changes.
Also updated Execute() calls to providers to only do relative-path conversions if the path is already relative.
Added SourceControlHelpers::AbsoluteFilenames to aid conversion.
TTP# 335201 - ContentBrowser: Improve idle performance
#codereview Andrew.Brown
[CL 2075346 by Thomas Sarkanen in Main branch]
To allow for further abstraction & extension using DVCS systems like Git & Mercurial, we expose a new CanCheckIn() function that is used when determing 'modifed' files to check in.
#github https://github.com/EpicGames/UnrealEngine/pull/151
TTP# 335099 - [GitHub] 151 : Add ISourceControlState::CanCheckIn()
reviewed by Max.Preussner
[CL 2073950 by Thomas Sarkanen in Main branch]
#ttp 331349 Editor: Source Control: Some issues with creating new source control provider
#change Fixed up conflation of enum with bool in if() blocks when calling Execute().
#fix Fixed QueueStatusUpdate not checking for NULL source control state.
reviewed by Andrew.Brown
[CL 2049714 by Thomas Sarkanen in Main branch]
#ttp 331118 LIVE: Editor: Source Control: Engine content is displayed in Check In dialog
#add Added a CanAdd() function to the source control state API & implemented this for both providers.
#change Changed asset context menu to restrict operations that can be performed based on the new information provided by CanAdd().
#fix Fixed a terrible bug in the SVN provider where only the first batch of 50 files would have their status returned correctly.
reviewed by Andrew.Brown
[CL 2043041 by Thomas Sarkanen in Main branch]