Commit Graph

29 Commits

Author SHA1 Message Date
wouter burgers
5a108e1f41 SourceControl: Added 'uses checkout' check to UnsavedAssetsAutoCheckout.
#rb Marco.Anastasi
#rnx

[CL 29956345 by wouter burgers in ue5-main branch]
2023-11-28 04:50:45 -05:00
patrick enfedaque
345d4162c1 Unsaved Asset Tracker
- Add PostGC callback to rebuild list (make sure tracker stops tracking GCed packages)
- Tracker rebuild list delayed while in PIE

#jira UE-186475
#rb richard.malo
#preflight 646ca4601417daba1e3e1302
#rnx

[CL 25581294 by patrick enfedaque in ue5-main branch]
2023-05-23 09:35:05 -04:00
bryan sefcik
91c57d395e Removed redundant module includes.
#preflight 645d4bf3aa3c584c0b5b3a67

[CL 25435653 by bryan sefcik in ue5-main branch]
2023-05-11 16:48:21 -04:00
marco anastasi
ba94a69dbb Implemented auto-save on check-in.
Fixed issue that prevented deleted objects from being restored on Revert All
As a collateral, fixed issue that caused not saving deleted files during Delete workflow to result in errors after sync
As a collateral, fixed issue that caused added and saved files to disappear after Sync Latest

#rb wouter.burgers, stuart.hill
[FYI] brooke.hubert, manuel.lang
#preflight 63ed15e5c9692d7c04ea4188

[CL 24251962 by marco anastasi in ue5-main branch]
2023-02-16 02:09:33 -05:00
wouter burgers
07778cf83f SourceControl: If SourceControl is not enabled or not available, don't attempt to auto FCheckOut any files, as it could prevent the user from making any edits.
Currently, if Skein is enabled but unavailable (for example: the user is disconnected from the internet), any action performed by the user will be Auto-Undo'd because the UnsavedAssetsAutoCheckout instance will trigger FCheckOut operations that will all fail.
This can be fixed in the Skein code as well but it probably makes sense to detect this on the UnsavedAssetsAutoCheckout level already.

#preflight none

[CL 24118960 by wouter burgers in ue5-main branch]
2023-02-10 10:14:06 -05:00
wouter burgers
45f8bf5650 SourceControl: Fixed UnsavedAssetsAutoCheckout checking out assets that are no longer loaded (and thus can't have changes).
During world destruction, which is triggered in UEFN through 'Close Project' some assets are being dirtied by the world destruction code (see: UEditorEngine::NewMap), which triggers an unintended FCheckOut operation. As a result, after loading the project, you'll have a number of files checked out that you're unaware of.
This changelist is very similar in intent/behavior to #23794793 which covered world recreation as opposed to world destruction.

#preflight none

[CL 24100387 by wouter burgers in ue5-main branch]
2023-02-09 12:15:32 -05:00
wouter burgers
9aafb20b42 SourceControl: Fixed some changes not being immediately undone.
The batching of files into a single FCheckOut operation in #23509995 introduced a subtle bug if a user action resulted in two separate transactions within a single tick. An example of this is adding a component to an actor, which results in 'Add Component' and 'Clicking on Component (tree view)' transactions. Because the PreUnsavedAssetAutoCheckout notification got postponed to the Tick() because of the batching, only the 'Clicking on Component (tree view)' transaction ended up being undone. This fix restores the timing of the PreUnsavedAssetAutoCheckout to its original location and adds a PostUnsavedAssetAutoCheckoutCancel delegate which will be called for assets that do not end up being part of the CheckOutOperation (because they do not exist on disk, or are no longer dirty).

#preflight none

[CL 24066981 by wouter burgers in ue5-main branch]
2023-02-08 00:25:01 -05:00
jeanluc corenthin
954f6d3b8d #rb none
#preflight 63dce9ff797b029c0a152824
#preflight 63dd22cdc2257e56f49c7066
[FYI] david.lesage

[CL 24007053 by jeanluc corenthin in ue5-main branch]
2023-02-03 22:39:18 -05:00
wouter burgers
2ced1e32ad SourceControl: Fixed UnsavedAssetsAutoCheckout checking out assets that are no longer dirty.
During world recreation, which is triggered by REVERT ALL and SYNC ALL, some assets are temporarily dirty'd by the reload world code because it destroys the old world instance and recreates a new world instance (see: UEditorEngine::NewMap). By the time this code block finishes, the assets are no longer dirty but the events will have been broadcasted by the UnsavedAssetsTracker, resulting in UnsavedAssetsAutoCheckout checking out assets that aren't dirty (anymore).

[REVIEW]
#preflight none

[CL 23797456 by wouter burgers in ue5-main branch]
2023-01-20 16:40:40 -05:00
richard malo
c32ff560ce Fixed FUnsavedAssetsTracker not to trigger a SyncWithDirtyPackageList if a PIE/game actor is deleted.
#rb jeanfrancois.dube

[CL 23520174 by richard malo in ue5-main branch]
2022-12-14 17:27:30 -05:00
wouter burgers
bc9341000c SourceControl: Fixed editor locking when dragging a large prefab into the scene while auto-checkout is enabled.
If the prefab consisted of 6000 files, then the UnsavedAssetsAutoCheckout would schedule 6000 FCheckOut operations, so it batches everything together for a single Tick.
It also scheduled the operation, regardless of whether the file is already saved to disk or not (which in case of dragging a prefab into the scene is not the case), so it checks for file existance now too.

Ideally, we would not batch per tick, but per 'user action'. However I'm not sure if we can actually use TransactionFinalized for that?

#preflight 63988b1243330e63e57cec7a

[CL 23514312 by wouter burgers in ue5-main branch]
2022-12-14 13:19:22 -05:00
marco anastasi
3241cb0b31 Make auto checkout the default behaviour for UEFN
#rb rex.hill, brooke hubert
[FYI] zach.rammell, wouter.burgers, manuel.lang
#preflight 6393a5c4c415e8dc78d59b0d

[CL 23475379 by marco anastasi in ue5-main branch]
2022-12-11 23:12:29 -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
marco anastasi
6a813ac677 Fix auto checkout crash on shutdown
(from CL 23209637)

#jira UE-170531
#rb trivial
#preflight 6378159c170bc34a938655a4

[CL 23220150 by marco anastasi in ue5-main branch]
2022-11-21 09:10:06 -05:00
marco anastasi
b4082937ec Imported changes submitted by Zach Rammel in CL 23186123 in UE5/Main
#preflight 6377d2f4815e4b9b755be05e

[CL 23219099 by marco anastasi in ue5-main branch]
2022-11-21 06:37:45 -05:00
zach rammell
14079f9b95 Fix auto checkout crash on shutdown
#jira UE-170531
#rb trivial
#preflight 6378159c170bc34a938655a4

[CL 23209637 by zach rammell in ue5-main branch]
2022-11-18 18:48:40 -05:00
zach rammell
cedfc997c9 Async background checkout now a component of unsaved assets tracker
Provides additional delegate hooks for automatic checkout

#jira FORT-532819
#preflight 6376b4a2337745090032e99c

[CL 23186123 by zach rammell in ue5-main branch]
2022-11-17 17:50:36 -05:00
patrick laflamme
152468f685 Fixed UnsavedAssetTracker to display the 'Unsaved' count that matches what the engine considers 'to be saved'.
- Fixed cases when working on an /Temp map package, typically an 'Untitled' map.
  - Fixed cases when adding/deleting an actor from the map.

#jira UE-169302 - The Unsaved Assets Tracker counter get out of sync when working on a /Temp OFPA map
#rb Brooke.Hubert
#preflight 636bf8ae843e6ac7942d6dc0

[CL 23071815 by patrick laflamme in ue5-main branch]
2022-11-10 01:08:15 -05:00
aditya ravichandran
7be93c5466 Outliner:
Add a filter and column to show Unsaved Assets.
Add a filter and modify the source control column to show uncontrolled assets
#jira UE-168231
#rb patrick.laflamme
#preflight 6361417a397c7af8966cec38

[CL 22890180 by aditya ravichandran in ue5-main branch]
2022-11-01 16:02:53 -04:00
patrick laflamme
6bfbcc62ee Fixed the UnsavedAssetsTracker being invoked on a background thread and firering delegates to code that assumes everything happens on the game thread.
#rb Brooke.Hubert
#preflight 63603d8c6f0c0303e6c6fccb

[CL 22888646 by patrick laflamme in ue5-main branch]
2022-11-01 15:09:39 -04:00
nick darnell
954d29b9f5 Editor - Beginning the process to no longer make loading all assets you right click in the content browser. The first step, is setting up the code to have a deprecation flag DEPRECATE_ASSET_TYPE_ACTIONS_NEEDING_LOADED_OBJECTS, this will make it illegal to implement GetActions on all AssetTypeAction implementations. Checked in disabled, enable it locally to begin trying to implement the recommended method detailed in the IAssetTypeActions header. WIP. One of the things this change does is outlaw (regardless of deprecation) the HasActions() function, this function is no longer used at all, and so we may as well remove its implementation, it also works well as a canary in finding other samples and things that need to be upgraded.
#jira UE-165574
[REVIEW] [at]Rex.Hill, [at]Lauren.Barnes
#preflight 63483c43ad0f7e2f20e44910

[CL 22534452 by nick darnell in ue5-main branch]
2022-10-14 16:59:41 -04:00
rex hill
d3a9141943 CIS fix
[CL 22425003 by rex hill in ue5-main branch]
2022-10-09 23:38:15 -04:00
rex hill
dcae51e633 Salvage a merge conflict
[CL 22424995 by rex hill in ue5-main branch]
2022-10-09 23:38:01 -04:00
rex hill
83ca518a72 Optimization pass on FUnsavedAssetsTracker::SyncWithDirtyPackageList()
#preflight skip
[FYI] Patrick.Laflamme

[CL 22424978 by rex hill in ue5-main branch]
2022-10-09 23:37:31 -04:00
patrick laflamme
7b2b492042 Optimized the UnsavedAssetsTracker to avoid building the full package pathname for package that are already tracked.
#jira UE-166080 - Large frame rate hit when recording a CineCameraActor
#rb Patrick.Enfedaque
#preflight 63403ee9587d6afac85a7b4d

[CL 22406976 by patrick laflamme in ue5-main branch]
2022-10-07 15:23:52 -04:00