Commit Graph

265 Commits

Author SHA1 Message Date
ross smith2
301512e99c In SSourceControlChangelistsWidget::OnRefreshSourceControlWidgets handle the detection of a duplicate item gracefully instead of with a check.
This case can occur when a submit is done external to the editor ( e.g. from P4V ) and has also been reported to happen after submits from within the editor.  Now, when it is detected we request a changelists refresh in the next tick by setting bShouldRefresh to true.

This changelist also fixes another issue where files in the list view would get cleared when the selected changelist changed and then never get re-added to the list view.

#jira UE-211943
#rb brooke.hubert, zach.rammell

[CL 33213432 by ross smith2 in ue5-main branch]
2024-04-24 17:16:59 -04:00
SRombauts
a0044d6f99 PR #10360: [SourceControl] Fix DiffAgainstShelvedFile() to catch the date of the revision
#rb jordan.hoffmann
#Jira UE-183655

[CL 32233954 by SRombauts in ue5-main branch]
2024-03-13 19:32:54 -04:00
jaime cifuentes
48216ffacb Fixed crash when reverting Skeletal Mesh unsaved changes using an async task at SSourceControlChangelistRows, while the asset is opened, due to the async task being executed by the preview world of the SkeletalMesh being reverted. Changed the Async task for a CoreTicker call to Execute on game thread.
#rb brooke.hubert
#jira UE-207365

[CL 31760326 by jaime cifuentes in ue5-main branch]
2024-02-23 07:58:22 -05:00
matt peters
79da0bdad8 Updated display string for changelist descriptions to use space character in place of other whitespace characters (similar to P4V).
- allows viewing descriptions which traverse multiple lines
- only affects the single line view (tooltip, etc still display as before)
#rnx
#rb zach.rammell

[CL 30279052 by matt peters in ue5-main branch]
2023-12-12 17:18:07 -05:00
jeanfrancois dube
e9ad689957 Source Control: don't show the success icon when unable to submit the changelist and there's no warnings or errors.
#rb Richard.Malo
[FYI] jeansebastien.guay

[CL 30187851 by jeanfrancois dube in ue5-main branch]
2023-12-07 14:14:32 -05: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
92e74b4c79 Skein / Snapshot History: Add 'View Snapshot History' menu item to Revision Control menu in Status Bar.
#rb Marco.Anastasi
#rnx

[CL 30012929 by wouter burgers in ue5-main branch]
2023-11-30 07:58:07 -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
jeanfrancois dube
87618ccfe5 Optimize source control changelist shelved state update.
Results with a 40K actors changelist editor startup time:
  - Before: FPerforce::AddShelvedFilesToChangelist took 2:35 min
  - After: FPerforce::AddShelvedFilesToChangelist took 160.08 ms

#rb sebastien.lussier
[FYI] jeansebastien.guay

[CL 29047110 by jeanfrancois dube in ue5-main branch]
2023-10-24 11:33:28 -04:00
benoit chauvin
8677bfe633 Refresh the UI once the delegate has been called.
#rb Stuart.Hill

[CL 28958591 by benoit chauvin in ue5-main branch]
2023-10-20 05:57:31 -04:00
benoit chauvin
c766ed8ed5 - Moved the delegate before the content valdiation
- Added logic to remove the validation tag if the content validation fails

#rb Stuart.Hill

[CL 28917274 by benoit chauvin in ue5-main branch]
2023-10-19 09:58:45 -04:00
robert millar
2a5bfbaae6 Restore validation outputs (without message log) to GetChangelistValidationResult
[FYI] benoit.chauvin
#rb none

[CL 28844537 by robert millar in ue5-main branch]
2023-10-17 13:32:20 -04:00
robert millar
784a7bef90 DataValidation refactor
General
    Add support for returning tokenized messages from validation.
    Unify validation reporting for different validation entry points - in particular, source control window context menu.
    Move EDataValidationUsecase to CoreUObject for use by UObject::IsDataValid.

UEditorValidatorSubsystem
    Add support for validating changelists. Use of this interface allows building lists of unmodified assets to re-validate based on the changes that were made.
    Allow subclassing, with functions GatherAssetsToValidateFromChangelist and ShouldValidateAsset to modify behavior of validation.
    Add optional to load assets for validation to validation parameters.
    Capture logs during asset loads to report as errors (optional in validation parameters).
    Allow limit to number of assets to validate in validation parameters, report limit reached.
    Add message log page to validation parameters.
    Add validation parameter to validate referencers of deleted assets in changelists for validation

UEditorValidatorBase
    Centralize dispatch to BP/Native validation in non-virtual ValidateLoadedAsset function.
    Add native interface functions to UEditorValidatorBase that take FDataValidationContext.
    Rename BP interface functions to have K2 prefix and different signature to native functions.

FDataValidationContext
    Add validation usecase.
    Add 'associated assets' to allow associating external actors with maps for validators.

UDataValidationChangelist
    Support changelists based on changelist objects, file states, and simple lists of files.
    Group modifications into packages/non-assets and modified/deleted ahead of time for validators to inspect.

#rb dominic.couture

[CL 28824042 by robert millar in ue5-main branch]
2023-10-16 19:03:01 -04:00
benoit chauvin
c36eb46eaf Fixing LOCTEXT conflicts introduced with previous CL 28533347.
#jira UE-197443
#rb none

[CL 28580200 by benoit chauvin in ue5-main branch]
2023-10-09 09:36:51 -04:00
richard malo
239ac90407 Refactor in preparation of supporting Data Layer Instances saved in their own external package.
- Adapted existing code to propertly support external package on object not directly outered to the level.
- Generalized handling of external objects when renaming a world, resetting package loaders in ULevelStreamingLevelInstance, handling dirty external packages
- Implemented FExternalPackageHelper::CopyObjectsExternalPackageFilePathToClipboard
- Added optional PrimaryAssetDisplayName asset registry tag to allow for systems to use a display name (generalized version of ActorLabel tag)
#rb jeanfrancois.dube, patrick.enfedaque
#jira UE-197314

[CL 28537555 by richard malo in ue5-main branch]
2023-10-06 09:14:09 -04: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
han chu
2c25f2c11e New feature:
Unsaved asset drag-and-drop handler: When unsaved assets are selected and then dropped onto a changelist entry, they are checked out, saved, and then moved to the target changelist.

#jira UE-181906
#rb @zach.rammell

[CL 26976967 by han chu in ue5-main branch]
2023-08-09 18:41:28 -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
dan oconnor
850690a092 Fix crash when diffing virtual revision
#jira UE-189730

[CL 26272033 by dan oconnor in ue5-main branch]
2023-06-27 17:33:18 -04:00
zach rammell
72380fa32e Add UE::ComparisonHelpers::CompareNaturalOrder, use it in scene outliner and changelist window
#jira UE-168849
#rb Steve.Robb ronald.koppers

[CL 26134967 by zach rammell in ue5-main branch]
2023-06-20 17:17:09 -04:00
jordan hoffmann
2b08e650c7 [CDPR] Added more information about changelist to source control changelists window context menu
+ Expand source control menu context with selected changelist,
+ Expose information about if changelist is default and its source control specific identifier,

#rb Patrick.Enfedaque, Patrick.Laflamme, zach.rammell
#preflight skip
#p4v-cherrypick 25526575
#preflight 64665919b91ab13b09c2089c

[CL 25528171 by jordan hoffmann in ue5-main branch]
2023-05-18 13:20:35 -04:00
zach rammell
ea9c2dae18 View Changes: Only reregister components once when saving
#jira UE-181899
#rb ronald.koppers
#preflight 645c03848e01daf0e5bcc383

[CL 25416984 by zach rammell in ue5-main branch]
2023-05-10 17:14:13 -04:00
marco anastasi
d21b6c2cd0 Added ability to revert conflicted files in the Submit Files window.
A side effect of showing conflicted items greyed out in the Submit Files window is that the Revert operation is also disabled as greyed-out items are not selectable. This is not desirable as the user may well want to get out of a conflict situation by reverting the conflicted file and the submit dialog is a convenient place to do that.

#rb stuart.hill, manuel.lang
#preflight none

[CL 25333894 by marco anastasi in ue5-main branch]
2023-05-04 09:30:48 -04:00