Então, eu estou tentando trabalhar em um comando para rsync uma pasta de origem com uma estrutura como esta:
- app.js
- .gitignore
- src/
- src/logs/
- src/logs/.gitignore
O primeiro .gitignore teria uma série de arquivos ignorados. Coisas típicas. O segundo seria semelhante ao seguinte:
*
!.gitignore
Essa técnica é usada quando você deseja fazer check-in em um diretório com nenhum dos arquivos dentro. Também pode haver mais .gitignores em todo o diretório - este é apenas um cenário. Portanto, minha pergunta é a seguinte: É possível fazer o rsync interpretar todos os .gitignores em relação ao diretório em que estão?
Minha tentativa inicial foi a seguinte:
- Glob todos os .gitignores no diretório
- Comando Build que se parece com:
rsync --exclude-from=.gitignore --exclude-from=src/logs/.gitignore --exclude-from=some/other/folder/.gitignore [source] [destination]
No entanto, isso não funcionou como esperado para mim. Tudo está sendo ignorado porque está lendo todos os arquivos .gitignore como se estivessem na raiz. Existe alguma maneira possível de fazer isso sem ter que grep para todos os .gitignores e criar um arquivo mestre com caminhos reescritos, todos relativos ao diretório raiz?
Obrigado!