#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]
Before this commit, FSubversionUpdateStatusWorker::Execute called svn status --show-updates <paths> giving it all assets. This resulted in two connections to svn server per each file. For example, on ShooterGame demo "Checking for assets to checkin" took 2 minutes even over 1Gbps LAN.
This commit replaces svn status --show-updates <paths> with svn status --show-updates <working_copy_root> whenever more than one path is requested.
Unfortunately, svn status doesn't recurse into unversioned directories, so preinit all states to NotControlled/NotAWorkingCopy.
GitHub PR# 519 - https://github.com/EpicGames/UnrealEngine/pull/519
[CL 2398687 by Thomas Sarkanen in Main branch]
* Moved Slate.h into SlateBasics.h and began shifting less commonly used headers into SlateExtras.h.
* Slate.h now simply includes SlateBasics.h and SlateExtras.h.
* Slate.h includes a deprecated warning now to indicate that SlateBasics.h + specific includes should be used instead.
* Moved dozens of inlined functions using Slate widgets into .cpp files to avoid header dependencies.
* All code samples now include SlateBasics.h and SlateExtras.h so future shifts will not break most those projects, but not trigger the deprecation warning of including Slate.h.
#BUN
[CL 2329610 by Wes Hunt in Main branch]
Commit messages now do not include ? leading character as BOM is no longer included.
GitHub pull request #472https://github.com/EpicGames/UnrealEngine/pull/472
reviewed by steve.robb
[CL 2317249 by Thomas Sarkanen 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]
This is a subset of changes (warning fixes needed to compile Linux editor) from pull request 185 by sbc100, 3dluvr, wshearn, abarbu et al: https://github.com/EpicGames/UnrealEngine/pull/185
#codereview Thomas.Sarkanen
[CL 2085557 by Dmitry Rekman in Main branch]
#add New explicit constructors which append.
#add Move support for TSet::Append.
#add Move operators for TSetElement.
#change Some ranged-for loop changes.
#change Some existing code changed for testing (PluginManager, Subversion plugin).
#codereview robert.manuszewski,gareth.martin
[CL 2080362 by Steve Robb 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]
Other Updates:
- The WidgetReflector is now in its own module as well. It will be converted to a plug-in later.
- The Public API of both Slate and SlateCore has largely been reorganized for better discoverabilty. More cleanup work is needed.
- Added a lot of missing API documentation and fixed existing ones. More and better documentation is needed.
- Removed dead code, fixed a couple things I stubled upon, and conformed to coding guidelines (NULL vs nullptr, line breaks, etc.)
Upgrade Notes:
- The Slate Remote Server is currently disabled - will be re-enabled shortly!
- If your module previously had a module dependency to 'Slate', it now also needs a PrivateModuleDependency to 'SlateCore' in its Build.cs file.
- If your module exposes in any of its Public header files types that are now declared in SlateCore, it needs a PublicModuleDependency to 'SlateCore'
- The ToolTip property type on SWidget has changed from SToolTip to IToolTip; change local variables to TSharedPtr<IToolTip> instead of TSharedPtr<SToolTip> where needed
- IToolTip is not a widget. If you need access to the actual widget that represents the tool tip, use IToolTip::AsWidget(); If you need access to the tool tip's content, use IToolTip::GetContentWidget()
Troubleshooting:
- After syncing to this changelist you may have to clean your /Engine/Intermediate/Build/ directory and rebuild your entire project
- If in your project you are getting linker errors for unresolved types that are now declared in SlateCore, you may be missing a dependency to 'SlateCore'
- If in the Engine code you are getting linker errors for unresolved types that are now declared in SlateCore, you may need to rebuild the entire Engine
[CL 2057118 by Max Preussner in Main branch]