Usando links simbólicos com git

5

Eu costumava ter todos os meus arquivos de configuração do sistema em um diretório para melhor gerenciamento, mas agora eu preciso usar algum controle de versão nele.

Mas o problema é que o git não entende links simbólicos que apontam para fora do repositório, e eu não posso inverter o papel (tendo os arquivos reais no repositório e os links simbólicos em seu caminho correto) já que alguns os arquivos são lidos antes do carregamento do kernel.

Acho que posso usar o uníssono para sincronizar os arquivos no repositório e nos caminhos deles, mas isso não é prático. E hard links provavelmente serão quebrados. Alguma idéia?

    
por Alfredo Palhares 13.09.2010 / 15:15

4 respostas

2

Se manualmente é a única maneira que esses arquivos são editados, você poderia colocar as versões canônicas no diretório de configuração do sistema e configurar um gancho post-commit no git que os copiaria para seus locais 'reais'.

    
por 13.09.2010 / 16:01
2

Você pode usar o sinalizador --work-tree e --git-dir ( git help git , defina ambos como caminhos absolutos e crie um alias) para ter a pasta .git fora do diretório com versão.

    
por 18.10.2012 / 00:15
1

No Debian e nas distribuições derivadas, você pode usar o etckeeper para gerenciar /etc . É tão simples quanto instalar o etckeeper, rodando etckeeper init uma vez e rodando etckeeper commit quando você mudou algo.

Eu não sei se o etckeeper está diretamente disponível para o Arch Linux, mas existem sucesso relatórios na web.

O Etckeeper usa git hooks para lidar com metadados, como permissões, propriedade e links simbólicos.

    
por 13.09.2010 / 23:03
-2

Crie links físicos e não links suaves.

Eu tenho o mesmo problema, eu uso o etckeeper, e ele copia meus arquivos para o / etc, o que eu não quero.

Então, em vez de

ln -s /srv/www/site/apache.conf srv_site.com

faça

ln /srv/www/site/apache.conf srv_site.com

e funciona! : D

    
por 26.09.2010 / 13:43