Então, aceitei um trabalho em que a empresa usa SVN (mas passará para o Git em algum momento no futuro). O problema é que eu não conheço SVN. Eu tentei várias consultas do Google e tudo o que posso encontrar são tutoriais em SVN-> Git, blogs "Por que o Git é melhor que SVN" e uma "folha de dicas" específica que fornece (alguns) comandos comparáveis ...
Curto de ler o livro O'Reilly no SVN, quais são o breve (mas não muito breve) instruções para SVN para usuários do Git?
Respostas:
A referência canônica é o Subversion RedBook . Independentemente de suas habilidades anteriores, leia isso de novo e você obterá todas as informações de uso necessárias. Não é difícil ou completamente estranho, a maioria das pessoas diz que o SVN é muito mais fácil de entender do que o git, então você deve ficar bem lendo um pouco os comandos principais. O capítulo de uso básico deve colocá-lo em funcionamento sem problemas.
Existem 2 diferenças principais:
A ramificação é trivial, a fusão não é nem de longe tão ruim quanto os apologistas do DVCS desejam, especialmente se você se ater ao trio "padrão" de pastas de nível superior (chamadas tronco, ramificações e tags).
Existem alguns bits nos quais o SVN supera o git, diretórios esparsos vêm à mente - onde você faz check-out de apenas parte de seu repo. Quando você precisar de mais peças, atualize apenas o que precisa. Se você tem um grande repositório (por exemplo, um produto essencial e vários plugins), isso é brilhante.
Existem alguns bits que não são tão bons quanto o git, o temido conflito de árvores vem à mente - onde você tem um conflito no nível do diretório (ou seja, alguém excluiu um arquivo que você editou)
Se você estiver no Windows, use o TortoiseSVN. É demais.
fonte
git mv
. SVN temsvn move
, mas desde ramificação e mesclagem no SVN é uma espécie de um truque, eu não acredito que ele pode resolver automaticamente conflitos de árvore como git faz ...git mv
é implementado como adicionar + remover. git usa heurística para determinar se um movimento ou cópia ocorreu durante um commit (acho que o padrão é, "é de 80% + do arquivo o mesmo?")Use git svn, se possível. Eu estive na sua situação e após meio ano de frustração, mudei para o git svn e fiquei feliz desde então.
O Git svn permite que você use o repositório localmente e a confirmação para o servidor SVN é então tratada por um
git svn rebase
que refaz as alterações locais no tronco do subversion e, em seguida,git svn dcommit
que efetua o commit refazido.Talvez não seja o ideal para o uso avançado do Subversion, mas como você está usando o git localmente, tudo está bem.
Ao usar o git clone, você não deve clonar a pasta raiz do subversion, mas o diretório de destino diretamente (clonar
trunk
). Isso fará com que o git seja executado muito mais rápido, caso contrário, sua cópia de trabalho pode se tornar enorme.Isenção de responsabilidade : Eu não sei como é a situação quando você deseja criar ramificações do Subversion, etc. As equipes com as quais trabalhei não usavam ramificações (apenas as ramificações locais do git).
fonte