Commit Graph

190 Commits

Author SHA1 Message Date
patrick laflamme
75ca107c39 Fixed CIS for not finding the correct hash function of uintptr_t in SourceControlFileStatusMonitor.h
#rb none
#preflight none

[CL 22322257 by patrick laflamme in ue5-main branch]
2022-10-03 20:38:57 -04:00
patrick laflamme
068b6058ab Implemented the 'Unsaved' Editor status bar button that displays the number of unsaved assets (dirty packages) the user and potential warnings with respect to the source control those asset may have.
- Implemented the UnsavedAssetTrackers plugin and enabled it by default.
  - Added the 'Unsaved' button to the Editor taskbars to display the number of unsaved packages along with a warning icon if warning are associated with one of the unsaved files.
  - Updated the 'Save Content' package to display warnings if one of the packages has warnings.
  - Added a class to monitor and periodically update the source controlled status of a collection of files/packages.
  - Changed the default value of PromptForCheckoutOnAssetModification settings to False because the Unsaved button flow is complementary (and the popup was noisy for OFPA users).
  - Updated the changelist window to use the soure control file status monitor.

#jira UE-163734 - Implement the 'Unsaved' Editor Taskbar Button
#rb Patrick.Enfedaque
#preflight 633ae915b12b8af5fde80f7c

[CL 22322224 by patrick laflamme in ue5-main branch]
2022-10-03 20:38:09 -04:00
patrick enfedaque
aa180f6f09 Fix not being able to revert Uncontrolled Changelist changes with files not at head revision. (files were forced synched to proper revision but would stay in the UC)
- Add flag to SourceControlOperation to test modified status against synched revision (p4 #have)
- Use this new flag when testing for modifications in UncontrolledChangelist

#jira UE-165558
#rb luc.eygasier
#preflight 633633b7936ff7e3dcda5f92

[CL 22271768 by patrick enfedaque in ue5-main branch]
2022-09-30 11:39:49 -04:00
jonathan bard
4886c1a9f3 Fixed "SourceControl: Error: CommandMessage Command: UpdateStatus, Error: Usage: filelog" message being displayed when using GetFileHistory
#rb luc.eygasier

[CL 22271664 by jonathan bard in ue5-main branch]
2022-09-30 11:33:33 -04:00
patrick enfedaque
f5014308ba DefaultSourceControlProvider: Fix missing Make Writable option when disconnected from SCC (introduced in CL 22187137)
#rb none
[FYI] marco.anastasi
#preflight none

[CL 22209892 by patrick enfedaque in ue5-main branch]
2022-09-27 17:37:13 -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
bryan sefcik
0beee50b45 Updated ../Engine/Source/Developer/... to inline gen.cpp files
Before:
Total CPU Time: 53783.640625 s
Total time in Parallel executor: 558.66 seconds
After:
Total CPU Time: 47886.140625 s
Total time in Parallel executor: 498.81 seconds

#jira

[CL 22173145 by bryan sefcik in ue5-main branch]
2022-09-24 13:31:25 -04:00
paul chipchase
623ba6cc9e The source control settings for the VA source control connection are no longer saved to a local ini file.
#rb Per.Larsson
#jira UE-163834
#rnx
#preflight 632d98e4b4515b7e221654ec

### Virtualization
- At the moment there is no way in the editor UX to change the source control settings for the source control backend, so what ever settings are found in the global environment would be applied when the editor is first run and then saved to a config file under the <saved> directory. From this point onwards those settings would always be used when setting up the source control backend. If the settings were wrong, the first time that the editor was started, then we'd continue to use the incorrect settings even if the global enviroment was fixed. Making the backend work at that point would require that the user know about the local ini file and change the settings there.
- We cannot fix this by just ignoring the ini file as it has been requested that users can add their settings there in case they want to customize things, so we just need to avoid saving to it.
- Added documentation to the source control backends header file on how to set up the ini file if needed.

### Perforce
- FSourceControlInitSettings now accepts EConfigBehavior which describes how we want the source control provider to deal with its settings with regards to the ini file.
- Note that EConfigBehavior is not a bitfield as we do not wish to support only writing to the ini file, there is no point if it cannot be read from.
- When the source control provider is creatred we pass on the into from EConfigBehavior to the FPerforceSourceControlSettings to enable/disable saving and loading.

[CL 22163769 by paul chipchase in ue5-main branch]
2022-09-23 20:05:59 -04:00
patrick laflamme
baaeea90d5 Fixed a crash that happening when a an asset that was just added to source control was reverted and the package was unloaded.
#rb Luc.Eygasier
#preflight 6328cdd90a4ad044de4367f0

[CL 22088593 by patrick laflamme in ue5-main branch]
2022-09-20 00:46:40 -04:00
luc eygasier
abfd119ea2 Enabled Uncontrolled Changelists by default.
Adds setting to disable uncontrolled changelists.

#rb Patrick.Laflamme
#jira UE-163064
#preflight 6328649b8c3def91aa6d9576
#changelist validated

[CL 22086935 by luc eygasier in ue5-main branch]
2022-09-19 21:54:38 -04:00
wouter burgers
286e2234bf SourceControl / UEFN: Remove / disable 'sync' context menu item in Content Browser.
For SourceControl providers that do not support individual file revisions, the 'Sync' option in the context menu of the Content Browser is misleading as it suggests only the selected files/folders will be synced, while in reality the sync is project wide. I've left the current behavior as the default behavior for all but Skein/Git of which I know they do not support individual file revisions.

#preflight 631ec93359159ac1832b5538

[CL 22086921 by wouter burgers in ue5-main branch]
2022-09-19 21:54:19 -04:00
patrick laflamme
d9a04862a3 Added the 'Last Saved' and 'User' column to the changelist window.
- Implemented sorting and searching for the new columns.
  - Added a FUpdateStatus request to the source control provider when the user selects a changelist.  This gets the users that checked out the files along with extra file status.

Added support to enable/disable changelist window columns for 'Type', 'Last Saved' and 'User' columns and persisted the settings.
Added tooltips over the changelist row that display the content of a column. Useful when the value is clipped because the column is too small.
Added tooltips over the changelist row header.
Prevented creation of useless temporary strings in PerforceSourceControlOperations.cpp

#rb Patrick.Enfedaque
#preflight 6323613367163bf6600d4fc6

[CL 22040806 by patrick laflamme in ue5-main branch]
2022-09-15 18:45:09 -04:00
bryan sefcik
a3dddc6630 Pass 1 on Developer include fixes:
Removed redundant private include paths from build.cs files.
Fixed include paths to be relative to the private or public folders.
Hid or removed includes that reached into other private module folders.
Updated PublicInclude paths when necessary.

#jira
#preflight 631e281694758d0bf2ea1399

[CL 21960082 by bryan sefcik in ue5-main branch]
2022-09-11 18:32:18 -04:00
bryan sefcik
f58e75e476 Pass 2 on cleaning up build.cs files.
#jira
#preflight 631b7a79304480f8f8b48580

[CL 21931324 by bryan sefcik in ue5-main branch]
2022-09-09 19:41:38 -04:00
patrick laflamme
613bcd7b4d Fixed the 'Submit Window' saving the description of the default changelist into a new changelist without moving the files.
- In the 'Submit' window, renamed the 'Apply' button to 'Save' button.
  - If the user saves with the 'default' changelist, a new changelist is created with the user description and files are moved into that changelist.
  - If the user saves with any other changelist, ony the description is edited.

#rb Luc.Eygasier
#preflight 631a13a2304480f8f85aba2c

[CL 21909342 by patrick laflamme in ue5-main branch]
2022-09-08 20:48:26 -04:00
patrick laflamme
6819c99704 Removed the creation of hundreds of unneccesary temporary strings while parsing P4 results.
#rb Patrick.Enfedaque
#preflight 6310a693e352708d4462e191

[CL 21743001 by patrick laflamme in ue5-main branch]
2022-09-01 12:40:50 -04:00
SRombauts
8df7cabe69 Updated the changelist window to handle the Enter and Delete keys to Submit or Delete the currently selected changelist if conditions to do these operations are met. This mimics P4V behavior.
Updated the changelist window to handle double clicking on a changelist. This opens the submit dialog if the submit conditions are met. This mimics P4V behavior.

PR #9433: [Source Control] Changelists window: intercept Enter and Delete keys to Submit or Delete the current changelist (Contributed by SRombauts)
#jira UE-160314
#rb Patrick.Enfedaque
#preflight 630d1e68f92416fb92702657

[CL 21709874 by SRombauts in ue5-main branch]
2022-08-30 17:17:25 -04:00
Patrick Laflamme
67dacf2baa Fixed memory leak when a long source control operation blocks the main thread while the rendering thread renders to animate the source control feedback popup.
Note: This popup is currently disabled for P4.

#jira UE-161263 - GitHub 9492 : [UE-100291][UE-160299] Fix source control progress bar crashing out of video memory in case of long-running operation
#jira UE-160395 - GitHub 9464 : fix FScopedSourceControlProgress memory leak.
#jira UE-160299 - GPU memory leak during large source control operations

#rb Vincent.Gauthier
#preflight 63078403e674580995224875

[CL 21563977 by Patrick Laflamme in ue5-main branch]
2022-08-25 10:33:13 -04:00
luc eygasier
48a54c4e48 Fixes packages from different project paths unable to be reverted.
#rb Patrick.Enfedaque
#preflight 62fe8dcaaa546d5e9d05d0a4
#changelist validated

[CL 21499945 by luc eygasier in ue5-main branch]
2022-08-22 21:22:48 -04:00
patrick laflamme
7f2a598696 Refactored the Changelist Window UI to work better with large changelists along with bug fixes.
This submit should not regress any existing functionalites of the previous widget.

Along with the user interface changes, notable bug fixes were included
  - If a changelist is not specified for P4 operations 'Mark for Add', 'Mark for Delete and 'Checkout', defaulted to the 'default' P4 changlist. Without a valid changelist, the cache wasn't properly updated.
  - Fixed updating the cache for P4 'Mark for delete' operation not correctly updating the file changelist cached in the file state.

Other changes:
  - P4 changelists are now always returned sorted by changelist number, ascending.
  - Some of the safe operations were running synchronous are not running asynchrnous (create new changelist, delete empty changelist, delete shelved files).

This submit addresses the following Jiras:

#jira UE-155207 - Refactor the changelist window layout to have the left/right panel.
#jira UE-155209 - Add the context menu on right click on a file or a changelist.
#jira UE-155218 - Support creating new empty changelist from the changelist view.
#jira UE-155220 - Support moving files from the selected changelist (right view) to another changelist (left view)
#jira UE-155211 - Add visual feedback for any operation taking more than 0.5s.
#jira UE-155212 - Display a list of uncontrolled files in the left panel of the changelist window
#jira UE-155499 - Changelist windows buttons should be disabled if SCC is disabled
#jira UE-155229 - Add an option to automatically refresh the changelist window when new assets are imported|created (as uncontrolled), marked for add, checked out, marked for delete
#jira UE-107577 - Source Control's Changelists dialog does not refresh to reflect changes made while open

#rb Patrick.Enfedaque
#preflight 62ff946ef7404b55a326297b

[CL 21499885 by patrick laflamme in ue5-main branch]
2022-08-22 21:20:05 -04:00
luc eygasier
0cda7fc8ed Modifies revert operations in source control window to also reload packages.
Adds Source Control Helper method to perform a modular source control operation and reload the concerned packages

#rb Patrick.Enfedaque
#preflight 62fd4e63e64b1a510937890b
#changelist validated

[CL 21444877 by luc eygasier in ue5-main branch]
2022-08-18 13:03:11 -04:00
patrick enfedaque
578bc094cd SCC: Dependency validation only on hard refs
#rb jeanfrancois.dube
#preflight 62fa5395153b17e746322f0c

#ROBOMERGE-AUTHOR: patrick.enfedaque
#ROBOMERGE-SOURCE: CL 21387351 via CL 21390995 via CL 21391795
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v975-21357124)

[CL 21394315 by patrick enfedaque in ue5-main branch]
2022-08-15 17:13:39 -04:00
paul chipchase
da282e1873 Add FSourceControlBackend support for storing virtualized payloads in a stream type depot.
#rb Per.Larsson
#rnx
#jira UE-160619
#preflight 62f37c86b66d5d93133d67e3

- Based on work from Jess.Kube

### Virtualization
- The source control backend now takes an optional config option "ClientStream" which takes the name of the client stream to use.
- If a client stream is set then workspaces created for payload submission will use that and not provide a client-view mapping.

#ushell-cherrypick of 21195584 by Jess.Kube
### PerforceSourceControl
- Allow FCreateWorkspace to create workspaces with streams as well as classic workspaces cia FCreateWorkspace::SetStream.
- Add a method FCreateWorkspace::ClearClientViewMappings which will clear any client view mappings already added to the operation.
- If we detect that a FCreateWorkspace operation has both a stream set and client view mappings set then FPerforceCreateWorkspaceWorker will return an error. Perforce will allow us to creat a client spec with both entries, but will default to using the stream. Technically we could allow this too but it might cause unexpected behaviour to the caller. It is better to give a clear error and fail the workspace creation.

[CL 21316756 by paul chipchase in ue5-main branch]
2022-08-10 08:51:05 -04:00
bryan sefcik
de1956f47b Ran IWYU on Public headers under Engine/Source/Developer/...
Headers are updated to contain any missing #includes needed to compile and #includes are sorted.  Nothing is removed.

#ushell-cherrypick of 21064294 by bryan.sefcik
#jira
#preflight 62d5c2111062f2e63015e598

#ROBOMERGE-OWNER: bryan.sefcik
#ROBOMERGE-AUTHOR: bryan.sefcik
#ROBOMERGE-SOURCE: CL 21155249 via CL 21158121 via CL 21161259
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v972-20964824)

[CL 21182053 by bryan sefcik in ue5-main branch]
2022-07-20 12:03:45 -04:00
marc audy
0edc19c939 Duplicating assets should keep a perforce relationship to the original file
#rb Brooke.Hubert
#jira

#ROBOMERGE-AUTHOR: marc.audy
#ROBOMERGE-SOURCE: CL 21119014 via CL 21119416 via CL 21119491
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v972-20964824)

[CL 21142516 by marc audy in ue5-main branch]
2022-07-17 22:46:56 -04:00