
O Git armazena conteúdo exclusivamente em seu repositório com base no hash calculado de qualquer arquivo. Se meu diretório tiver duas cópias do mesmo arquivo em algum lugar dentro dele, o git irá armazená-lo apenas uma vez.
Gostaria de saber se esse mesmo conceito foi implementado no nível do sistema operacional como algum tipo de sistema de arquivos.
Se um sistema de arquivos agisse dessa maneira por padrão, isso ajudaria muitodll infernoproblemas. Essencialmente, ele criaria um link simbólico automaticamente em seu nome. Qualquer aplicativo pode ser empacotado (como um jar) em um diretório com todas as suas dependências e sem custo extra de armazenamento.
Os entusiastas do Ruby compartilham bibliotecas publicando-as como rubygems. Ainda assim, esse esforço para compartilhar gemas resultou em pesadelos de implantação que levaram àFornecedor tudoconceito de copiar todas as dependências em pastas locais para evitar tais pesadelos.
Responder1
O que você está procurando é chamado de "desduplicação". Embora geralmente seja implementado por fornecedores de produtos de armazenamento especializados,o sistema de arquivos ZFStambém o implementa.A maioria dos sistemas operacionais derivados do Unixpode usar o ZFS e, portanto, recomendo-o como o primeiro lugar a procurar.
Responder2
tem capacidade de armazenamento como essa há muitos anos; na verdade, eles tiveram reclamações registradas na Sun Microsystems por seu sistema de arquivos ZFS e fazem o que Aaron Miller está mencionando em sua resposta aceita. Pelo que vale, as reclamações foram resolvidas com a Oracle após cerca de 3 anos.
Eu uso isso como uma solução corporativa desde 2000 e funciona bem. O custo de armazenamento após a primeira 'cópia' ocorre quando há uma alteração no arquivo. Caso contrário, com muitas 'cópias' ocorre apenas um ligeiro aumento no espaço para nome.
Não acho que isso responda à pergunta sobre o "nível do sistema operacional", mas sim sobre o "nível do sistema de arquivos".
Responder3
O novo Apple File System (APFS, assim chamado porque já existia um AFS que era outra coisa) faz essa mágica de "hardlinking automático"/"desduplicação". O macOS 10.13 oferece suporte nativo (na maioria dos Macs), assim como o iOS 11.
Dito isto, não acho que isso seja suficiente para torná-lo "git like", pois se fosse "git like", também teria uma soma de verificação criptográfica do estado da minha estrutura de diretórios em determinados momentos, para que Eu tinha certeza de que ninguém havia hackeado meu computador ou modificado os diretórios do sistema. Na verdade, eu uso repositórios git para rastrear certos diretórios críticos do sistema em meus Macs, como arquivos de configuração do Apache, LaunchDaemons, LaunchAgents e alguns outros - dessa forma, quando instalo software ou executo meu servidor por algum tempo, posso ver se alguma coisa foi ficou ferrado.
O APFS também tem um suporte bacana para descarregar itens do sistema de arquivos para a nuvem quando eles não são usados há algum tempo, mas ainda assim parecem estar lá e serão preenchidos novamente a partir da nuvem sob demanda.
Você sempre pode construir um Hackintosh e brincar com ele. BSD é divertido.