Pergunta

Eu trabalho em um ambiente de controle de origem mista. Ainda estamos na maior parte em CVS, mas os projetos mais recentes estão em SVN. No entanto, eu estou encontrando dificuldade para obter buy-in para o SVN, porque TortoiseSVN não funciona como TortoiseCVS.

O 3 way merge tem um monte de dissonância cognitiva e enquanto TortoiseCVS parece sempre obter as fusões direita, TortoiseSVN quase sempre exige ajuda manual. Também após a fixação quaisquer conflitos, você tem que marcar manualmente o arquivo como ok.

Alguém tem alguma dica sobre como se TortoiseSVN trabalhando mais como TortoiseCVS?

Editar

Para ser mais claro, eu não quero fazer uma mesclagem de três vias, se possível, eu gostaria de fazer uma mesclagem de duas vias como TortoiseCVS faz. Eu sei que o arquivo resultante é o mesmo em CVS e SVN, por exemplo, um arquivo de projeto Visual Studio tem duas versões diferentes. Isso sempre vai acabar em um conflito no TortoiseSVN e nunca em um conflito no TortoiseCVS.

SVN parece com:

<<<<<<< .mine
     <ApplicationRevision>22</ApplicationRevision>
=======
     <ApplicationRevision>28</ApplicationRevision>
>>>>>>> .r195290

loks CVS como

<<<<<<< SomeFile.cproj
     <ApplicationRevision>22</ApplicationRevision>
=======
     <ApplicationRevision>28</ApplicationRevision>
>>>>>>> 1.121

então eu deveria ser capaz de obter o mesmo tipo de mesclagem. Além disso, TortoiseSVN quase sempre tem conflitos durante a atualização, se duas pessoas trabalham no mesmo arquivo, mesmo que eles estão trabalhando em locais diferentes, TortoiseCVS não tem esse problema. Presumo TortoiseSVN está a ser mais conservadora e forçá-lo a verificar as TortoiseCVS mesclagem está assumindo CVS acertou. Eu queria saber se lá onde algumas opções escondido em algum lugar TortoiseSVN para que seja mais liberal, e também para fazer uma mesclagem de duas vias em vez de uma de três vias.

Oh, e sim, estamos usando Subversion 1.5, que tem pontos de mesclagem (ramos eram basicamente inútil sem este).

Foi útil?

Solução

Dê uma olhada BeyondCompare e Araxis merge . Eles oferecem instruções sobre como integrá-los em TortoiseSVN como merge custom / ferramentas de comparação.

Outras dicas

Conflito marcação não deve ter nada a ver com a própria Tortoise, mas sim CVS vs SVN. É SVN que determina se um arquivo está em conflito, não Tortoise. Eu não posso dizer por que esse é o caso ou o que você pode fazer sobre ele. Provavelmente muito pouco. SVN é provavelmente apenas mais conservador quando se trata de fusões aceitar. Novamente, não é positiva sobre o algoritmo que é usado, mas parece sinalizar um arquivo como em conflito quando as linhas alteradas são suficientemente perto uns dos outros (e as mudanças são diferentes).

Eu acho que o TortoiseMerge é bastante agradável, na verdade, por isso espero que eu possa explicá-lo o melhor que pode e que você pode ver algo que você não sabia antes. Normalmente, tem 2 placas de lado-a-lado, e então um painel inferior. O painel inferior é o resultado da fusão, com os conflitos marcados em vermelho, juntamente com outras peças que já foram incorporadas com sucesso. Nas linhas de conflito, você pode clicar com o botão direito e escolher se quer manter as suas alterações (como visto no painel "Mine"), outras mudanças (como visto no "Deles" painel), ou você pode aceitar uma combinação daqueles .

Por fim, eu posso explicar por que salvar uma mesclagem e marcando-o como resolvido são duas etapas separadas. No SVN, marcando algo tão resolvido permite que seja cometido novamente. É basicamente uma falha de segurança que ajuda a mantê-lo de cometer um arquivo que você se fundiram na ferramenta e salvo, mas ainda não tem edição acabado / testá-lo. Basicamente SVN é distinguir entre salvar algo em uma ferramenta de mesclagem e realmente resolver.

Hope que ajudou.

Apenas um palpite aqui, mas se você estiver usando CVSNT no servidor esta observação pode ser baseada no fato de que CVSNT simplesmente é muito melhor a fusão do que SVN porque tem a noção de "MergePoints". Isso normalmente leva a muito menos conflitos quando fusão de / para o mesmo ramo várias vezes.
Eu não acho que há muito que pode ser feito sobre isso, pelo menos não de uma forma discreta.

EDIT: Eu estou corrigido. A partir de v1.5 SVN também tem MergePoints. Eu apagar esta resposta, mas eu acho que ainda pode ser de alguma utilidade para alguém usando uma versão antiga do SVN.

Se não é isso que você está falando talvez você deve esclarecer sua pergunta um pouco mais. Tem certeza que isso é sobre as diferenças entre TortoiseSVN e TortoiseCVS e não antes entre CVS (NT?) E SVN?

Eu acho que sua pergunta está focada em como melhor suporte a fusão com o Subversion no Windows.

Pode não ser especificamente o que você estava caçando, mas eu uso regularmente Emacs no Windows para facilitar a fusão sob Subversion.

Emacs + SVN no Windows

A combinação de EmacsW32 + cygwin (com SVN ) + psvn emacs pacote + " built-in" emacs ferramentas merge funciona bem sob janelas. você encontrará psvn vem padrão em Emacs hoje em dia, e se ele não está na sua, você pode baixar e instalar easiliy e rapidamente.

Por causa do suporte integrado no conjunto de ferramentas baseado em Emacs, estou cerca de 5x a 10x mais rápida de resolver fusões do que um colega de trabalho típico. Eles parecem conteúdo usando TortoiseSVN + seu outro editor favorito e mete fora dessa maneira ... Eu oferecido várias vezes para instruí-los sobre o uso e poder das capacidades de Emacs (uma vez que é a configuração acima, ele cuida de si mesmo), mas parece que eles preferem manter as suas ferramentas rudimentares e não investir no aumento da sua produtividade.

SVN é uma ferramenta poderosa, e se você é obrigado a usá-lo, assim como você pode considerar passar algum investir tempo em fazer o trabalho para você.

David

Uh, talvez eu esteja faltando o problema. Se TortoiseCVS faz isso "direito" (como sua equipe precisa-lo feito - ou espera que seja feito)? ... então por que você iria querer escolher TortoiseSVN

Não confunda o "propósito" desta tecnologia ... "servir" a equipe de desenvolvimento no processo de desenvolvimento.

(estou usando tanto no momento de experimentar TortoiseSVN .. mas eu não gosto da tag / ramificação metodologia no SVN tanto até agora)

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