This guide covers TODOS.phase-72.72.20.1.14: the end-to-end artist workflow
for V2 binary asset version control.
Source Of Truth#
- Manifest:
V2/ue/Build/AssetPipeline/v2-asset-version-control-artist-workflow.json - Validator:
V2/ue/Tools/check-v2-asset-version-control-artist-workflow.py - Related guides:
artist-shallow-clone.md,large-repo-performance.md,binary-diff-visualization.md,asset-change-notification.md,asset-backup-disaster-recovery.md, andperforce-integration-guide.md
Artist Onboarding#
Generate the large-repository performance profile first:
python3 V2/ue/Tools/v2_large_repo_performance.py profile \
--profile artist \
--repo-url <repo-url> \
--workspace <workspace>
Then generate the shallow clone plan:
python3 V2/ue/Tools/v2_artist_shallow_clone.py plan \
--repo-url <repo-url> \
--workspace <workspace>
The approved onboarding path uses GIT_LFS_SKIP_SMUDGE=1, --filter=blob:none,
cone-mode sparse checkout, git lfs fetch --recent, and
git lfs checkout V2/ue. Do not use git lfs fetch --all for onboarding.
Daily Sync And Performance#
Keep sparse checkout enabled for V2/ue, V2/docs/asset-pipeline, and
TODOS/phase-72.md. Add narrow paths with git sparse-checkout add <path> when
needed. Keep LFS batch mode, TUS transfers, eight concurrent transfers,
60-second activity and keep-alive timeouts, and recent-ref fetches from the
large-repo performance profile.
Lock Edit Submit#
Lock binary assets before opening them in Unreal, Blender, Maya, Photoshop, or an audio tool:
python3 V2/ue/Tools/v2_asset_locking_workflow.py lock --path <asset>
The pre-commit hook rejects staged binary assets that are not locked by the current user. The post-commit hook releases current-user locks after the commit. If a file is already locked by someone else, coordinate before editing instead of replacing the asset locally.
New Asset Intake#
New binary assets must match V2/ue/.gitattributes and
v2-binary-asset-attributes.json. Textures, HDR images, source images, meshes,
audio, video, fonts, Unreal packages, and compressed textures are stored in Git
LFS. Respect the size budget: 100 MiB warns and 500 MiB fails.
Run:
python3 V2/ue/Tools/check-v2-asset-size-budget.py
python3 V2/ue/Tools/check-v2-asset-deduplication.py
python3 V2/ue/Tools/check-v2-asset-pruning.py
Binary Diff Review#
Before review, generate visual diffs for supported texture and mesh changes:
python3 V2/ue/Tools/v2_binary_diff_visualization.py compare \
--kind image \
--left <old.png> \
--right <new.png> \
--out-dir <report-dir>
python3 V2/ue/Tools/v2_binary_diff_visualization.py compare \
--kind mesh \
--left <old.obj> \
--right <new.obj> \
--out-dir <report-dir>
Attach report.html, diff.png, or wireframe-overlay.svg to the review when
the asset type supports it.
Change Notification#
Use the asset change notification planner to route affected owners and dependent content teams:
python3 V2/ue/Tools/v2_asset_change_notification.py plan \
--changed-list <changed-assets.txt> \
--json-report <report.json>
The report includes direct owner routing, dependency evidence, Slack, Microsoft Teams, email, and generic webhook payloads. CI keeps this in dry-run mode; studio automation sends payloads using secrets outside source control.
Cleanup And Recovery#
Unused assets are reported, not deleted, by the pruning tool. Duplicate assets
are grouped by sha256: content address by the deduplication tool. LFS storage
is backed up by six-hour snapshots with us-west-2 and eu-central-1
replication, six-hour RPO, four-hour RTO, and monthly restore drills.
Perforce Studio Option#
Studios using Perforce follow perforce-integration-guide.md for stream depot
layout, typemap, exclusive checkout, workspace setup, and P4 Git Connector
operation. The Git LFS mirror remains the OSS-style branch and CI validation
surface.
Validation And Troubleshooting#
Run the focused workflow validator before handing a workspace to an artist:
python3 V2/ue/Tools/check-v2-asset-version-control-artist-workflow.py
python3 V2/ue/Tools/check-v2-artist-shallow-clone.py
python3 V2/ue/Tools/check-v2-large-repo-performance.py
python3 V2/ue/Tools/check-v2-asset-locking-workflow.py
python3 V2/ue/Tools/check-v2-binary-diff-visualization.py
python3 V2/ue/Tools/check-v2-ci-workflow.py
If checkout is slow, verify --filter=blob:none, sparse checkout roots, LFS
batch settings, and recent-ref windows. If commit is blocked, check the Git LFS
lock owner and staged binary asset list. If review is unclear, regenerate the
binary diff report from known old and new files.