aboutsummaryrefslogtreecommitdiff
path: root/USE.md
diff options
context:
space:
mode:
Diffstat (limited to 'USE.md')
-rw-r--r--USE.md98
1 files changed, 7 insertions, 91 deletions
diff --git a/USE.md b/USE.md
index 288f3b9..58b616a 100644
--- a/USE.md
+++ b/USE.md
@@ -1,59 +1,14 @@
# Using digital media masters
-Master files -
-either original sources or as close as possible -
-are precious and should be carefully tracked.
+Digitally stored media master files
+are often relatively large,
+and are more likely used as-is than edited.
-Digital media files -
-e.g. photos, videos, music -
-are often large and binary encoded,
-which poses special challenges for their tracking.
-
-
-## Git-annex
-
-Digital media masters are tracked with git and git-annex.
-
-Git is a version control system -
-a repository for historic versions of file contents of a folder.
-Git-annex is an extension to git,
-better handling large files.
-
-
-### 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:
-
- git init
- git annex init --version=7
-
-To use git-annex only for large files (git for smaller ones),
-add e.g. the following to file `.gitattributes`:
-
- * annex.largefiles=((largerthan=100kb)and(not(mimetype=text/*)))
- *.svg annex.largefiles=nothing
-
-Finally (save)[#Save] all content:
-
- git annex add .
- git commit -m "Initial commit"
-
-(final `git commit` is implied by [`git annex sync` or `git annex move`](#clone))
+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.
## Status
@@ -80,45 +35,6 @@ and then archive their (changes to) content:
(final `git commit` is implied by [`git annex sync` or `git annex move`](#clone))
-## Clone
-
-To collaborate on a shared git repository,
-first create a local clone from the shared location,
-and tell git-annex to use it:
-
- git clone git://[[!template id=githost]]/example
- git annex init --version=7
-
-Then from time to time syncronize,
-ensuring that all content exists both locally and remotely:
-
- git annex sync --content --all
-
-Alternatively (e.g. on slow/expensive network),
-syncronize only metadata and only with nearest clones:
-
- git annex sync
-
-Alternatively (e.g. on small host),
-push the content to only be remote without keeping a local copy:
-
- git annex move .
-
-
-### 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:
-
- ssh [[!template id=githost]] git init --bare --shared /srv/git/[[!template id=githost]]/example.git
- ssh [[!template id=githost]] GIT_DIR=/srv/git/[[!template id=githost]]/example.git git annex init
- git remote add origin [[!template id=githost]]:/srv/git/[[!template id=githost]]/example.git
- git push --set-upstream origin master
- git annex sync --content --all
-
-
## Access
While main purpose of git-annex is to store large media elsewhere,