Commit Graph

41 Commits

Author SHA1 Message Date
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
ea3cc739ed SkeinUE: Generalized 'checked out by' dialog by moving it to /SourceControlWindows. Folluw up CL from #33935263.
#rb andrea.botti

[CL 34039996 by wouter burgers in ue5-main branch]
2024-05-31 15:24:34 -04:00
wouter burgers
49478f82ac Skein / ConflictUE: Fixed 'check in changes' no longer saving dirty packages since #29866499.
#rb Marco.Anastasi
#rnx

[CL 30078117 by wouter burgers in ue5-main branch]
2023-12-04 08:12:13 -05:00
marco anastasi
4fc92d88f3 * Create 'Check in before syncing older snapshot' dialog
* Create Warning dialog for further rewind
* Implement 'Sync snapshot' functionality
* Implement 'Rewind to' functionality

#rb wouter.burgers

[CL 30015297 by marco anastasi in ue5-main branch]
2023-11-30 10:36:24 -05:00
wouter burgers
98afc5c310 Skein / ConflictUE: Streamlined behavior when user clicks CHECK-IN CHANGES.
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]
2023-11-06 04:43:55 -05:00
benoit chauvin
5f4e27ed26 New Delegate to override the submit functionality for the Source Control Changelist window and the Source Control Window.
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]
2023-10-06 04:38:12 -04:00
wouter burgers
3500d71466 SourceControl: The ChoosePackagesToCheckIn operation should optionally perform a sync ('pull-before-push' model) for snapshot based source control systems.
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]
2023-09-04 04:10:36 -04:00
marco anastasi
3d7c53d6f7 Made Submit Content button invisible when URC is the selected source control provider.
#rb manuel.lang, wouter.burgers

[CL 26273415 by marco anastasi in ue5-main branch]
2023-06-27 18:16:19 -04:00
wouter burgers
2f30b42b92 SkeinUE: When using the CHECK-IN CHANGES button, perform a SYNC first, as the API expects pull-before-push.
#preflight none

[CL 25282069 by wouter burgers in ue5-main branch]
2023-05-01 02:05:33 -04:00
jamie dale
933348f856 Use the FMessageDialog overloads that pass the optional title by-value
#jira
#rb none
#rnx

[CL 25062589 by jamie dale in ue5-main branch]
2023-04-15 19:49:32 -04:00
marco anastasi
f6978a065c Created new Source Control feature flag UsesSnapshots() to solve inconsistency in use of UsesChangelists() and UsesFileRevisions() causing issues for git Source Control Provider
* 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]
2023-03-20 17:20:41 -04:00
wouter burgers
0aa122ff5c SourceControl: Added notification if sync fails when getting latest, similar to the warning shown by FSourceControlWindows::PromptForCheckin for checkin fails.
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]
2023-02-08 12:17:26 -05:00
wouter burgers
192829d351 SourceControl: Refactored UsesCustomProjectDir / GetSourceControlLocations usage pattern.
[CL 23965223 by wouter burgers in ue5-main branch]
2023-02-02 03:44:18 -05:00
marco anastasi
b29f599449 * Refactored Sync Latest operation to improve performance
* 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]
2023-01-20 15:31:16 -05:00
marco anastasi
d28eb652fb Implemented Asset Revert functionality from Scene Outliner.
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]
2022-12-11 23:09:22 -05:00
aditya ravichandran
f8b7ee5555 Replace any instances of "Source Control" with "Revision Control" in text in the Editor
#rb JeanMichel.Dignard, Robb.Surridge
#preflight 637d180efa348e8480e8837e

[CL 23250808 by aditya ravichandran in ue5-main branch]
2022-11-23 11:57:50 -05:00
wouter burgers
1d05967695 SourceControl: For source control providers supporting the GetNumLocalChanges API, which returns a TOptional<bool>, the 'Submit Content' button in the Mainframe and SourceControl bar (bottom right) will only activate if there are changes to check-in.
#preflight none

[CL 23230899 by wouter burgers in ue5-main branch]
2022-11-21 20:38:43 -05:00
wouter burgers
1161fdcd00 SourceControl / UEFN: Get latest on project with the shortcut F5.
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]
2022-11-14 18:26:11 -05:00
stuart hill
1fc502d9b1 Give the option to disable being able to diff files in the Source Control Submit Widget. To allow this, AllowsDiffAgainstDepot function should return false.
#preflight 6360fd498768c5532f5425f0
#rb Marco.Anastasi, Patrick.Laflamme

[CL 22888653 by stuart hill in ue5-main branch]
2022-11-01 15:09:57 -04:00
marco anastasi
9d30e5f3ac Fixed bug with the way used to determine whether a source control provider uses a custom project base directory
#rb wouter.burgers, stuart.hill
[FYI] patrick.laflamme
#preflight 634e8c558c653695a7a8b2f0

[CL 22604838 by marco anastasi in ue5-main branch]
2022-10-18 13:16:32 -04:00
clint levijoki
baa43a500d Added an editor project option to hide the 'Submit Content' menu action. This menu item is unwanted in some projects as it's not running any validation before submitting.
#preflight 63484914ce524ed356914926
#preflight 6349b46fa8717e9453e14b0b

[CL 22547966 by clint levijoki in ue5-main branch]
2022-10-15 02:16:54 -04:00
marco anastasi
2411b8a4cc Added SCC conflict warning dialog
#rb wouter.burgers
#preflight 6345cc19f93be0f63415d1df

[CL 22491713 by marco anastasi in ue5-main branch]
2022-10-12 21:54:50 -04:00
wouter burgers
3561bdca77 SourceControl / UEFN: Change #22353231 added a check on FPaths::IsRelative to see if a string is a 'package name' or a 'config file'. However, that functions consider UEFN's "/MyProject/Path/To/Package.uasset" to be a rooted path instead of a relative path (even on Windows!). This fixes the intended behavior by separating project files out of the original function and handling them separately.
#preflight 6344218d7045f13c96b4b20b

[CL 22455673 by wouter burgers in ue5-main branch]
2022-10-11 07:54:27 -04:00
wouter burgers
63d0fbdf50 SourceControl / UEFN: Fixed non package files missing from check in dialog (uefnproject, uplugin, etc). Within UEFN projects, the FPaths::GetProjectFilePath() still returns the 'FortniteGame.uproject' file, instead of the '.uefnproject' file (unfortunately). To avoid adding a whole bunch of exceptions for UEFN specific files I check for any files under the GetSourceControlProjectDir that need to be submitted (the '.uefnproject' file, the '.uplugin' file or any other UEFN specific file).
#preflight 6336c34cd165c45137fc3327

[CL 22366132 by wouter burgers in ue5-main branch]
2022-10-05 19:08:41 -04:00
marco anastasi
dd01cd42b5 Create shortcut buttons in Status Bar for Skein operations
#rb wouter.burgers, patrick.laflamme
#preflight 63301d3d665f6b8f7fab0066


RESOLUTION: Resolved conflict with IsAtLatestRevision() and GetNumLocalChanges()

[CL 22193646 by marco anastasi in ue5-main branch]
2022-09-26 16:32:49 -04:00