Minimalism version control system for binary data.
It is designed for versioning asset data in game/3D/VFX industry, in a simple way.
Hopefully, it can make life easier for TA/TD, without using huge version control system like Perforce.
Please look at docs/design.png for specifications.
Managed by core.repo.Repo using core.state_chain.StateChain
-
added -
deleted -
modified -
unchanged -
renamed -
moved -
copied
Managed by core.repo.Repo using core.session_manager.SessionManager
Work on top of StateChain, provide a filter-like mechanism to derive a discontinuous sub-chain from main StateChain for different working purposes
Managed by core.repo.Repo using core.state.State and core.state.StateChain
-
EXHAUSTIVE( default mode, commit all diff types ) -
ADDITIVE( also known asadd_only, commit onlyAdded,Modified,Unchangeddiff )
New State to be added to StateChain is derived differently from WorkspaceHash depend on commit modes
Diff calculation process between two State objects is always exhaustive
Any folder with sub-hierarchy VCS_FOLDER/WORKSPACE_FOLDER
VCS_FOLDER and WORKSPACE_FOLDER can be customized in ./common/config.yml
Example: We have ../output_data/last/.vcs_lite/.workspace
- In this case,
../output_data/lastis a valid workspace
Any folder with sub-hierarchy VCS_FOLDER/REPO_FOLDER
VCS_FOLDER and REPO_FOLDER can be customized in ./common/config.yml
Example: We have ../output_data/last/.vcs_lite/.repo
- In this case,
../output_data/lastis also a valid repo
repo and workspace can be the same folder
The main class is vsc_interface.VersioningInterface. Users are supposed to use it to interact with workspace and repo
With 2 subclasses of VersioningInterface, we have two working scenarios
-
LocalVersioningworkspaceandrepoat the same location -
RemoteVersioningworkspaceandrepoat the different locations
-
METADATAIt is just the file
VCS_FOLDER/WORKSPACE_FOLDER/METADATA, store record of all repositories that workspace connected to. -
loggingLog files are stored in this folder
Log file name format:
_username_yyyy-mm-dd.txt
-
METADATAIt is just the file
VCS_FOLDER/REPO_FOLDER/METADATA, store ID of the repo. -
blobFolder with sub-hierarchy
VCS_FOLDER/REPO_FOLDER/BLOB_FOLDERStore data blobs
-
stateFolder with sub-hierarchy
VCS_FOLDER/REPO_FOLDER/STATE_FOLDERManage states of workspace/working directory
Skeleton for versioning mechanism
-
sessionFolder with sub-hierarchy
VCS_FOLDER/REPO_FOLDER/SESSION_FOLDERRepresent for working session
Work as a filter on top of state chain
-
loggingLog files are stored in this folder
Log file name format:
_username_yyyy-mm-dd.txt
Please look at ./docs/usage_example.py
Leave a Reply