Fluxo de trabalho para usar o controle de versão com backup / sincronização automatizado

1

Atualmente, estou trabalhando em vários projetos diferentes. Eu uso o Mercurial para controle de versão (através do BitBucket) e SpiderOak para backup automatizado. Eu trabalho em duas máquinas, um desktop em casa e um laptop quando estou fora e aproximadamente. Eu configurei o SpiderOak para sincronizar automaticamente meus diretórios /home (que contém vários repositórios para meus projetos) entre as duas máquinas.

Atualmente o SpiderOak também sincroniza a subpasta .hg para cada repositório. Mas acho que isso está causando problemas. Acabei de confirmar e empurrei um repositório para o BitBucket da minha área de trabalho. Comecei então a trabalhar no projeto no meu laptop depois que o SpiderOak sincronizou os arquivos, mas sem puxar e atualizar do BitBucket. Então, quando tentei me comprometer e sair do meu laptop, recebi a seguinte mensagem de erro:

abort: push creates new remote head 7f6bf2d3292b!
(you should pull and merge or use push -f to force)

Por outro lado, eu costumava ter o SpiderOak apenas sincronizando as pastas do projeto sem sincronizar as pastas .hg . Isso causou problemas ao usar o Mercurial também. Por exemplo, se eu trabalhasse em um projeto na minha área de trabalho e criasse um novo arquivo, digamos newfile.tex , então seria sincronizado com o laptop via SpiderOak e (na área de trabalho) eu adicionaria ao repositório Mercurial via hg add newfile.tex . Mas como a pasta .hg não estava sincronizada entre as duas máquinas, o repositório no laptop não saberia sobre newfile.tex , mesmo que eu o tenha adicionado ao repositório na área de trabalho. Eu não quero ter que adicionar os arquivos aos repositórios em ambas as máquinas individualmente.

Eu vejo que isso é um pouco rambly, Então a questão se resume ao seguinte:

  1. Devo sincronizar as pastas .hg ou não?
  2. Qual fluxo de trabalho devo usar para garantir que tudo esteja devidamente sincronizado e que o Mercurial não fique bravo comigo?
por MTS 19.03.2013 / 18:43

1 resposta

0

Por que sincronizar seu código-fonte (usando o SpiderOak)? Eu usaria apenas suas ferramentas de controle de versão (Mercurial) para fazer a sincronização. Se você usar suas ferramentas de controle de versão, ele saberá sobre todas as alterações de arquivos e se comportará corretamente.

    
por 19.03.2013 / 21:12