Una delle funzionalità poco conosciute del Version Control System di Team Foundation Server è la Baseless Merge.

Si tratta di una merge fatta fra rami ‘paralleli’, ossia non direttamente branchati l’uno dall’altro (due rami di release ad esempio).

Tecnicamente l’operazione corretta per effettuare una cosa del genere sarebbe di effettuare Reverse Integration sulla branch padre, e dopodichè propagare il tutto verso l’altra branch. Ma a volte è necessario non farlo e quindi passare per una Baseless Merge..

Questa è un’operazione che porta con se alcuni rischi: I Ranger sconsigliano questa operazione a meno che non sia evitabile, visto che le cancellazioni non sono replicate, e soprattutto non esiste alcuna forma di aiuto per i conflitti, che quindi vanno risolti manualmente.

Fino alla versione 2010, la Baseless Merge era presente ma non integrata in Visual Studio: per eseguirla, era necessario utilizzare tf.exe con gli switch appositi (tf merge /baseless …).

Con Visual Studio 2012 la Baseless Merge è stata integrata all’interno dell’IDE.

Se in questo scenario volessi effettuare una merge fra Feature1 e Feature 2…

image

…potrei farlo in modo molto semplice. Basta richiamare il Wizard di Merging…

image

…che mi avvisa esplicitamente che sto per eseguire una Baseless Merge.

Proprio in virtù del fatto che è una operazione rischiosa, può essere eseguita solo dal Wizard di Merging (o sempre da tf.exe) ma non dallo Hierarchy Viewer.

posted on venerdì 6 luglio 2012 15:26 | Print
Comments have been closed on this topic.