NPDD/Baobáxia/GitAnnexPub
Conteúdo |
Documentação sobre exercício com repositórios git annex
Estrutura
- 1 servidor de sincronização - acotirene.sarava.org
- 2 servidores de arquivo (estações) - bartolina | kalakuta
- 1 "servidor" de transporte (pendrive)
_________ | | ____________________ |bartolina|------------------|acotirene.sarava.org|\ |_________| --------------------- \_______ | | | -----|------- | | kalakuta | __|_____ |___________| |pendrive|-----------------------------------------------| |________|
Criando repositório Bare (sincronização)
pasta bare (somente leitura)
zumbi@acotirene:
git init --bare git annex init origin
criando repositórios nos servidores de arquivos
criamos repositório original [origin]
nas estações, inicialize o repositório git annex:
git clone ssh://zumbi@acotirene.sarava.org:2241/home/zumbi/raiz/pub git annex init [bartolina|kalakuta]
por configuração ou algo ainda não sabido, após o clone é preciso adicionar qualquer arquivo para poder receber todos as indicações de arquivos do repositório completo. Adicione e comite
touch arquivo.txt git annex add arquivo.txt git commit -a git annex sync
na estação, adicione arquivos ao repositório
fernao@bartolina
cp -a [/storage/musica/Aldo\ Sena] . git annex add [Aldo\ Sena] git commit -a
vince@kalakuta
cp -a [gnawa] . git annex add [gnawa] git commit -a
ou então:
git annex import [nome do arquivo]
criando repositório de transporte
vince@kalakuta formatação que suporte symbolic links - vfat não suporta, formatar com outro tipo de partição
repositório de transporte (pendrive-sync) é clonado de um servidor de arquivo (kalakuta)
cd /media/pendrive git clone ~/[path]/annex/pub git annex init [pendrive-sync]
sincronizando repositório através do pendrive
fernao@bartolina coloque o pendrive
copiando arquivos do repositório de transporte para servidor de arquivos
git annex sync -> sincroniza links dos arquivos (faz symlink sem puxá-los) git annex whereis -> aponta localização dos arquivos git annex get [nome da pasta] -> faz uma copia local do arquivo (copia do local do link simbolico)
copiando arquivos do servidor de arquivos (bartolina) para repositório de transporte (pendrive-sync)
git annex copy --to pendrive-sync [Nome da pasta] git annex sync
obtendo informação sobre repositórios e arquivos
$ git annex status supported backends: SHA256 SHA1 SHA512 SHA224 SHA384 SHA256E SHA1E SHA512E SHA224E SHA384E WORM URL supported remote types: git S3 bup directory rsync web hook trusted repositories: 0 semitrusted repositories: 6 00000000-0000-0000-0000-000000000001 -- web 0d02f634-b4eb-11e2-a308-5b2a12a056c9 -- pendrive-sync 3565b218-b745-11e2-b6bf-3f1d4382aece 7b9706b6-b4e7-11e2-a815-df29d94aea3b -- origin b4debebe-b4e7-11e2-877b-736e379b6ff5 -- kalakuta ebb92320-b4e7-11e2-a761-3f407428bde8 -- here (bartolina) untrusted repositories: 0 dead repositories: 0 available local disk space: 2 gigabytes (+1 megabyte reserved) local annex keys: 28 local annex size: 199 megabytes known annex keys: 46 known annex size: 2 gigabytes bloom filter size: 16 mebibytes (0% full) backend usage: SHA256: 74
mostra aonde estão as cópias dos arquivos
$ git annex whereis whereis musicas/musica_x.mp3) 0d02f634-b4eb-11e2-a308-5b2a12a056c9 -- pendrive-sync b4debebe-b4e7-11e2-877b-736e379b6ff5 -- kalakuta ebb92320-b4e7-11e2-a761-3f407428bde8 -- here (bartolina) ok whereis videos/Desenvolvimento_Web_com_Python_e_Django/Aula 9.avi (1 copy) b4debebe-b4e7-11e2-877b-736e379b6ff5 -- kalakuta ok
confiança do repositório
confiando num repositório (somente para servidores, não para transporte (pendrive/hd externo)
git annex trust [nome_do_repo|hash]
desautorizando repositório (ex. pendrive a ser desativado)
git annex drop [nome_do_repo|hash]
Repositórios trusted, untrusted ou desativados (dead) são exibidos:
$ git annex status
supported backends: SHA256 SHA1 SHA512 SHA224 SHA384 SHA256E SHA1E SHA512E SHA224E SHA384E WORM URL supported remote types: git S3 bup directory rsync web hook trusted repositories: 1 ebb92320-b4e7-11e2-a761-3f407428bde8 -- origin (bartolina)
semitrusted repositories: 7
00000000-0000-0000-0000-000000000001 -- web 0379acea-b75f-11e2-a3f8-cbb4c5959a7f -- kalakutatest1 0d02f634-b4eb-11e2-a308-5b2a12a056c9 -- pendrive-sync 7b9706b6-b4e7-11e2-a815-df29d94aea3b -- origin a1cdd97a-b75f-11e2-a326-f75b5d18409b -- tmp_bartolina b2ab1784-b760-11e2-8ca8-af9f13e4c448 -- Cronos Sol b4debebe-b4e7-11e2-877b-736e379b6ff5 -- kalakuta untrusted repositories: 0 dead repositories: 1 3565b218-b745-11e2-b6bf-3f1d4382aece -- here available local disk space: 7 gigabytes (+1 megabyte reserved) local annex keys: 4 local annex size: 733 megabytes known annex keys: 48 known annex size: 2 gigabytes bloom filter size: 16 mebibytes (0% full) backend usage: SHA256: 52