Qual é o caminho certo para a versão controlar um arquivo protegido por senha?

5

Estou trabalhando com um arquivo local que eu sempre extraio de um arquivo protegido por senha (RAR), faço algumas modificações / inclusões nele e sobrescrevo o arquivo antigo dentro do arquivo com o novo arquivo (não sobrescrevo o arquivo Eu sobrescrevo o arquivo dentro dele. O RAR é protegido por senha por certas razões de confidencialidade, e eu preciso que seja assim.

Eu considerei usar o Git para controle de versão, mas a partir do meu primeiro uso do Git, ele parece ser destinado a arquivos que não são arquivados. Eu queria a versão controlar meu arquivo RAR. Mas e se eu decidir adicionar mais arquivos ao RAR e depois confirmar o RAR? Isso não estraga o ponto de ter controle de versão, onde você também pode fazer um diff para comparar versões, etc.? Faz sentido usar um controle de versão quando estou extraindo arquivos do RAR para fazer modificações e, em seguida, colocando-os de volta no RAR e confirmando o RAR?

O controle de versão é o caminho certo para fazer isso ou há algo melhor?

    
por Nav 26.08.2012 / 06:23
fonte

5 respostas

3

Você também pode colocar seus arquivos sob controle de versão e, em seguida, rar todos os arquivos junto com o diretório .git. Então você obtém todos os benefícios do git e tem todo o conteúdo protegido.

    
por 26.08.2012 / 09:54
fonte
2

Eu consideraria não colocar o arquivo RAR no controle de versão. Se você quiser ter recursos de comparação / comparação, é muito melhor colocar seus arquivos (texto?) No controle de versão. Se você precisar desse arquivo RAR, crie um script para construir o arquivo RAR a partir do zero de uma maneira reproduzível. Coloque esse script também no controle de versão.

Em relação à confidencialidade: eu usaria um sistema de arquivos criptografado, por exemplo, algo como True Crypt , para seus arquivos locais cópia de trabalho de texto e também o repositório git).

    
por 26.08.2012 / 08:41
fonte
2

Se tudo o que você tem em seu repositório é um arquivo raro, você perde praticamente todos os benefícios de um sofisticado sistema de controle de versão, como ramificação / mesclagem, diffs, armazenamento diferencial eficiente etc. Se você quiser manter indo por esse caminho, então você realmente não precisa de um sistema de controle de versão - um diretório de arquivos RAR fará exatamente o mesmo por você (menos a integração com o IDE, mas você pode facilmente fazer o script dessa maneira).

Se você fizer quiser aproveitar os benefícios do controle de origem, veja o que pode fazer:

  • Configure uma máquina dedicada para trabalhar, com criptografia de disco completo. A máquina pode ser uma VM se você não tiver uma reserva disponível, contanto que tudo esteja criptografado. Certifique-se de que ninguém tenha acesso a essa máquina, exceto você. Escolha senhas strongs.
  • Nessa máquina, configure um repositório do git e seu ambiente de desenvolvimento.
  • Bloqueia o acesso à rede: sua máquina de desenvolvimento deve ter um conjunto muito restrito de regras de firewall (e um bom firewall). Mais importante ainda, bloqueie todo o tráfego de entrada, exceto o que você realmente precisa: não há razão para permitir tráfego HTTP de entrada, por exemplo. Se for uma VM em execução na sua estação de trabalho local, você não precisará de nenhum acesso à rede, exceto para baixar atualizações de software.
  • Copie o arquivo RAR para a máquina de desenvolvimento, descompacte-o e coloque os arquivos descompactados no repositório git.
  • Sempre que você precisar enviar um RAR, exporte a versão HEAD do repositório do git e RAR com uma senha adequada, depois copie-a da máquina de desenvolvimento.

Este método tem algumas vantagens sobre sua abordagem atual: os arquivos descompactados nunca são gravados em disco não criptografados (porque todo o disco da máquina de desenvolvimento é criptografado), e como a máquina de desenvolvimento serve apenas esse propósito, você pode aplicar medidas de segurança mais restritivas - por exemplo, você não precisa executar um navegador da web (você pode fazer isso em sua máquina 'normal'), você não precisa ler nenhum e-mail, você não precisa de coisas como flash, Java, etc. E se em algum momento você parar de trabalhar nesse projeto, você pode simplesmente limpar a chave de criptografia, e tudo que você já sabia sobre o projeto desapareceria. Além disso, a criptografia fornecida pelo TrueCrypt e por soluções de criptografia de disco inteiro semelhantes é muito melhor do que qualquer coisa que o RAR tem a oferecer.

De qualquer maneira, você precisa decidir sobre um modelo de ameaça para se defender e ver qual estratégia funciona melhor.

    
por 26.08.2012 / 08:53
fonte
1

Se tudo o que você está fazendo é sobrescrever arquivos, não é realmente o controle de versão. Você usa o Controle de Versão para diferentes versões, releases, compilações, etc. de um projeto.

Eu acho que você está olhando para isso da maneira errada. Existe alguma razão pela qual o arquivo rar não pode ser descompactado e os arquivos enviados para um projeto protegido por senha em qualquer número de hosts git / subversion que oferecem um projeto livre?

EDIT: Com base na sua resposta, você quer local.

Não sei qual sistema operacional você está usando, mas aqui está VisualSVN

Isso deve permitir que você configure um repositório local do Subversion no Windows. Qualquer integração com o Subversion IDE deve funcionar. Eu sei ANKSVN para VS faz. Você pode controlar o acesso e solicitar login para acessá-lo. Isso permitirá um controle de versão real para você, mas ainda permitirá que você mantenha tudo local e seja seguro.

Editar # 2: apenas sobrescrever arquivos não é uma prática recomendada. Você não tem nada em que voltar se destruir a funcionalidade ao tentar melhorá-la.

    
por 26.08.2012 / 06:38
fonte
0

btw ... O RAR pode manipular o controle de versão nativamente (não em conluio com o pessoal do RAR apenas um usuário satisfeito). Consulte este link para obter detalhes.

    
por 29.01.2013 / 15:25
fonte