Mire is jó a "Merge a range of revisions"? Egy ideális világban erre nincs szükség, mert miután egyesítettük a két ágat a "régit" senki nem módosítja. De a valóságban általában ha egyesítünk két ágat előfordulhat, hogy valami miatt mégis módosítani kell az elvileg már lezárt ágban is. Mondjuk "túl hamar" mergeltünk és a tesztelés még elhúzódik, de ASAP ki kell rakni a régi verzióból egy javítást, stb. Az utólagos módosítások befrissítésre jó a "revíziók intervallumának egyesítése" módszer:

 

   

Tehát:

From: melyik ágat szeretnénk befrissíteni (Figyelem: a "from"-ot itt tényleg értelmeszerűen kell használni)

Revision range to merge: az utolsó merge-től számított 1. és utolsó revision


 

Egyszerű feladatnak tűnik két ág összemergelése egy verziókövető rendszerben (néhány speciális eset kivételével). Megadjuk a két ág elérési útját és a "next" után már "csak" a keletkező conflict-okat kell feloldani, majd egy commit.

 

Ehhez képest svn-ben van egy kis csavar a dologban. Ott a merge céljának branch utáni első revision-ját is meg kell adni a helyes merge-hez. Nem találtam okát, hogy miért, de ez van :(.

 

A másik dolog ami miatt nagyon könnyen el lehet rontani a merge-t ,ha valaki tortoisesvn-t használ, a megjelenő merge ablak from és to mezőinek értelmezése. Kiválasztjuk annak a working copy-nak a könyvtárát amibe ("to") mergelni szeretnék a másik ágat ("from"). Majd a megjelenő subversion ablakba szépen be is írjuk a to-hoz a working copy repo path-t és a from-hoz a másik ág repo path-át és csodálkozunk, hogy a merge nem azt csinálja amit szeretnénk. Nos, ez esetben ezt a két path-t is meg kell cserélni. 

  

 

 

 Tehát:

From:  working copy repo path

Revision:  a working copy első revision-ja a branch után (ha a branch-be mergelünk, akkor a branch létrehozásának revision-ja)

 

To : branch/trunk repo path

Revision: HEAD Revision