Aşağıda anlatılanlar branch’ten mainline’a merge işlemi ile ilgilidir ve SVN 1.4 için geçerlidir:

Merge işlemine başlamadan önce yazılımcıları commit’e bir süre ara vermeleri için uyarmak iyi olabilir.

1. Öncelikle, lokalinizde bulunan SVN working copy dizinini update edin ve son revizyonun lokalinize kopyalandığından emin olun:

> cd D:\io_project

D:\io_project> svn update

2.  Merge etmek istediğiniz branch’e hangi revizyonda geçmiş olduğunuzu kontrol edin:

  • Bunu TortoiseSVN kullanıyorsanız, “revision graph” arayüzüyle ya da
  • Aşağıdaki komutla bulabilirsiniz:

D:\io_project> svn log -v –stop-on-copy https://svn.örnekserver.com/svn/io_project/branches/io_branch

Bu komutla gelen bilgilerin en sonunda, branch oluşturulduktan sonra ilk modifikasyon yapılan revizyon numarasını (örn. r1275) elde edebilirsiniz. Bu numarayı ya da branch’in ilk oluşturulduğu versiyon numarasını kullanmanız arasında bir fark yoktur. Branch üzerinde ilk çalışma 1275 numaralı revizyonda yapıldığına göre, bu revizyondan sonraki tüm değişiklikleri mainline’a aktarmak istiyorsak HEAD (branch’deki en son revizyon) kullanacağız.

3. Konsolda (run –> cmd) :

> cd D:\io_project

D:\io_project> svn merge -r 1275:HEAD  https://svn.örnekserver.com/svn/io_project/branches/io_branch > log.txt

Bu komut branch’i oluşturduğumuz revizyondan itibaren yapılan tüm değişikliklerin lokalimizdeki working copy’ye aktarılmasını sağlayacaktır.

NOT: Merge işlemi esnasında bir hata olduğunu düşünüyorsanız ve geri almak istiyorsanız commit etmeden aşağıdaki komutu girmeniz yeterli:

D:\io_project> svn revert – -recursive D:\io_project

4. Merge işlemi sürerken sistem çıkan uyumsuzluklar (conflicts) için size bir menü sunacak:

     (p)ostpone, (d)iff, (e)dit, (h)elp for more options

Bu tutarsızlıkları çözerken, dosya üzerinde çalışmış olan arkadaşlara merge bittikten sonra danışmak isterseniz “p“ile erteleyebilir, anında çözmek isterseniz “e” ile düzeltebilirsiniz.

5. Merge işlemi tamamlandığında, log dosyasını, branch’te çalışan yazılımcılara danışarak inceleyin ve uyumsuzlukların tamamını onlara birlikte çözün. Bunun için tortoiseSVN’de “edit conflicts” tool’unu kullanabilirsiniz.

6. Tüm uyumsuzluklar çözüldüğünde, mainline’ı derleyin ve hataları gözlemleyin.

7. Tüm hataları çözüp “success build” elde ettiğinizde, working copy’nizi repository’ye commit edebilirsiniz.

D:\> svn commit -m “merge başarıyla tamamlandı!” D:\io_project

8. İşlemin bittiğine dair yazılımcılar duyuru maili atmayı ve commitleri serbet bırakmayı unutmayın!

Kolay Gelsin:)