Estou pensando em uma situação em que eu teria algo que cria uma cópia de um diretório, ajusta alguns arquivos e, em seguida, processa o resultado. Isso é feito com bastante frequência, talvez algumas dezenas de vezes ao dia. (O caso de uso exato é testar envios de patches; enganar o código, corrigi-lo, criar / testar / relatório / etc.)
O que estou procurando pode ser feito criando uma nova estrutura de diretórios e preenchendo-a com links físicos do original. No entanto, isso só funciona se todas as ferramentas usadas excluir e recriar arquivos, em vez de editá-los no local.
Existe uma maneira de o sistema de arquivos copiar na gravação de um arquivo?
Nota: Estou ciente de que muitos FSs usam COW em um nível de bloco (todas as atualizações são feitas por meio de gravações em novos blocos), mas não é isso que eu quero.
fonte
cp
eln
faz quase exatamente a mesma coisa. COW em nível de bloco é um truque para minimizar o intervalo em que os metadados do FS estão incorretos: en.wikipedia.org/wiki/ZFS#Copy-on-write_transactional_modelRespostas:
Se você tem a plataforma de sua escolha para o seu servidor de arquivos, eu usaria uma versão recente do OpenSolaris e usaria o recurso de deduplicação do ZFS. Dessa forma, as cópias dos arquivos não ocupariam espaço adicional e nem mesmo os segmentos comuns entre os arquivos seriam replicados.
Você pode ler tudo sobre a desduplicação do ZFS nesta postagem no Blog de Jeff Bonwick .
fonte
A maioria das soluções de virtualização Linux oferece COW em nível de arquivo entre sistemas operacionais virtualizados (copiados do WP):
fonte
Pode ser SVN ou outra ferramenta de controle de versão (git, cvs)?
fonte