Studio pipeline
Version control
Phoenix writes documents the same way every time, so a save that changes nothing changes no bytes, and a save that changes one symbol changes only that symbol's file.
Save as XFL folders
An .fla is a zip archive: version control sees one opaque file that changes as a whole. An XFL folder holds the same document as separate files: DOMDocument.xml for the scenes, one file per symbol under LIBRARY/, and the bitmap and sound data under bin/. To open one, choose and pick the .xfl file or the DOMDocument.xml inside it, or drop either on Phoenix.
To make XFL folders the format new documents are saved in, choose File > Default Save Format > XFL Folder (for version control). To save one document as a folder, choose XFL Folder as the type in File > Save As. To convert existing files, use the command line, one file or a whole folder at a time:
Phoenix --convert shots/sh010.fla shots_xfl/sh010
Phoenix batch episode/ --convert xfl --out episode_xfl/
An XFL folder keeps everything a Phoenix document does, Phoenix's own features included: textured and art brushes, linked palettes, effect layers, the multiplane camera, deformers, review notes and the rest are written into the folder in a form Phoenix reads back, and Phoenix's tests check that each one comes back. What a .phx adds is speed with very large documents, not anything the folder lacks.
The one risk is another FLA editor: it shows the artwork without those features and leaves them out if it saves the folder. Keep the folder edited in Phoenix, and Phoenix warns before saving a document that uses them as FLA or XFL.
Git LFS for the media
The XML files diff and merge as text. The media under bin/, and any whole .fla or .phx files, are binary and belong in Git LFS. A .gitattributes for a project:
# Whole documents and the media inside XFL folders
*.fla filter=lfs diff=lfs merge=lfs -text
*.phx filter=lfs diff=lfs merge=lfs -text
**/bin/** filter=lfs diff=lfs merge=lfs -text
*.wav filter=lfs diff=lfs merge=lfs -text
*.mp3 filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.psd filter=lfs diff=lfs merge=lfs -text
# The XML of an XFL folder is text
*.xml text eol=lf
*.xfl text eol=lf
Run git lfs install once on each machine, and add the file before committing any documents.
Phoenix as the diff tool
Phoenix diff compares two versions of a document part by part and frame by frame (see Command line). To use it from Git:
git config --global difftool.phoenix.cmd 'Phoenix diff "$LOCAL" "$REMOTE" --out phoenix-diff'
git difftool --tool=phoenix HEAD~1 -- shots/sh010.fla
In Phoenix, File > Compare With shows the same report for the open document against another file.
Locking
Two people editing the same symbol at once will conflict, as in any binary-heavy project. Git LFS file locking (git lfs lock) keeps a shot file or a rig to one person at a time; with XFL folders, lock the symbol files you are working on.