Sistema de versionamento para múltiplos usuários em um único usuário

2

Eu tenho dois computadores (trabalho e casa) e desejo configurar um sistema de controle de versão para código-fonte e documentos do TeX. Não há colaboradores (por exemplo, usuário único / editor). A maioria dos arquivos de origem é gravada usando o editor vi. Eu gostaria de ter versão de documento / fonte disponível em ambos os computadores.

Existe uma estrutura de versão específica (centralizada vs. distribuída) melhor para as necessidades de um único usuário e de vários computadores? Por exemplo, eu poderia configurar um computador como um servidor e o outro como um cliente ou, alternativamente, tratar ambos como pares.

Além disso, quero poder sincronizar facilmente os dois computadores, e não sei se rsync seria melhor para isso, ou se essa função é melhor executada pelo sistema de controle de revisão?

    
por user001 07.01.2012 / 23:24

3 respostas

5

Aviso: minha sugestão pressupõe que você tenha conectividade com a Internet em casa e no trabalho.

Eu tenho quase a mesma situação. Eu gerencio meu código-fonte e documentos usando git em uma conta gratuita do UbuntuOne. Sempre que preciso alterar / adicionar algo, apenas clone do repositório necessário (por exemplo, "projeto X docs") e faço o trabalho localmente em computadores de trabalho ou domésticos ou em ambos e, em seguida, faço as alterações. Em algumas ocasiões, até compartilhei um ou dois repos com colegas para ver / editar os arquivos. git não me decepcionou até agora com suas excelentes instalações de mesclagem.

HTH

    
por 07.01.2012 / 23:55
2

O sistema de sincronização e o sistema de controle de revisão são duas coisas diferentes que abordam diferentes necessidades.

Como programador, você quer ter controle de versão sobre seu código. Se você não precisar sincronizar mais nada, não se preocupe com a sincronização, pois obviamente não fornecerá controle de versão (que pode ser usado para sincronização). Nesse caso, você pode simplesmente ir para o controle de versão. E se você precisar sincronizar outras coisas também, você vai querer o controle de versão de qualquer maneira. Por isso, sugiro veementemente que você configure primeiro alguns códigos de versão e depois pense na sincronização. Código sem controle de versão é ... completamente errado.

Agora, se você usar o controle de versão centralizado, terá que escolher um servidor. Então, você terá que fazer backup desse servidor, porque você só terá a versão atual do código no outro computador. É por isso que eu sugiro que você procure por um controle de versão distribuído. Git ou Hg (Mercurial) serve. Dessa forma, você tem o histórico completo da versão do código em ambos computadores. Se um morre, você não perde nada (pelo menos do código!).

MAS, se você quiser sincronizar ANYWAY, usar um sistema de controle de versão centralizado não é tão ruim, já que você pode simplesmente sincronizar seus arquivos com o outro computador. Dessa forma, você tem um backup centralizado + automático. Ainda distribuído terá mais flexibilidade quando você mudar de idéia.

É a sua chamada. Minha sugestão é um sistema distribuído (Git ou Hg ... eles são bem parecidos, e eles têm sistemas de hashing que tornam suas bases de código mais difíceis de serem corrompidos), e então ver o que você faz com a sincronização se você realmente precisar dela.

    
por 08.01.2012 / 08:19
1

I think the question in this post is unique.

Não, na verdade, um usuário e um local | muitos locais muitos usuários ou qualquer situação intermediária não faz Uma grande mudança em SCMs utilizáveis

  • Se os dois locais de trabalho forem conectados à Internet e sempre acessíveis, você pode selecionar qualquer * VCS (até mesmo CVCS) e atualizar a partir do repo a qualquer momento (para DVCS - puxar do repo usado para anterior) sem mediador 3
  • Se os hosts nem sempre estiverem on-line, use (novamente) qualquer SCM e armazene o trabalho em qualquer hospedagem SCM, com suporte selecionado pelo seu SCM
  • Se o host estiver off-line, você pode chamar "Omnia mea mecum porto" e ter, por exemplo, Fossil SCM (portátil, único exe, multiplataforma) e repositório em flash-drive
por 08.01.2012 / 00:27