Commit Graph

244 Commits

Author SHA1 Message Date
wouter burgers
c2f48c4b96 SourceControl: Changes to FGetSubmittedChangelists (introduced rather plainly in #20292011 but unused since).
- Added support for returning results.
- Added support for filtering as it clearly doesn't scale without it.

#rnx

[CL 27514161 by wouter burgers in ue5-main branch]
2023-08-31 03:23:07 -04:00
paul chipchase
4fa806cf66 Add a new initialization path to ISourceControlProvider allowing the caller to customize the initialization logic and retrieve more info about the initialization itself.
#rb Per.Larsson

### ISourceControlProvider
- Add a new ISourceControlProvider::Init overload that returns a struct (FInitResult) and takes a bitfield of flags (EInitFlags) so that we can more easily extend the initialization in future and return things to the caller.
- If a provider does not implement the new overload we fall-back to the original. This will be removed once all providers support the new path.

### PerforceSourceControlProvider
- Support the new init options via FPerforceConnection::EnsureValidConnection and update places that call it.

### FPerforceConnection
- Update ::AutoDetectWorkspace to return errors to the caller rather than handle its own logging.
- ::TestLoginConnection and ::TestClientConnection no longer calls FPerforceSourceControlProvider::SetLastErrors, this will be done at a higher level.
- ::AutoDetectWorkspace still does its own logging which will be fixed in a future update, it does however return its errors to the caller.
- Split the implementation of ::EnsureValidConnection to a stand alone internal function, the original function now handles and consolidates error handling.
-- Changed the logic to early out of failure rather than constantly checking a boolean all the way down.
-- Tried to remove the need for FPerforceSourceControlProvider to be passed in but a few places still require it.
-- Fixed our handling of the P4PORT value so that we can at least report problems if the address uses unicode characters. I have not yet tested if we can actually connect to such an address. We no longer use the servers unicode setting to decide the port strings encoding as it is not affected by the server settings.
-- Each error encountered should now record a localized error that we expect the user to be able to react to, then an array of errors from the API itself.
-- Once the internal code has run we will do a pass on all errors (if any) and strip any whitespace at the end (p4 tends to end error messages with newline characters) and then add a final entry to the additional errors detailing the settings at the point of failure. This was mostly being done before but is now enforced for every error.
-- No longer log the ticket, although the workflow to allow the user to supply one is not common we still probably don't want to save that to log files.

[CL 26952104 by paul chipchase in ue5-main branch]
2023-08-09 07:27:34 -04:00
paul chipchase
1dc158ed3a Truncation warning fixes for SourceControl module
#rb trivial
#rnx

[CL 26543837 by paul chipchase in ue5-main branch]
2023-07-24 11:33:51 -04:00
wouter burgers
a81e454665 SourceControl: Widen the 'transfer size' information from 'int32' to 'int64'.
#rnx

[CL 26458714 by wouter burgers in ue5-main branch]
2023-07-19 09:15:21 -04:00
wouter burgers
9698c005a2 SourceControl: Fixed actor label change not being reflected in the 'Submit Files' dialog because the cached FAssetData still contained the old label.
#rnx

[CL 26458136 by wouter burgers in ue5-main branch]
2023-07-19 08:48:34 -04:00
wouter burgers
988af42f3e UEFN / SourceControl: Added progress reporting to the 'Sync' operation initiated from the Project Browser.
- Reintroduced the FSkeinProjectInit as a separate operation so the FSyncPreview can succeed (it needs an initialized project directory).
- Ensured source control operations are done asynchronous wherever possible (and then waiting on them to complete, so still blocking) as no source control dialog pops up when the operation is asynchronous.

[REVIEW]

[CL 25947555 by wouter burgers in ue5-main branch]
2023-06-13 06:05:47 -04:00
philippe deseve
7b518b8604 Make sure to use loadedpath only for in memory files
Otherwise renamed packages will not resolve

#rb richard.malo

[CL 25647111 by philippe deseve in ue5-main branch]
2023-05-26 12:49:06 -04:00
jordan hoffmann
0fc6b63d92 [BugFix] Merge stopped working because ISourceControlProvider.GetState doesn't use depot file paths and FResolveInfo::IsValid had a bug
#rb none
#preflight 6467d56b75696d2bd70382c9

[CL 25551458 by jordan hoffmann in ue5-main branch]
2023-05-19 16:20:13 -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
marco anastasi
da6bb8b5e8 Implemented the FGetFileList operation for URC
Discussed this with [at]dave.belanger - the `FGetFileList` operation is only used by `USourceControlHelpers::GetFilesInDepotAtPath()`, and that method is currently not called by anything.

Also changed the implementation of `GetFilesInDepotAtPath()` to pass the search pattern as a parameter to the Operation.

#rb stuart.hill, dave.belanger, manuel.lang
#preflight 645a57644c3ec54e6e65f5bd

[CL 25403441 by marco anastasi in ue5-main branch]
2023-05-10 09:30:30 -04:00
jordan hoffmann
1625c5cc66 [BugFix] Deprecated ISourceControlState::GetBaseRevForMerge and replaced it with ISourceControlState::GetResolveInfo so we can properly support merges and integrations between branches and merging changes that aren't the latest
#rb brooke.hubert, mattias.jansson, wouter.burgers
#preflight 64556c1ad77a82d6a78e3388

[CL 25365368 by jordan hoffmann in ue5-main branch]
2023-05-06 02:07:43 -04:00
marco anastasi
fedd4f7a9a Fixed: Unable to revert level file deletion in Check-in Window
#rb wouter.burgers, stuart.hill, manuel.lang
#preflight none

[CL 25333901 by marco anastasi in ue5-main branch]
2023-05-04 09:31:05 -04:00
paul chipchase
88a5010391 Clean up of FDownloadFile
#rb none
#jira UE-183529
#rnx
#preflight 643e6671b91c130758304d30

- Added code documentation
- Renamed ::AddFileData to ::__Internal_AddFileData and documented that it is for internal use in the source control api. This is a standard problem with our operations being both input and output structures and needs a better solution.
- Moved ::GetFileData to the cpp to reduce the amount of code in the header file.

[CL 25083228 by paul chipchase in ue5-main branch]
2023-04-18 06:32:01 -04:00
andrew phillips
0af1080300 Alternate fix for log spam
* Added memory package filtering in SourceControlHelpers.
* Added empty string filtering when sorting unsaved assets in the outliner.

#jira UE-182072
#preflight 643d26428e01968448be7c9f

[CL 25082663 by andrew phillips in ue5-main branch]
2023-04-18 05:09:10 -04:00
jordan hoffmann
cf8eb1d3c9 [Feature] AssetDefinition Merging
#jira UE-181566
#jira UE-181560
#rb ben.hoffman, dave.jones
#preflight 6439c1fec947f6523a79534d

[CL 25057796 by jordan hoffmann in ue5-main branch]
2023-04-14 21:26:21 -04:00
jordan hoffmann
fbe917e059 [BugFix] Review tool failing to connect to swarm
- Failed if user had multiple p4 tickets
- Failed if default p4 username didn't match the provided username in UE

#jira UE-181982
#rb paul.chipchase
#preflight 643061621d61ecec3b63c465

[CL 24970980 by jordan hoffmann in ue5-main branch]
2023-04-07 17:50:46 -04:00
paul chipchase
8e5f3aa155 CIS - Fix conflicting localization macros
#rb trivial
#jira none
#rnx
#preflight 6430391d7536ac6b78b2be95

[CL 24965701 by paul chipchase in ue5-main branch]
2023-04-07 12:12:49 -04:00
paul chipchase
f5464ba58b Allow additional error info to be stored in FSourceControlResultInfo.
#rb wouter.burgers
#jira UE-181418
#preflight 642ece61df6c5c78fc9b99c9

- Added FSourceControlResultInfo::EAdditionalErrorContext that describes additional info about errors that the operation might have encountered that the caller can poll for rather than trying to parse error strings.
-- NOTE that we cannot enforce this info to be provided by source control provider implementations so this additional info should only be used to improve error messages.
-- Initially we support the connection to the provider failing and the connection to the provider dropping mid operation.
- Moved FSourceControlResultInfo to its own code files.
- I wanted to move the implementation of FSourceControlResultInfo::Append to the cpp, but this causes linker problems even with SOURCECONTROL_API as some modules are not including source control properly. For now I have left it in the header file and will look into this in another code pass.

[CL 24943799 by paul chipchase in ue5-main branch]
2023-04-06 10:04:00 -04:00
marco anastasi
7827deedca Removed redundant check for status of all files after a Revert operation
#preflight none
#rb wouter.burgers

[CL 24851925 by marco anastasi in ue5-main branch]
2023-03-30 05:10:12 -04:00
stanley hayes
d5af451d80 #JIRA: SOL-4250
Adding a modified icon for revision control, icon is a grey checkmark with a dot

#rb YiLiang.Siew
#rb Jared.Cotton
#rb Manuel.Lang
#rb Wouter.Burgers
[FYI] Erik.Dillinger


#rnx
#preflight 641215e35819afacaf249f90

[CL 24727408 by stanley hayes in ue5-main branch]
2023-03-20 21:00:06 -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
d59c4daedc SourceControl: Refactored 'revert unsaved' behavior to be consistent in SceneOutliner and ContentBrowser, following #23845005.
- Can be enabled/disabled via cvar (default disabled, enabled in Skein).
- Can revert unsaved in ContentBrowser (=new)
- Can revert unsaved in SceneOutliner (=existing)

#preflight 641059120e1f02786b3dd9ee

[CL 24636117 by wouter burgers in ue5-main branch]
2023-03-14 11:07:11 -04:00
wouter burgers
ddaa200319 SourceControl: Added cvar to force the modal dialog to always show up as a modal dialog, ignoring the preference of the calling code.
#preflight 64102f84c41a0a2a77063d17

[CL 24633200 by wouter burgers in ue5-main branch]
2023-03-14 07:39:31 -04:00
wouter burgers
ee0bc4b3f4 SourceControl / UEFN: Hide UEFN 'Revert' functionality behind cvars.
#preflight none
#preflight 640841a4827cf9251bf9f30d

[CL 24556839 by wouter burgers in ue5-main branch]
2023-03-08 05:01:20 -05:00
wouter burgers
09ca92480b SourceControl: Fixed inconsistent results when reverting asset in 'Submit Files' dialog.
#preflight none

[CL 24541931 by wouter burgers in ue5-main branch]
2023-03-07 11:59:14 -05:00