2013-08-06 12 views
5

Mi sono recentemente spostato da Mecurial a TFS 2012 per occuparmi del controllo del codice sorgente. Finora mi piace davvero, ma sono solo bloccato su un aspetto, quindi speravo che qualcuno qui potesse aiutarmi.TFS 2012 verifica se un ramo è stato unito

Diciamo che ho un ramo chiamato "Principale", e quindi mi dirigo da questo, chiamandolo "Caratteristica 1". Posso lavorare sulle modifiche in "Feature 1" e quindi a questo punto Mecurial disegnerebbe una biforcazione sulla strada.

Se quindi unisco la mia "Caratteristica 1" in "Principale", Mecurial dovrebbe quindi ricollegare visivamente la forcella. Potrei quindi apportare ulteriori modifiche alla "Caratteristica 1" che causerebbe un'altra divisione, e ancora una volta, Mecurial mi darebbe una rappresentazione visiva di questo.

Ho provato lo stesso in TFS e anche se l'effettiva ramificazione e unione è molto semplice, è difficile stabilire se le ultime modifiche all'interno di "Caratteristica 1" sono state unite in "Principale", o se ci sono sono cambiamenti eccezionali da unire.

La funzione "Track Changeset" si avvicina e mi consente di sapere che "Feature 1" è stata unita a "Main" a un certo punto, ma non viene visualizzata se "Feature 1" è stata modificata dall'ultima fondersi.

Fondamentalmente quello che sto chiedendo in poche parole è, "Come posso sapere se un ramo ha delle modifiche dall'ultima volta che è stato unito al genitore?"

Forse sono solo bloccato nei modi in cui Mecurial era solito fare le cose, ma apprezzerei davvero qualche aiuto o guida con il problema precedente.

risposta

3

Aggiornamento:

Non v'è alcun indicatore visivo per questo in TFS, ma il comando "tf.exe Unisce" è il più vicino che si può arrivare a tale caratteristica. TF.exe Merges + Track Changeset + Visualizza cronologia ti aiuterà a raggiungere questo obiettivo.

Formato: tf unioni [origine] destinazione [/ ricorsiva] [/ esteso] [/ formato: (breve | deltailed)] [/ login: username, [password]] [/ showall]]] [/ collezione : TeamProjectCollectionUrl]

Aprire il prompt dei comandi di Visual Studio e digitare tf.exe unione /? per ulteriori dettagli.

Esempio:

tf.exe Unisce/recursive C: \ projects \ Main C: \ progetti \ Dev

Changeset Merged in Changeset Author  Date 
> -------------------------------------------------------- 
135   162     user1  4/13/2013 

146   162     User2  5/16/2013 

147  167     User1  6/18/2013 

Quando si esegue questo, si otterrà l'ultimo insieme di modifiche che è stata fusa da un ramo MAIN al ramo DEV. Notare l'ultimo numero di changeset che è stato unito (147 in questo caso). Puoi tornare al ramo Principale -> visualizzare la cronologia e verificare se ci sono nuovi changeset aggiunti dopo il 147 in Main. In tal caso, dovrai fare unisci, altrimenti no.

Ha senso?

anche un'altra cosa, vorrei suggerire è quello di forzare gli sviluppatori che fanno l'unione di utilizzare un formato specifico per i commenti di check-in durante l'unione, per esempio

"******MERGE****** Source branch name, the last changeset etc". 

Ciò contribuirebbe anche, ma non contare su di esso in quanto le persone potrebbero non farlo o commettere errori.

MSDN LINK

+0

Grazie per la tua risposta - Non riesco ancora a vedere come posso essere sicuro che non siano state apportate modifiche da un'unione. Potresti spiegare come posso verificare un po 'più in dettaglio usando il mio esempio sopra? Grazie –

+0

Ho aggiornato la risposta, controllala. – Isaiah4110

+0

Molto apprezzato, grazie. –

0

Per quanto ne so, non c'è alcun indicatore visivo facile da mostrare (anche se sarebbe fantastico se ci fosse). Credo che "Track Changeset" o solo un bruto confronto siano le tue uniche opzioni.

+0

Questo è un vero peccato. Per quanto posso vedere, è l'unico vero svantaggio di TFS. –

Problemi correlati