Commit Graph

296 Commits

Author SHA1 Message Date
andrea botti
ae157294a5 [SourceControl] Delete of file that is not at latest fails silently and removes the entry from content browser
#rb wouter.burgers
#jira UE-201031

[CL 34642482 by andrea botti in ue5-main branch]
2024-06-25 10:55:58 -04:00
wouter burgers
1112ea161a Skein / SnapshotHistory: Added snapshot content details tooltip on hovering over the number of affected files in a snapshot.
#rb federico.lopez, Stuart.Hill

[CL 34255403 by wouter burgers in ue5-main branch]
2024-06-10 17:53:52 -04:00
dave belanger
df4bca31d8 [UEFN] Support multiple projects on the same perforce workspace
Put guardrails against using URC with multiple projects because it's not supported
#rb wouter.burgers

[CL 34127677 by dave belanger in ue5-main branch]
2024-06-05 12:05:35 -04:00
wouter burgers
ee4e44ae78 Skein / SnapshotHistory: Icon Update.
#rb Manuel.Lang

[CL 33888567 by wouter burgers in ue5-main branch]
2024-05-24 04:02:05 -04:00
sergio gardeazabal
a3b9a960bb Skipping Asset Data Update on the source control module when a actor label is changed if its pacakge is transient.
Some tools like the Chaos Visual Debugger need to spawn a large number of transient actors, which will result in actor label creations which becomes expensive due to that asset data update attempt. Transient packages cannot be sabed, therefore we can safely skip the update in the source control module for them.

#jira UE-189695
[FYI] wouter.burgers
#tests Tested in the editor that if I change the label of any actor in a saved map, the code to update the assed data cache is still called. But if the actors are from a transient world (like in the Chaos Visual Debugger) the update is no longer executed (as expected).

[CL 33563896 by sergio gardeazabal in ue5-main branch]
2024-05-09 19:23:14 -04:00
christian savoie
96154163d5 Add Revision Control option to copy remote paths
* Fix mixed file/folder selection to properly resolve all items in selection
* Fix revert writable to use filtered file list instead of full file list.
* Expose the number of paths required to trigger user dialog about large operations so it can be customized per operation

#tests Tested copy remote paths action with files, folders and a mix, including local only files
[REVIEW] [at]aditya.ravichandran [at]Julien.StJean [at]lauren.barnes
#rb brooke.hubert, wouter.burgers

[CL 33533507 by christian savoie in ue5-main branch]
2024-05-08 18:57:35 -04:00
wouter burgers
479acf7cdf SourceControl: Fixed hitch caused by conflict remaining/upcoming scanning in large repositories.
Instead of scanning the cache in its entirity (twice!) on every source control status cache, the Skein provider now keeps track of remaining/upcoming conflicts incrementally as new source control statuses come in.

#jira UE-213176
#rb Manuel.Lang

[CL 33300055 by wouter burgers in ue5-main branch]
2024-04-29 10:22:55 -04:00
jurre debaare
672d57ae07 - Added helper scope-object to handle Rename operations for (generic) external packages/objects (similar to world/level behaviour)
- Added helper function to handle Duplication of external packages (replaced ULevel behaviour)
- Added FExternalAssetDependencyGatherer to handle external packages used by Asset Migration
- Also DetachLinker for external objects not part of a UWorld when doing a reload
#rb Matt.Peters, Patrick.Enfedaque, Richard.Malo

[CL 33295840 by jurre debaare in ue5-main branch]
2024-04-29 05:02:20 -04:00
wouter burgers
becd423b59 SourceControl: Fixed 'Sync' option not displaying in the status bar.
I wasn't actually able to reproduce the issue, but I did find some oddities regarding the visibility of the checkin/sync/restore buttons. For example: if Skein is 'unavailable', the checkin/sync buttons would be hidden but the restore button could be available. I also made the buttons more explicitly tied to Skein to avoid them showing up using Git/Perforce.

#rb Marco.Anastasi

[CL 33265056 by wouter burgers in ue5-main branch]
2024-04-26 11:10:13 -04:00
aditya ravichandran
cff3fd1290 Revision Control: Update color for marked for add icon to accent blue
#rb Brooke.Hubert

[CL 33027535 by aditya ravichandran in ue5-main branch]
2024-04-16 23:13:33 -04:00
paul chipchase
4cf57d2d1e Extend FSourceControlInitSettings to allow the caller to control if a provider uses values parsed from the commandline or not when initializing.
#rb Juan.Legaz
#jira UE-212182
#rnx

- We default to the old behavior, so that the default way of creating a source control provider (no FSourceControlInitSettings) will read all of the commandline parameters available and the newer way (creating a provider with a FSourceControlInitSettings) will ignore the commandline.

[CL 33001499 by paul chipchase in ue5-main branch]
2024-04-16 11:05:04 -04:00
sebastien lussier
e477d28888 Source Control - File Status Monitor: Prevent crash when accessing Slate in unattended apps
[CL 32777117 by sebastien lussier in ue5-main branch]
2024-04-05 18:39:02 -04:00
wouter burgers
efedf89bd1 Skein / ViewportStatus: Update iconography again with latest icons/colors received on Slack.
[FYI] manuel.lang

[CL 32737147 by wouter burgers in ue5-main branch]
2024-04-04 14:41:22 -04:00
wouter burgers
758113aa94 Skein / ConflictUE: Update primary URC buttons with conflict icons when a user saves changes to a file that we know is out of date.
#rb Manuel.Lang

[CL 32615215 by wouter burgers in ue5-main branch]
2024-03-29 11:45:26 -04:00
wouter burgers
8461964176 Skein / ViewportStatus: Integrate editor team work for Viewport Status Highlighting with UCS work.
#rb Manuel.Lang

[CL 32611700 by wouter burgers in ue5-main branch]
2024-03-29 07:24:47 -04:00
marco anastasi
46168a0105 Warn the user with a confirmation dialog if the revision control provider is changed/disabled
#rb wouter.burgers

[CL 32432617 by marco anastasi in ue5-main branch]
2024-03-22 10:11:07 -04:00
josh adams
554a1b56b6 [Backout] - CL32203634
[FYI] bob.tellez
Original CL Desc
-----------------------------------------------------------------
[Backout] - CL32181613
[FYI] Josh.Adams
Original CL Desc
-----------------------------------------------------------------
- Fixing a bug where two branches for SourceControlSettings (project vs engine-only) would re-use one of the branches, instead of loading it a second time (so FIndBranch() will now check the FIlename if appropriate)
- Added support in FConfigContext for contexts that empty out the PRojectConfigDir to only load Engine ini layers
#rb paul.chipchase

[CL 32254428 by josh adams in ue5-main branch]
2024-03-14 15:05:16 -04:00
bob tellez
32b56658dd [Backout] - CL32181613
[FYI] Josh.Adams
Original CL Desc
-----------------------------------------------------------------
- Fixing a bug where two branches for SourceControlSettings (project vs engine-only) would re-use one of the branches, instead of loading it a second time (so FIndBranch() will now check the FIlename if appropriate)
- Added support in FConfigContext for contexts that empty out the PRojectConfigDir to only load Engine ini layers
#rb paul.chipchase

[CL 32203657 by bob tellez in ue5-main branch]
2024-03-13 00:39:01 -04:00
josh adams
4b264b5df5 - Fixing a bug where two branches for SourceControlSettings (project vs engine-only) would re-use one of the branches, instead of loading it a second time (so FIndBranch() will now check the FIlename if appropriate)
- Added support in FConfigContext for contexts that empty out the PRojectConfigDir to only load Engine ini layers
#rb paul.chipchase

[CL 32181639 by josh adams in ue5-main branch]
2024-03-12 11:40:54 -04:00
wouter burgers
586f305a83 SourceControl: Fixed crash in FSourceControlAssetDataCache::LaunchFetchAssetDataTasks().
The fix is theorycrafted by reasoning about the code - I was not able to actually reproduce this.

The callstack suggests a nullptr exception, indicating that the Find() in AssetDataCache failed. The AssetDataToFetch container is populated in two places:
- AddAssetInformationEntry()
- OnUpdateHistoryComplete()

The AddAssetInformationEntry() method populates the AssetDataCache and optionally the AssetDataToFetch container.
The OnUpdateHistoryComplete() assumes the entry in AssetDataCache exists and populates the AssetDataToFetch container.

The ClearPendingTasks() removes pending entries from the AssetDataCache container.
However, it doesn't wait for any pending FUpdateStatus task to be finished.

Thus, if the ClearPendingTasks() method is called after GetFileHistory() queues an FUpdateStatus operation but before that operation returns, the OnUpdateHistoryComplete() would queue an entry in AssetDataToFetch while there is no accompanying entry in AssetDataCache. This will result in the crash. The ClearPendingTasks() is called on shutdown, when the source control provider changes or when the source control dialog is shown - the latter being the most likely thing to have happened.

#rb luc.eygasier, manuel.lang

[CL 32014349 by wouter burgers in ue5-main branch]
2024-03-05 04:15:49 -05:00
marco anastasi
94cb4ec971 Snapshot History Design/UI Fixes
* Updated dropdown text color for dates
* Added missing icon(s) for project size
* When a Snapshot is expanded, the background color now remains dark
* When two adjacent Snapshots are expanded, there is now a separation between the expanded areas

#rb wouter.burgers

[CL 32007002 by marco anastasi in ue5-main branch]
2024-03-04 19:56:50 -05:00
wouter burgers
79b4d19b05 SkeinUE: Changed 'conflict resolution tab icon' to grey instead of yellow to match the rest of the editor.
[FYI] manuel.lang

[CL 31799638 by wouter burgers in ue5-main branch]
2024-02-26 06:30:11 -05:00
wouter burgers
b96d8d30b2 SkeinUE: Refactored SSourceControlControls.
The SSourceControlControls is currently instantiated in two places in the editor: bottom right and as part of the snapshot history panel. Regardless, we would like the behavior of these buttons to be the same. This was accomplished by providing 'defaults' in SourceControlMenuHelpers and then setting temporary 'overrides' in SnapshotHistoryPanel. This wasn't very pretty and somewhat confusing with SSourceControlControls providing a mix of instance and static interfaces and behaviors. I've refactored this with the idea in mind that these buttons should behave similar, wherever they are placed in the editor and providing static methods to control that behavior. The default behavior is now no-op and SnapshotHistory provides the UEFN/Skein behavior.

This also allowed the 'CanAutoSave' code to live in one location (in the SnapshotHistoryController) instead of being duplicated in two spots. This was also not possible because engine code cannot be accessed from SkeinSourceControlSlate, where the SSourceControlControls was being instantiated, resulting in the behavior as described in the JIRA bug.

#rb manuel.lang, marco.anastasi

[CL 31796796 by wouter burgers in ue5-main branch]
2024-02-26 03:57:11 -05:00
patrick boutot
cdb8c262e5 Slate: Add ticking frame to SlateApplication to help prevent a double RHI BeginFrame. The real fix is to enforce the SlateApplication::OnPreTick and OnPostTick to be more strick and hide it from the user.
#jira UE-197511
#rb yohann.dossantos

[CL 31763627 by patrick boutot in ue5-main branch]
2024-02-23 10:25:44 -05:00
wouter burgers
548a1e6b62 SourceControl: Added 'unlocked' as a revision control style icon.
#rb manuel.lang, marco.anastasi
#rnx

[CL 31335666 by wouter burgers in ue5-main branch]
2024-02-09 07:47:48 -05:00