Existe uma maneira de criar uma cópia copy-on-write de um diretório?

12

Estou pensando em uma situação em que eu teria algo que cria uma cópia de um diretório, corrige alguns arquivos e faz algum processamento no resultado. Isso seria feito com bastante frequência, talvez algumas dezenas de vezes por dia. (O caso de uso exato é testar envios de patches; enganar o código, corrigi-lo, criar / testar / reportar / etc.)

O que eu estou procurando poderia ser feito criando uma nova estrutura de diretório e preenchendo-a com hard links do origonal. No entanto, isso só funciona se todas as ferramentas que você usa excluir e recriar arquivos em vez de editá-los no lugar.

Existe uma maneira de fazer com que o sistema de arquivos copy-on-write 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 isso não é o que eu quero.

    
por BCS 07.04.2010 / 04:57

2 respostas

6

Se você tiver sua opção de plataforma para seu servidor de arquivos, eu usaria uma versão recente do OpenSolaris e usaria o recurso de desduplicação do ZFS. Dessa forma, cópias de arquivos não ocupariam espaço adicional, e mesmo segmentos comuns entre arquivos não seriam replicados.

Você pode ler tudo sobre a desduplicação do ZFS em este post no Blog de Jeff Bonwick .

    
por 07.04.2010 / 07:03
-2

Pode ser SVN ou outra ferramenta de versionamento (git, cvs)?

    
por 07.04.2010 / 07:56