Dann Luciano

A lifelong student of the art of programming computers!

Rsync Exclude

| Comments

Hoje passei por um problema e gostaria de compartilhar a solução com vocês. Meu mais novo brinquedo chegou e eu queria fazer uns testes de programação nele, usando o Textastic.

O problema:

Meu principal projeto do mestrado esta versionado com o Git. Só que eu gero alguns arquivos “binários” como images, postscripts, logs, gráficos, que uso para documentação e entradas para o meus algoritmos, mas eles alem de ocuparem muito espaço, não fazem sentido serem versionados pelo Git. Uma solução simples é adicionar eles no .gitignore fazendo com que o Git não se preocupe com eles.

O problema real esta na hora de carregar só os arquivos fontes para o iPad, uma solução seria incluir só o diretório src onde estão a maioria dos fontes, mas isso deixaria outros fontes de fora.

A solução:

A solução que encontrei foi usar o Rsync para sincronizar o repositório com uma pasta no Dropbox.

Com a flag --exclude do Rsync podemos fazer isso facilmente para pastas e arquivos individuais, mas passar --exclude para cada diretório ou arquivo é uma tarefa bastante trabalhosa.

Pensando um pouco eu já tinha todos os diretórios e arquivos que não queria versionar no .gitignore, eu só precisava que o Rsync entendesse isto. Pesquisando eu encontrei uma a flag --exclude-from que faz justamente isso e ainda possui a mesma “semântica” do .gitignore. O comando final ficou assim:

Liquid error: undefined method `lstrip’ for #

Este comando juntamente com outros são executados de hora em hora com o cron.

Se alguém tiver uma melhor forma de resolver esse problema, ou duvida, não deixe de comentar.

Referencias:

Comments