2009-10-02 32 views
8

kaybetti.Şu anda 2 şubesi var

Bir sonraki sürüme başlıyoruz ve current_version üzerinde bir noktadan next_version şubesini oluşturuyoruz. Next_version'da bir miktar gelişme kaydediyoruz ve önümüzdeki aylarda şube, tüm gelişimin yapılacağı ana hedefimiz olacak. current_branch üzerinde gelişme olmadığına göre

, periyodik düşünce next_version rebase (2 haftada bir demek). Bu, her iki şubenin de senkronizasyonunu sağlamak için, tüm geliştiricilerin nihayetinde current_branch değerini düşürüp next_release öğesine taşınacağı anda next_release, tüm current_branch özelliklerinin entegre edilmiş ve test edilmiş olmasını içerecektir.

sorun rebasing edilir. Aslında rebasing, current_branch'ın son işlemlerini next_version'a birleştiriyor. Bu yüzden, eğer next_release'de taahhüt edilen dosyaların geçmişini inceleyecek olursam, tüm göreceğim şey, current_version'ın geçmişi (commits/authors/ek açıklama) değil, birleştirme taahhütleridir.

Bir şey özlüyor muyum?

cevap

20

Hayır hiçbir şey kaçırmadım. Bu, sürüm kontrolü için SVN kullanımıyla ilgili büyük bir sorundur.

Son işimde de tekrar tekrar karşıma çıkmıştı. Birisi current_branch'e (terminolojinize sadık kalmak için) bir şey verdiğinde, birleştirme mesajının elle kopyalanması gerekir, böylece birleştirme işlemi mesajında ​​kullanılabilir. Bu hızla büyük bir acı oldu.

yeni sürüm kontrol yazılımı daha iyi birleştirme yeteneklerine sahip çıktı yüzden

(Git, Mercurial ve Çarşısı akla gelen).


DÜZENLEME: Görünüşe SVN bu konuyu belirlemiştir. SVN 1.5 ve üstü merge-sensitive logs and annotations'u içerir. Birleştirilmiş şubeden gelen taahhüt mesajlarını görmek için svn birleştirme ve svn suçlamasıyla flag --use-merge-history (-g) kullanın.

+4

sizin svn 1.6 özelliği hakkında silinen yorumunu @ThisSuitIsBlackNot "Birleştirme-Duyarlı Günlükleri ve Annotationscomment" benim aradığım budur. Svn log/suçlamayla birlikte flag -use-merge-history (-g) kullanımı işini yapar. Bu özelliği 1,5'de de görüyorum. Cevabınızı güncelleyin ve kabul edeceğim :) – dimba