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:
- merge
- Tenere Fonte
- 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:
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.
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
Vedi anche: http://stackoverflow.com/q/6190739/736079 – jessehouwing