Notes Git Annex

Blog

http://git-annex.branchable.com/devblog/

Chiffrement

https://git-annex.branchable.com/tips/fully_encrypted_git_repositories_with_gcrypt/

http://git-annex.branchable.com/forum/security_risk_presented_by_remote.log__63__/

http://ewen.mcneill.gen.nz/blog/entry/2014-11-15-git-annex-to-manage-media-backups/

Autre

http://git-annex.branchable.com/not/

http://git-annex.branchable.com/tips/Bup_repositories_in_git-annex/

https://git-annex.branchable.com/forum/syncing_non-git_trees_with_git-annex/

https://git-annex.branchable.com/walkthrough/backups/

http://git-annex.branchable.com/internals/

http://endot.org/2014/01/01/git-annex-tips/

http://git-annex.branchable.com/tips/finding_duplicate_files/

http://obnam.org/encryption/

http://writequit.org/articles/getting-started-with-git-annex.html

https://julien.danjou.info/blog/2011/handling-my-music-collection-with-git-annex

https://www.thomas-krenn.com/de/wiki/Git-annex

http://git-annex.branchable.com/forum/confusion_with_remotes__44___map/

Synchro automatique avec git annex assistant Le fichier ~/.config/git-annex/autostart contient la liste des dépôts a synchroniser

~/.config/git-annex/autostart

/home/jean/annex2 /home/jean/annex
git annex dead usbdrive git annex semitrust usbdrive git annex add $file git annex merge git annex sync git annex sync --content git annex copy $file --to otherrepo git annex numcopies 2 git annex drop . --from cloud git annex forget --drop-dead

Centralisé

https://git-annex.branchable.com/tips/centralized_git_repository_tutorial/

On the server I did:

git init --bare git annex init origin

On Cĺient Alice (I want to give Bob a chance get call “git annex get” from “origin”):

git clone ssh://tktest@192.168.56.104/~/annex . git annex init Alice git annex merge git annex add . git commit -a -m "Added tutorial" git push origin master git-annex git annex copy . --to origin
git annex initremote myrsync type=rsync rsyncurl=ssh.example.com:/myrsync keyid=id@joeyh.name encryption=pubkey keyid=KEYID git annex describe myrsync "rsync server" git annex enableremote myrsync git annex enableremote myrsync keyid+=788A3F4C git annex testremote myrsync Désactiver temporairement git config remote.myrsync.annex-ignore false git annex unused --from myrsync git annex dropunused --from myrsync 1

## Décontralisé

Sur toutes les machines mkdir ~/annex cd ~/annex git init git annex init “$HOSTNAME $PWD” git annex add .

cd ~/annex git remote add machine1 user@machine1:annex

git annex get .

Exemple

git annex add fic git annex get fic git rm fic git annex drop fic git mv fic1 fic1.old

git annex sync

git annex unlock my_cool_big_file

git annex unused git annex fsck

Delete all the copies method

Source http://git-annex.branchable.com/tips/deleting_unwanted_files/

git annex drop --force file git annex whereis file git annex drop --force file --from $repo rm file; git annex sync

Si Pb de performance

git repack -ad git gc

Si le git status est long

git config core.ignoreStat true

Métadonnées remote.log uuid.log

Voir

git show git-annex:remote.log git cat-file -p git-annex:remote.log

Editer / Modifier l'object blob de git (remote.log ou uuid.log)

export EDITOR=vim git replace --edit git-annex:remote.log

Pour voir les métadonnées associé à un fichier

git annex metadata fichier

Mode direct

Passer en mode Direct

En mode Direct les fichiers sont directement modifiables

git annex direct

Puis, si l'historique des versions est importante alors il convient de marquer ce dépôt à “untrust”. Comme la modification en écriture est activée et que un git annex sync fera un “commit”

git annex untrust .

A tout moment nous pouvons repasser en mode Indirect (pour utiliser les commandes Git, par exemple)

git annex indirect

Pour modifier un fichier en mode Indirect

git annex unlock fichier

En mode Direct, les commandes git peuvent être utilisées grâce à la commande préfixe git annex proxy

git annex undo file

Gestion de la confiance

semitrust (défaut), untrust, trust, dead

git annex untrusted [Dépôt]

Exemple :

git annex untrusted .

--trust pas être utilisé comme option

Configuration

http://git-annex.branchable.com/backends/

.gitattributes

*.mp4 annex.backend=MD5E *.webm annex.backend=MD5E *.flv annex.backend=MD5E *.3gp annex.backend=MD5E *.mov annex.backend=MD5E *.mkv annex.backend=MD5E *.divx annex.backend=MD5E *.avi annex.backend=MD5E *.zip annex.backend=MD5E *.iso annex.backend=MD5E *.webm annex.numcopies=1

Note : à faire avant le git annex init ou voir git annex migrate si changement du backend (Fonction de hachage, içi MD5E)

Modifier la conf

git annex vicfg

Pb

$ git annex fsck --from=myspecialremote
gpg: can't query passphrase in batch mode
gpg: decryption failed: secret key not available

Solution

eval $(gpg-agent --daemon)

Si pas d’interface graphique

export GPG_TTY=$(tty)

Information pour debug

git-annex list git-annex whereis FICHIER git-annex info REMOTE git annex get . --from REMOTE --debug git annex fsck --from REMOTE
git annex unused
git annex test

Si un “special remote” a été décommissionné

git annex drop . --from cloud --force git remote remove cloud