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]
Previously, the SYNC was done prior to showing the SUBMIT FILES dialog. If another user submitted anything while the user was typing their changelist description, the CHECK IN would fail (for Skein) because the user is no longer checking in as latest. By moving the SYNC to after the changelist description is completed, this is avoided. In addition, this allows the user once again to click the CHECK IN CHANGES without syncing to head if he just wants to see what local changes he has that need checking in - a workflow which I imagine is not uncommon.
Additionally, the check-in should be aborted if the SYNC results in the user entering conflict resolution.
#rb manuel.lang, marco.anastasi
#rnx
[CL 29484477 by wouter burgers in ue5-main branch]
This new delegate give users the capability to intercept and handle the submit instead of the regular flows.
Depending on the reply from the delegate the current flow will be:
- interrupted if the submit is handled by the delegate
- interrupted and set to fail state if the delegate returns an error
- continued if the delegate cannot handle the current source provider
#rb Stuart.Hill, brooke.hubert, Patrick.Enfedaque
[CL 28533359 by benoit chauvin in ue5-main branch]
Skein, the only provider that returns 'true' for 'UsesSnapshots()' requires the user to be at head when doing a check-in operation, or the check-in will fail.
This is enforced within the plugin, not the CLI, by performing an FSync prior to doing an FCheckIn. It's not easy to do the sync within the CLI as part of the check-in as the editor doesn't release its file locks when doing an FCheckIn, causing syncs to fail.
For this, a code path was introduced in SourceControlMenuHelpers that triggers a sync before triggering the check-in, when clicking the 'Check In Changes' button visible in the bottom right of the editor within UEFN.
However, this approach fails if other code paths in the editor call ChoosePackagesToCheckIn directly. This is known to happen for the MainFrame's "Submit Content" action, which was therefore disabled for Skein in #26272334, but the issue could be more widespread.
To provide a definitive fix for this issue, the sync is moved to within ChoosePackagesToCheckIn, triggered only when 'UsesSnapshots()' is true, which effectively means Skein only.
#rnx
[CL 27582511 by wouter burgers in ue5-main branch]
* Option to check in an asset from the Content Browser Source Control Context Menu is now enabled if the SCC does not use Snapshots instead of if it uses File Revisions
* Option to check in an asset from the Scene Outliner Source Control Context Menu is now enabled if the SCC does not use Snapshots instead of if it uses File Revisions
* Ability to uncheck files in the Submit Files Window is now enabled if the SCC does not use Snapshots instead of if it uses File Revisions
* Option to revert the writable flag on an asset in the Content Browser Source Control Context Menu is now enabled if the SCC uses checkout instead of if it uses File Revisions (like the 'Make Writable' option)
#jira UCS-6630
#rb brooke.hubert, wouter.burgers
#lockdown jeanmichel.dignard
#preflight 640e6b41482188d710ff8316
[CL 24724061 by marco anastasi in ue5-main branch]
In addition, I refactored AssetViewUtils::SyncPathsFromSourceControl somewhat.
- Added alternative (preferred) way to get affected files/packages using the FSyncPreview operation as opposed to querying the AssetRegistry.
- Added support for hot reloading the world if one of its external packages (actor/object) got synced so those changes are reflected in the viewport.
- Added support for passing in either content paths or absolute paths to sync.
- Deprecated the 'bIsSyncLatestOperation' parameter from SyncPackagesFromSourceControl.
Note that SyncPackagesFromSourceControl now has a single internal caller (FAssetSourceControlContextMenuState::ExecuteSCCSync).
Note that SyncPathsFromSourceControl now has a single internal caller (FSourceControlWindows::SyncLatest).
[REVIEW]
#preflight 63e3a014244dc45a201c918d
[CL 24074948 by wouter burgers in ue5-main branch]
* Sync Latest no longer listing and reloading all packages when the source control provider provides a sync preview functionality. When a Sync Preview is available, Sync Latest unloads only the files that are going to be overwritten by the sync operation, and then reloads them and the world
* Refactored Revert All operation to improve performance
* Revert All no longer lists and reloads all packages when the source control provider provides a sync preview functionality. Instead it unloads only the files that may be overwritten by the revert operation (i.e. submittable files), and then reloads them and the world
* Replaced RevertAndReloadAllPackages with RevertAndReloadWorld, no longer listing and reloading all packages (see https://p4-swarm.epicgames.net/reviews/23244245/)
This review is a combination of the two archived reviews https://p4-swarm.epicgames.net/reviews/23736137 and https://p4-swarm.epicgames.net/reviews/23736282
#rb wouter.burgers, stuart.hill, brooke.hubert, francis.hurteau
#preflight 63c9c7786a00f3cc8ead6779
[CL 23796067 by marco anastasi in ue5-main branch]
Fixed 'Cannot revert umaps with Skein' by reloading all assets when attempting to revert a map
Implemented 'Revert All' button
#rb patrick.enfedaque, wouter.burgers, stuart.hill, manuel.lang
[FYI] francis.hurteau, brooke.hubert
#preflight 6388f51d4c3ce8ae5dbfb18f
#preflight 639340545c5308d18c28b967
[CL 23475314 by marco anastasi in ue5-main branch]
This introduces a MainFrame menu item under TOOLS -> SOURCE CONTROL called 'Sync Content', similar to the existing 'Submit Content' option. The new menu item is tied to the F5 hot key.
#preflight 63722efcb6636838285ea216
[CL 23129394 by wouter burgers in ue5-main branch]
#rb wouter.burgers, patrick.laflamme
#preflight 63301d3d665f6b8f7fab0066
RESOLUTION: Resolved conflict with IsAtLatestRevision() and GetNumLocalChanges()
[CL 22193646 by marco anastasi in ue5-main branch]