2014-12-21 13 views
9

Il mio ramo principale ha alcuni file che hanno codici diversi dallo stesso file del ramo di sviluppo. Il ramo di sviluppo è quello che ha la versione corretta di questi file, ma quando sto cercando di unirlo al ramo principale (target); Sto ottenendo un messaggio che diceUnione di ramo di sviluppo su main: non sono state apportate modifiche per unire

Non c'era nessun cambiamento di unire

Come posso risolvere questo problema in modo che il ramo principale ha la versione corretta di tali file?

+0

Vedi anche: http://stackoverflow.com/q/6190739/736079 – jessehouwing

risposta

10

Quando si uniscono i file, TFS non si limita a esaminare le differenze tra i due rami, ma tiene anche conto se si sono ignorate queste modifiche in un precedente tentativo di unione. Quando si uniscono TFS offre 3 opzioni quando ci sono conflitti:

  1. merge
  2. Tenere Fonte
  3. Tenere target

Quando si sceglie Mantieni bersaglio o quando si uniscono e deselezionare certo manualmente modifiche, TFS contrassegnerà queste modifiche come "risolto" e non le offrirà nuovamente quando si tenta di unire in futuro. Questo è chiamato "merge credit".

È inoltre possibile creare questi problemi utilizzando la riga di comando quando si utilizza tf merge /discard che indica a TFS di ignorare le modifiche in quei file/changeset quando si considerano le unioni.

Ci sono due modi per forzare TFS a riconsiderare questi cambiamenti:

  1. Usa forza si fondono. Sulla riga di comando puoi iniziare un'unione in cui TFS ignorerà temporaneamente i suoi record e ti offrirà ogni file diverso per la fusione. Questo può essere molto lavoro, ma una volta fatta la cronologia delle fusioni sarà di nuovo in forma. Per emettere un'unione di forze eseguire tf merge $/Source/Folder/File $/Target/Folder/File /force Ciò causerà quasi certamente un conflitto di unione che è possibile risolvere per ottenere le giuste modifiche nel ramo di destinazione.

  2. Annullare l'unione precedente utilizzando il rollback. Se hai effettuato di recente l'unione in cui i changeset sono stati scartati. Trovalo nella cronologia, fai clic destro sul changeset e scegli Rollback e controlla il codice che è stato annullato. Questo in realtà rimuoverà tutte le modifiche in quel changeset e resetterà i "merge credits". Una volta che questo è stato fatto, puoi ripetere l'unione e farlo correttamente questa volta. Questo può essere fatto anche dalla riga di comando utilizzando tf rollback

+1

ho cercato di far ritirare ma ottengo un messaggio di errore che dice il mio file ha incompatibili modifica in sospeso – aidonsnous

+1

Prima di tutto annullare le modifiche in sospeso (o accantonare le modifiche esistenti) – jessehouwing

+0

Nel caso in cui si ha un momento Jesse - http://stackoverflow.com/questions/33003274/revoking-tfs-merge-credits – RobVious

Problemi correlati