Qual è la differenza tra "Confronta con la versione dell'area di lavoro" e "Confronta con la versione più recente"?


90

Sto usando Visual Studio 2012 con TFS. Ogni volta che voglio confrontare i miei file estratti, ho due opzioni tra cui scegliere:

  1. Confronta con la versione dell'area di lavoro
  2. Confronta con l'ultima versione

immagine dello schermo

Qual è la differenza ?

Risposte:


77

Il confronto con l'ultima versione sembra chiaro. Confronta i file con l'ultima versione in TFS. Quindi otterrai tutte le differenze tra l'ultima versione archiviata nel controllo del codice sorgente e la cartella con cui stai confrontando.

Il confronto con la versione Workspace potrebbe creare confusione, ma in realtà è piuttosto semplice. TFS tiene traccia della versione del file che hai recuperato nell'area di lavoro. Di solito questa è l'ultima versione, o abbastanza simile a quella , ma non deve essere così .

Quando si utilizza l' Get Specific Versionopzione è possibile recuperare qualsiasi versione di un file nell'area di lavoro locale. Puoi persino recuperare file da versioni diverse nel tuo spazio di lavoro. Quando selezioni questa opzione, verrà effettuato un confronto con la versione attualmente presente nel tuo spazio di lavoro.

Schermata di confronto


"Quando selezioni questa opzione, verrà effettuato un confronto con la versione attualmente presente nel tuo spazio di lavoro." confronto con cosa?
Bilal Fazlani

Con la versione su disco per impostazione predefinita. Oppure Qualunque sia la versione selezionata come percorso di destinazione. Alla fine sei responsabile in ultima analisi di scegliere l'origine e la versione di destinazione per un confronto.
jessehouwing

2
Con la versione del changeset che hai scaricato l'ultima volta nell'area di lavoro selezionata con ciò che è attualmente sul disco.
jessehouwing

2
Per aggiungere ulteriore chiarezza, ottenere una versione dell'area di lavoro può essere diversa dall'ultima o uguale all'ultima. Dipende interamente da ciò che hai estratto dal tuo repository
Callat

1
Esempio: sei in una squadra e il 3/5 ottieni un file. Lo modifichi ma non fai il check-in. Il 5/5 confronti con l'ultima versione e vedi che trovi più differenze del previsto: questo perché qualcun altro ha apportato più modifiche allo stesso file. Ma se si confronta con la versione Workspace, si ottengono solo le differenze tra le modifiche locali e il modo in cui il file di origine era QUANDO L'hai RECUPERATO inizialmente. Molto utile per controllare SOLO cosa avevi cambiato ...
Roger

79
  • Il confronto con la versione dell'area di lavoro confronta effettivamente il file modificato con la versione del file al momento del check-out (confronta esclusivamente le modifiche).

  • Il confronto con la versione più recente confronta il file modificato con la versione più recente del file presente nel tuo repository di codice, ad esempio potrebbe includere modifiche apportate dai tuoi colleghi .

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


1
serhio, tu e @jessehouwing state dichiarando comportamenti contrastanti per il tipo di confronto della versione dell'area di lavoro. Sembra che stia affermando che verrà utilizzata l'ultima versione del file se l'area di lavoro stessa è configurata per utilizzare la versione più recente. Tuttavia quello che dici implica che il file sorgente potrebbe non essere necessariamente l'ultima versione, ma la versione del file durante il checkout?
samis

2
Questa è la migliore spiegazione più semplice. L'area di lavoro non recupera automaticamente l'ultima versione dal server. Mantiene il file che hai ricevuto più tardi. Quindi supponiamo che tu abbia l'ultima, modifica il file. Nel frattempo, il tuo co-sviluppatore ha fatto il check-in, dopo che hai ricevuto l'ultima. Il tuo spazio di lavoro non è a conoscenza delle modifiche registrate dal tuo co-sviluppatore. A questo punto, Confronta con l'area di lavoro e Confronta con l'ultima versione sarà diverso.
SKCS Kamal

5

La risposta di @ serhio 28/03/14 è un'ottima risposta narrativa. Tuttavia, sono sicuro che molti (me compreso) ne hanno bisogno con un esempio, ed eccolo qui:

  1. Per tutti, "Lastest Version" = Changeset # 1.
  2. You "Get Latest".
  3. Per te, "Versione area di lavoro" = Changeset # 1.
  4. Tu apporti modifiche.
  5. Sviluppatore B "Get Latest".
  6. Per lo sviluppatore B, anche "Versione area di lavoro" = Changeset # 1.
  7. Lo sviluppatore B apporta modifiche.
  8. Sviluppatore B "Check-in".
  9. Per tutti, "Lastest Version" = Changeset # 2.
  10. Per lo sviluppatore B, "Versione area di lavoro" = Changeset # 2.
  11. Per te, "Versione area di lavoro" ancora = Changeset # 1.
  12. Si "Get Latest", "Merge Conflicts" (se necessario) e "Check-in".
  13. Per tutti, "Lastest Version" = Changeset # 3.
  14. Per te, "Versione area di lavoro" = Changeset # 3.
  15. Per lo sviluppatore B, "Versione area di lavoro" ancora = Changeset # 2.

0

Per ribadire la risposta:

Il file locale è sempre quello su cui stai lavorando.

Il file del server può essere:

  1. L'ultima versione che include tutti gli altri check-in. (Vedi le tue modifiche, così come le modifiche di altre persone .)

  2. La versione com'era quando l'hai ritirata (vedi solo le tue modifiche, anche se altre persone hanno fatto il check-in da allora).

Se nessun altro ha archiviato i file dopo il checkout, entrambi i risultati precedenti producono esattamente lo stesso risultato.

Quindi, se vuoi confrontare quello che hai fatto con quello che era quando hai iniziato, seleziona Versione area di lavoro

Se desideri confrontare ciò che hai fatto con ciò che hanno fatto altre persone, seleziona Ultima versione

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.