Mesclar alterações de código sem controle de origem real

Temos alguns desenvolvedores trabalhando na mesma solução VS2005, mas nosso controle de origem é muito ruim. (Nossa empresa usa a Harvest, que nós damos um voto de desconfiança).

No momento, estamos todos trabalhando apenas com os arquivos em uma unidade de lan compartilhada. Obviamente, isso causa alguns problemas. Mas achamos que é melhor do que trabalhar localmente e rastrear os arquivos que tocamos em uma planilha e mesclar tudo manualmente. Alguém tem uma estratégia para mesclar nossas mudanças?

Alguns dos problemas existem por causa da burocracia corporativa (como a obrigatoriedade da colheita). Essas mesmas políticas impedem a introdução de novas ferramentas em nosso ambiente. Então, estratégias que evitam comprar/baixar novos softwares funcionariam melhor para nós.

5
Para uma discussão sobre o Harvest, consulte stackoverflow .com/questions/26176/& hellip;
adicionado o autor Kristopher Johnson, fonte

9 Respostas

Outra possibilidade seria Além da comparação com a Scooter . Ele tem dois e três vias de mesclagem e grande funcionalidade diff em arquivos e diretórios. Se você quiser saber um pouco mais sobre isso, ouça o delphi podcast Jim McKeith .

Mas, como a maioria dos outros, eu recomendaria usar o Git ou aprender o Harvest. Se o sistema de controle de origem permitir alterar sua aplicação diff, o Beyond Compare seria um excelente substituto.

6
adicionado

Aprenda a usar o Harvest. É preciso um pouco de esforço para fazer as coisas correrem bem, mas no geral é um excelente sistema de controle de origem.

6
adicionado
Eu não entendo como alguém poderia chamar Harvest de "excelente", mas se é a melhor ferramenta que você tem, então é a melhor ferramenta que você tem.
adicionado o autor Kristopher Johnson, fonte
Eu tenho que mudar para uma escala logarítmica para poder comparar o meu nível de profanidade entre o Harvest e outras ferramentas.
adicionado o autor Lieven Keersmaekers, fonte
Eu concordo com isso. Um sistema de controle de origem ruim é melhor do que nenhum controle de origem.
adicionado o autor Kena, fonte
Sim, analisamos todos os principais pacotes: Serena, ClearCase, Team Foundation e muitos pacotes menores. Em termos de usabilidade geral, a Harvest foi tão boa ou melhor do que tudo que vimos. Parece que muitos dos pacotes que olhamos pareciam muito legais à primeira vista, mas quando chegaram a funcionar de fato em um ambiente de produção, eles se perderam. A colheita, mesmo que tenha seus próprios problemas, realmente funciona.
adicionado o autor user8035, fonte

Trate o compartilhamento como se fosse seu sistema de controle de origem. Torne o compartilhamento somente leitura, o que forçará os desenvolvedores a obter cópias locais para fazer alterações. Você então tem uma versão relativamente estável para comparar. Isso ajudaria a facilitar a possibilidade de "mesclar". O código "Verificação" deve consistir em algum tipo de estratégia de backup para o arquivo (possivelmente fazendo uma cópia do arquivo com um registro de data e hora e nome de usuário como parte do novo nome do arquivo) e substituindo o original pela nova versão.

Dito isto, fazer esse tipo de atividade sem um sistema de controle de fonte real que seja confiável será difícil e passível de erros.

5
adicionado

Get git e instalá-lo localmente na máquina de cada dev. Em seguida, defina os repositórios para replicar.

4
adicionado
Se o git não estiver instalado no servidor e apenas em cada máquina dev, como eles saberão? não é como você precisa de direitos de administrador para que ele funcione
adicionado o autor Orion Edwards, fonte
Instale-o nos pen drives e coloque-os no seu bolso sempre que o chefe aparecer.
adicionado o autor BCS, fonte
Sua burocracia corporativa permite que os funcionários saiam ou ele é algum tipo de empregado contratado? Se eles não conseguirem acertar o controle do código-fonte, quais são as chances de que eles respeitem seus desenvolvedores?
adicionado o autor Matt Cruikshank, fonte
Ele já afirmou que sua burocracia corporativa não permitirá a introdução de novas ferramentas. Jim está procurando processos e práticas mais que tecnologias.
adicionado o autor Raelshark, fonte

Existem dois problemas distintos: controle de versão e mesclagem. Não há absolutamente nenhuma desculpa para não usar um sistema de controle de versão. Se a empresa decidiu por uma solução (por qualquer motivo), use-a. Não gostar ou não "ter confiança" não é uma razão válida para não usá-lo. E usar uma unidade compartilhada para imitar um sistema de controle de código-fonte está além da loucura.

A fusão é um segundo problema. Você simplesmente precisa de uma ferramenta diff/merge. Escolha um. Como você passou tanto tempo sem um ?!

Araxis é ótimo. Custa alguns dólares. O pessoal do SourceGear tem distribuído livremente sua ferramenta diff/merge por algum tempo (aquele que vem com o Vault). É também um candidato sólido. Esses são dois que usei e sei que ainda estão no mercado agora. Há outros que alguns já mencionaram.

Mesclar tudo à mão não é uma solução sustentável. Combinar isso com não usando um VCS é uma receita para o desastre.

3
adicionado

Existe uma ferramenta de linha de comando unix padrão chamada merge que mesclará de maneira razoavelmente inteligente dois conjuntos de alterações em um arquivo. A sintaxe é:

merge mine older yours

Onde "meu" é o arquivo com suas alterações, "mais antigo" é o arquivo original e "seu" contém as alterações de outra pessoa.

Não tenho certeza se você tem uma caixa UNIX (ou Mac OS X) em torno de mentir para fazer isso no entanto.

2
adicionado
Na verdade, não há mesclagem, mas acho que você está se referindo ao comando "diff3 -m". Consulte gnu.org/software/diffutils/manual/html_node/diff3 -Mergando.html
adicionado o autor Bruno De Fraine, fonte

Isso pode não ser uma opção viável, mas talvez você possa usar um sistema distribuído como o bazar , git , ou Mercurial .

A razão pela qual eu sugiro isso é que eles são muito baixos e podem ser usados ​​com outros sistemas. Eu sei que com o bazar o repositório é simplesmente uma pasta oculta adicionada ao diretório.

2
adicionado

Você provavelmente vai ter que baixar alguma coisa a menos que você queira fazer isso manualmente. Eu recomendo altamente Winmerge . É gratuito, de código aberto e provavelmente melhor para você um pequeno download que não atrapalhe as coisas.

2
adicionado

Trabalhar fora de uma unidade compartilhada não é uma boa ideia e obtém meu voto de "não confiança".

Seria muito fácil sobrescrever as alterações de outras pessoas, você não tem controle de alterações, nenhuma maneira de ramificar ou marcar/rotular etc.

1
adicionado