Qual é a diferença entre “Comparar com a versão do espaço de trabalho” e “Comparar com a versão mais recente”?

90

Estou usando o Visual Studio 2012 com TFS. Sempre que desejo comparar meus arquivos retirados, tenho duas opções para escolher:

  1. Compare com a versão do espaço de trabalho
  2. Compare com a versão mais recente

captura de tela

Qual é a diferença ?

Bilal Fazlani
fonte

Respostas:

77

Comparar com a versão mais recente parece claro. Ele compara os arquivos com a versão mais recente do TFS. Assim, você obterá todas as diferenças entre a versão mais recente registrada no controle de origem e qualquer pasta com a qual está comparando.

Comparar com a versão do espaço de trabalho pode ser confuso, mas na verdade é bem simples. O TFS rastreia a versão do arquivo que você recuperou em seu espaço de trabalho. Geralmente é a versão mais recente, ou quase isso , mas não precisa ser o caso .

Ao usar a Get Specific Versionopção, você pode recuperar qualquer versão de um arquivo em seu espaço de trabalho local. Você pode até mesmo recuperar arquivos de diferentes versões em seu espaço de trabalho. Ao selecionar esta opção, uma comparação será feita com a versão que está atualmente em sua área de trabalho.

Tela de comparação

Jessehouwing
fonte
"Ao selecionar esta opção, será feita uma comparação com a versão que está atualmente em sua área de trabalho." comparação com o quê?
Bilal Fazlani
Com a versão no disco por padrão. Ou qualquer versão que você selecionar como caminho de destino. No final, você é responsável por escolher a versão de origem e de destino para uma comparação.
jessehouwing
2
Com a versão do changeset que você baixou pela última vez para o espaço de trabalho selecionado com o que está atualmente no disco.
jessehouwing
2
Para adicionar mais clareza, obter uma versão do espaço de trabalho pode ser diferente da última ou a mesma coisa que a mais recente. É totalmente dependente do que você puxou de seu repositório
Callat
1
Exemplo: Você está em uma equipe e em 3/5 obtém um arquivo. Você o modifica, mas não faz check-in. Em 5/5, você compara com a última versão e vê que encontra mais diferenças do que o esperado: isso porque outra pessoa fez mais alterações no mesmo arquivo. Mas se você comparar com a versão do espaço de trabalho, você obterá apenas as diferenças entre suas alterações locais e como o arquivo de origem estava QUANDO VOCÊ O RECUPEROU inicialmente. Muito útil para verificar o que APENAS você mudou ...
Roger
79
  • Comparar com a versão do espaço de trabalho, na verdade, compara o arquivo editado com a versão do arquivo no momento do check-out (compara exclusivamente suas alterações).

  • Comparar com a versão mais recente compara o arquivo editado com a versão mais recente do arquivo presente em seu repositório de código, ou seja , pode incluir alterações feitas por seus colegas .

http://codereferences.blogspot.ca/2012/03/tfs-compare-with-workspace-version.html

serio
fonte
1
serhio, você e @jessehouwing estão declarando comportamentos conflitantes para o tipo de comparação de versão do espaço de trabalho. Parece que ele está afirmando que a versão mais recente do arquivo será usada se o próprio espaço de trabalho estiver configurado para usar a versão mais recente. No entanto, o que você diz implica que o arquivo de origem pode não ser necessariamente a versão mais recente, mas a versão do arquivo durante o checkout?
samis
2
Esta é a melhor explicação mais simples. O espaço de trabalho não recupera a versão mais recente do servidor automaticamente. Ele mantém o arquivo mais recente. Digamos que você obtenha o último, edite o arquivo. Enquanto isso, seu co-desenvolvedor fez check-in, depois que você ficou sabendo das novidades. Seu espaço de trabalho não sabe sobre as alterações de check-in do co-desenvolvedor. Neste ponto, o Compare with Workspace & Compare with Latest Version será diferente.
SKCS Kamal
5

A resposta de @ serhio 28/03/14 é uma excelente resposta narrativa. No entanto, tenho certeza de que muitos (incluindo eu) precisam disso com um exemplo, e aqui está:

  1. Para todos, "Última versão" = conjunto de alterações # 1.
  2. Você "Get Latest".
  3. Para você, "Workspace Version" = Changeset # 1.
  4. Você faz mudanças.
  5. Desenvolvedor B "Get Latest".
  6. Para o Desenvolvedor B, "Versão do espaço de trabalho" também = Changeset # 1.
  7. O desenvolvedor B faz alterações.
  8. Desenvolvedor B "Check-in".
  9. Para todos, "Última Versão" = Conjunto de alterações # 2.
  10. Para o Desenvolvedor B, "Workspace Version" = Changeset # 2.
  11. Para você, "Workspace Version" ainda = Changeset # 1.
  12. Você "Get Latest", "Merge Conflicts" (se necessário) e "Check-in".
  13. Para todos, "Última Versão" = Conjunto de alterações # 3.
  14. Para você, "Workspace Version" = Changeset # 3.
  15. Para o Desenvolvedor B, "Versão do espaço de trabalho" ainda = Changeset # 2.
Tom
fonte
0

Para reafirmar a resposta:

O arquivo local é sempre aquele em que você está trabalhando.

O arquivo do servidor pode ser:

  1. A versão mais recente, incluindo todos os outros check-ins. (Você vê suas mudanças, bem como as mudanças de outras pessoas .)

  2. A versão como estava quando você fez o check-out (você vê apenas as alterações, mesmo que outras pessoas tenham feito o check-in desde então).

Se nenhuma outra pessoa fizer o check-in dos arquivos desde seu check-out, os dois itens acima produzirão exatamente o mesmo resultado.

Portanto, se você quiser comparar o que fez com o que era quando começou, selecione Versão do Espaço de Trabalho

Se você quiser comparar o que você fez com o que outras pessoas fizeram, selecione Última Versão

Greg Gum
fonte