20 Mayıs 2013 16:23 tarihinde Levent SARI <lsar...@gmail.com> yazdı:

> Bahadır Bey Merhabalar,
>
Merhabalar,


> Öncelikle yazdığınız açıklamalar için teşekkür ederim.
> Hafta sonu, yazdığınız conflict leri bir kaç defa okuyup Eclipse
> uyarlamaya çalışınca  daha önce anladığımı sandığım kısımlar da karıştı.
> O yüzden kusuruma bakmayın.
> Sorularımı adım adım cevaplayarak gitmemde bana yardımcı olabilirseniz çok
> mutlu olurum.
> Bu bağlamda;
>
> 1-) Eclipse de sıfırdan  TESTA projesi oluşturdum ve bu proje bir takım
> geliştirmeler de bulundum.
> (SVN de şuan hiç bir repository / proje ve  klasör/dizin(trunk, merge,
> brunch) yok)
>
> 2-) Eclipse üzerinde geliştirdiğim bu projeyi SVN e yükledim.
> Projenin SVN e yüklenmesi  kısmına ait detayları şuradan  görebilirsiniz.
> a.http://farm4.staticflickr.com/3748/8757823920_4ffb5601c0_z.jpg
> b.http://farm3.staticflickr.com/2875/8757823882_0556fc7323_z.jpg
> c.http://farm9.staticflickr.com/8407/8756697265_74ee940c6f.jpg
>
> 3-) Benim sorum şu; şimdi burada da gördüğünüz üzere (
> http://farm9.staticflickr.com/8407/8756697265_74ee940c6f.jpg) benim yada
> ofiste diğer bir başka programcıların çalışırken trunk32 altındaki TESTA 32
> içerisinde mi çalışmamız gerekiyor?
>
Trunk üzerinden çalışabilirsiniz. Fakat benim düşüncem eğer çalışmalar
birbirinden bağımsızsa, kendi branch'leri üzerinden devam etmelidir. Daha
sonra bu branchler trunk üzerine merge edilmelidir.

> 4-) Ofiste aynı proje üzerinde çalışan yaklaşık 5 kişiyiz. Ve diyelim şuan
> trunk da çalışarak projeyi stable bir hale geitrdik. (TESTA.1.0 stable
> versiyonu gibi). Şuan için elimizde stabil çalışan kodları brunch a mı
> atmamız gerek? Eğer öyleyse biz trunk içerisinde çalıştığımız için şuan
> trunk daki kodları bruncha nasıl aktaracağız?
>
Eğer stable bir versiyona geçtiyseniz bunu Tag altına koymanız daha
mantıklı. Yani TESTA 1.0 şeklinde bir tag'iniz olabilir. Tüm
realase'leriniz tags altında olursa daha iyi olur.

> 5-) Diyelim Şuan brunch da TESTA1.0 stable kodlar var. Ve  biz yine Trunk
> üzerinden çalışmaya devam ediyoruz. (bu arada Stable kodlar brunc da
> duruyor olacak oraya dokunmaycağız sanırm?) Daha sonra trunk da ki TESTA1.0
> Stable kodlarını da geliştirdik ve artık elimizde TESTA 2.0 stable kodlar
> var. (tabi bunlar şuan trunk da ) şimdi biz trunk ile brunch ı nasıl merge
> edeceğiz?  Brunch daki değişiklikleri brunch la nasıl senkronize edeceğiz?
>
Önceden çıkardığınız bir release yani TESTA 1.0   kodlarını yeni
versiyonunuzla merge etmenize gerek yok.

Netleştirmek gerekirse tüm release'lerinizi tags altında tutmanız mantııklı
olacaktır. Daha sonra bu release'lerinizi başka yerlere merge etmenize
gerek yok.
Branch üzerinde projenize ekleyeceğiniz yeni özellikleri koyabilirsiniz.
Böylelikle trunk'un çalışabilirliğini bozmazsınız.

Bende şöyle bir örnek ile anlatmaya çalışayım ne demek istediğimi.

Örneğin: Bir tane projeniz var. TESTA olsun. Trunk üzrinde bunu
geliştirdiniz.
V1.0 ulaştığınızı düşündüğünüz yerde artık release çıkarmanız gerekiyor.
SVN kısmında bunun karşılığı tags/TESTA-1.0 yaratmak oluyor.

Hemen ardından V20 çalışmalarına başlamak istiyorsunuz.
Bunun için yeni branch yaratıyorsunuz.
v2.0'da çalışacak ekibiniz branches/2.x üzerinde çalışmaya başlıyor.
Buradaki çalışma bititğinde branches/2.x kodunu trunk'a merge etmeniz
gerekecek.

Bir yandan v2.0 çalışması yaparken TESTA v1.0 kullanan bir kullanıcınızın
bug döndüğünü varsayalım.
Bu bug'ı Trunk üzerinden düzeltiyorsunuz. Tekrardan release çıkartıyorsunuz
buda mesela tags/TESTA-1.1 oluyor.
Düzeltilmiş bug şu anda branches/2.x'te bulunmuyor. Bu bugfix'i 2.0
versiyonuna taşımak için trunk'ı branches/2.x 'e merge ediyorsunuz.

Bu şekilde devam ediyor.

Ek olarak isterseniz Apache'inin JEXL kütüphanesinin SVN deposunu
inceleyebilirsiniz. http://svn.apache.org/viewvc/commons/proper/jexl/



> Buradan adım adım gidebilirsek çok mutlu olurum.
> Kolaylıklar...
>
>
>
>
> 17 Mayıs 2013 22:04 tarihinde Bahadır Akın <bhd...@gmail.com> yazdı:
>
> Merhabalar;
>>
>> Çalıştığım projelerde SVN ve Eclipse kullanmama rağmen, Branch-Merge
>> işlemlerini genel olarak konsol üzerinden gerçekleştiriyorum.
>> Yardımı dokunur düşüncesiyle kendi çalışma şeklimi paylaşıyorum.
>> Konsol üzerinden svn kullanırken önerim olabildiğince sunucu adresleri
>> üzerinden çalışmanızdır.
>>
>> Branch alırken *svn cp svn://sunucuadresi/svn/repository/trunk
>> svn://sunucuadresi/svn/repository/branches/cool-new-feature*
>>
>> Buradan sonra iki şekilde devam edebilirsiniz. Ya lokalinizde
>> çalıştığınız trunk projesinin SVN adresini değiştirirsiniz ya da yeni
>> açtığınız branchi checkout edersiniz.
>> Ben genelde checkout ediyorum *svn co
>> svn://sunucuadresi/svn/repository/branches/cool-new-feature*
>> Yanılmıyorsam switch işlemide trunk klasöründeyken *svn swtich
>> svn://sunucuadresi/svn/repository/branches/cool-new-feature* şekilde
>> olur.
>>
>> Yeni branch'i çheckout ettiğinizi var sayarak devam ediyorum, Checkout
>> ettiğiniz branch'i eclipse'e import edip rahatlıkla çalışabilirsiniz.
>>
>> Eğer branch'inizde çalışırken, trunk'ta yapılan bir değişikliği branch'e
>> merge etmek isterseniz, lokalinize çektiğiniz branch,*cool-new-feature*,
>>  klasörüne girip
>> *svn merge svn://sunucuadresi/svn/repository/trunk*
>> komutunu çalıştırmanız gerekmektedir. Bu komut trunk'taki değişikliği
>> alacaktır.
>> Bu conflict'leri daha sonra isterseniz Eclipse üzerinden de
>> çözebilirsiniz. Sonra tabikide commit etmeniz gerekecek.
>>
>> Aynı şekilde branch'te yaptığınız değişikliği trunk'a merge etmek için,
>> lokalinizde bulunan *trunk *klasörüne gelip
>> *svn merge svn://sunucuadresi/svn/repository/branches/cool-new-feature*
>> komutunu çalıştırmanız gerekmektedir. Yine aynı şekilde confict'ler
>> oluşabilir.
>>
>> Tag'leme kısmına gelecek olursak, ben genel olarak tag'lemeyi üçüncü
>> parti araçlar(maven vs.) üzerinden yapıyorum.
>> Ama genel olarak mantık branch ile aynı olacağından
>> *svn cp svn://sunucuadresi/svn/repository/trunk
>> svn://sunucuadresi/svn/repository/tags/trunk-v1.2*
>> komutuyla yapabilirsiniz.
>> .
>> İyi Çalışmalar
>>
>> 17 Mayıs 2013 12:28 tarihinde Levent SARI <lsar...@gmail.com> yazdı:
>>
>>>  Herkese merhabalar,
>>> Java ile Eclipse üzerinde yazdığım bir proje için SVN in,
>>> Trunk-Brunch-Tag ve Merge Islemlerini kullanmaya çalışıyorum. Ancak bu
>>> işlemlerin nasıl yapıldığın bir türlü anlamadım.
>>> Eclipse IDE si ile SVN de brunch oluşturma,
>>> Brunch ile Trunk merge etme,
>>> Trunk daki değişiklikleri brunch ile senkronize etme  başlıklarında
>>> çalışmış arkadaşlar bu işlemleri nasıl yaptıklarına dair tecrübelerini
>>> paylaşa bilirse çok memnun olurum.
>>> Keza ben Eclipse üzerinde yazdığım bir A Projesini önce SVN e commit
>>> ediyorum. Ve daha sonra A Projesini geliştirip elde ettiğim A1.0ALFA Test
>>> sürümünü sanırım  SVN de yarattığım trunk dizinine taşımam gerekiyor. Sonra
>>> Trunk da ki  A1.0ALFA Test sürümünü geliştirmeye devam edip elde ettiğim
>>> A1.0 Kararlı Sürümü ise brunch a mı  atmam gerekiyor. Kaldı ki bu işlem
>>> için birde tag lama kısmı mevcut.
>>> Kolaylıklar Levent "SARI"
>>>
>>> _______________________________________________
>>> Linux-programlama mailing list
>>> Linux-programlama@liste.linux.org.tr
>>> https://liste.linux.org.tr/mailman/listinfo/linux-programlama
>>> Liste kurallari: http://liste.linux.org.tr/kurallar.php
>>>
>>>
>>
>>
>> --
>> Bahadır AKIN
>>
>>
>> _______________________________________________
>> Linux-programlama mailing list
>> Linux-programlama@liste.linux.org.tr
>> https://liste.linux.org.tr/mailman/listinfo/linux-programlama
>> Liste kurallari: http://liste.linux.org.tr/kurallar.php
>>
>>
>
> _______________________________________________
> Linux-programlama mailing list
> Linux-programlama@liste.linux.org.tr
> https://liste.linux.org.tr/mailman/listinfo/linux-programlama
> Liste kurallari: http://liste.linux.org.tr/kurallar.php
>
>


-- 
Bahadır AKIN
_______________________________________________
Linux-programlama mailing list
Linux-programlama@liste.linux.org.tr
https://liste.linux.org.tr/mailman/listinfo/linux-programlama
Liste kurallari: http://liste.linux.org.tr/kurallar.php

Cevap