AnkhSVN e / ou TortoiseSVN - o que é a maneira recomendada para estruturas de diretórios mudança?

StackOverflow https://stackoverflow.com/questions/1889605

Pergunta

Eu sou um bastante novo usuário de Ankh e Tortoise. Atualmente incrementando em uma suíte de aplicativos VS2008 que terá vários arquivos .exe, mas com um monte de código comum.

Atualmente, estamos compartilhamento de código entre os projetos .exe, colocando arquivos de origem em um "compartilhada" árvore de pastas, e usando "Adicionar como link" em todos os VS2008 projetos que necessidade de compilar esses arquivos. (Nós começamos com VisualSVN, mas mudou para Ankh porque lidava com arquivos vinculados muito melhor.)

O problema que estamos correndo em é que ainda estamos modificando ativamente a estrutura da árvore da pasta Shared -. Adicionando novas pastas, mover arquivos existentes para eles com a evolução do projeto

foram principalmente usando Tortoise para mudar a estrutura de diretórios, mas continuo correndo em problemas - parece ficar fora de sincronia com o repositório. Recebemos mensagens de erro que dizem arquivos estão faltando, ou cerca de conflitos de árvore.

Eu suspeito que o problema talvez que às vezes fazer as coisas na ordem errada - por exemplo, esquecendo de fazer uma atualização antes de se mudar diretórios ao redor e, em seguida, cometer - mas não tenho certeza

.

Então, minhas perguntas:

Qual é a melhor ferramenta para alterar estruturas de diretórios -? Ankh ou Tortoise

Para a ferramenta preferida, quais são os passos que devem ser executados, e em que ordem?

Foi útil?

Solução

Eu encontrar-sistema de arquivos nível reorganização muito mais fácil usando o TortoiseSVN. No entanto, há um problema:

Ao mover arquivos no sistema de arquivos com TortoiseSVN:

  • Botão direito do mouse sobre o arquivo
  • Arraste-o para o seu novo destino
  • Solte o botão direito do mouse
  • Selecione "SVN Move" no menu que é apresentado

Se você acabou de mover arquivos como vontade, sem fazer o acima, TortoiseSVN fica muito confuso e reage como você está descrevendo.

Outras dicas

Não seria mais fácil para compilar todo o código compartilhado para uma DLL e, em seguida, referência que a partir de outros projetos?

O problema é que você está acoplando fortemente a estrutura de diretórios da pasta compartilhada para todos os seus projetos -. Que é obrigado a lhe causar problemas, especialmente se ele muda

Quanto a qual svn cliente para uso - Aconselho usando Tortoise para qualquer mudança que não é puramente dentro de uma única solução VS, e da maneira que você está orginising seu código sugere-me que as mudanças que você está falando de se relacionar com múltiplos soluções. Portanto, use Tortoise.

A chave para se mover facilmente as coisas em Tortoise é usar o recurso de arrastar clique com o botão direito , que faz um movimento svn-aware.

É realmente muito complicado para reorganizar as estruturas de diretórios, e não é nem uma tartaruga nem um problema Ankh, é apenas uma questão Subversion.

O problema é que SVN entende adicionar / remover, mas não "move" ou "Renomear". Então você tem uma pasta com o mesmo metadados .svn escondido dentro dele, mas agora mudou-se para um lugar diferente, e isso confunde SVN.

UPDATE:. solução See do antik, é melhor do que mexer com os metadados à mão

Tortoise !! Eu tive problemas com AnkhSVN + VS2008. Eu costumo fazer um "Update" antes de eu fazer um "Commit"

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top