diff options
Diffstat (limited to 'SETUP.md')
-rw-r--r-- | SETUP.md | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/SETUP.md b/SETUP.md new file mode 100644 index 0000000..3b88339 --- /dev/null +++ b/SETUP.md @@ -0,0 +1,96 @@ +# Setting up digital media masters + +Digitally stored media master files +are often relatively large, +and are more likely used as-is than edited. + +We use git-annex to track such files. + +As an addon to git, +some of the interaction is done through git commands, +while some is done using git-annex-specific commands. + + +## Special strings + +NB! This documentation uses special strings +which you may want to adapt for your local setup: + +githostref: src.ex... +gitshellhost: git.example.org + + +### Paths + +You are recommended to use path suffix "annex" +for media master projects. +Examples: + + * ~/public_annex/home-videos + * ~/private_annex/friends-snoring + * ~/shared_annex_family/xmas_photos + + +## Create + +To turn a folder into a git repository +(see also alternative of (cloning)[#Clone] an existing project), +go into the folder, +and initialize its git and git-annex databases: + +```shell +git init +git annex init +``` + +To use git-annex only for large files (git for smaller ones), +add e.g. the following to file `.gitattributes`: + +```shell +git config annex.largefiles 'largerthan=100kb and not (mimetype=text/*)' +``` + +Finally, save all content: + +```shell +git add . +git commit -m "Initial commit" +``` + +(final `git commit` is implied by a later `git annex sync` or `git annex move`) + + +## Clone + +To collaborate on a shared git repository, +create a local clone from the shared location, +and tell git-annex to use it: + +```shell +git clone git.example.org:/srv/git/src.ex.../example +git annex init +``` + + +### Publish + +To publish a git repository initially created locally, +first create a new empty git and git annex publicly, +then tell your local git where its new origin will be, +and finally push your local git and git annex into its new public location: + +```shell +ssh git.example.org git init --bare --shared /srv/git/src.ex.../example.git +ssh git.example.org GIT_DIR=/srv/git/src.ex.../example.git git annex init +git remote add origin git.example.org:/srv/git/src.ex.../example.git +git push --set-upstream origin main +git annex sync --content --all +``` + + +## References + +* [Source of this document][media-master] + +[media-master]: https://source.redpill.dk/media-master + "Digital media master material" |