2010-03-13 20 views
11

Depoya kaydetmek istediğim bazı deneme kodları yaptım, ancak ana dalda istemiyorum. Bunu nasıl bir şubeye bağlarsınız? svn branch commit - deneysel işlem

Belki ama dallanma hakkında anlaşıldığı kadarıyla, bu yanlış var, aslında zaten depoda başka bir dizine kod kontrol kopyalamas yapmak bütün. Sanırım ana şubeyi başka bir yere kopyalayabilir ve sonra bu konumu işaret etmek için çalışma kopyası depo yeri işaretçisini değiştirebilir ve sonra deney kodunu işleyebilir. Ama bu biraz uzun soluklu görünüyor. Gerçekten böyle mi yapıyorsun?

cevap

14

SVN dalları hakkında komutları ve daha fazla bilgi bulabilirsiniz. Subversion cp (kopya) işlemi çok ucuz olacak şekilde tasarlanmıştır ve aslında tekrar saklama alanındaki tüm kod bir kopyasını yapmaz

 
svn cp svn://server/repo/trunk svn://server/repo/branches/experiment 
svn switch svn://server/repo/branches/experiment 
svn commit -m "testing stuff" 

: Örneğin. Sadece trunk'dan kopyaladığınız revizyona işaret etmek için işaretçiler ayarlar.

Tüm sistemler bu şekilde çalışmıyor; örneğin Git'de yeni bir şube oluşturabilir ve tek bir komutla ona geçebilirsiniz: git checkout -b experiment. Bir GUI ile

+0

Teknik olarak, kullandığınız şube oluşturmalıdır ToT yerine çalışma kopyanızın revizyonu, hayır? –

2

bir SVN şube yine tüm kodu kopyalamaz, sadece orijinal ifade eder ve yeni kod Diff ekler. Bir dalın bir başka güzel yanı, onu her zaman kaynağında yeniden birleştirip senkronize edebilmenizdir. Şube, SVN Deposu'ndaki etiketler veya gövde gibi başka bir klasördür.

Mevcut değişikliklerinizi yanlışlıkla yazmanız durumunda, şubeleri değiştirmeden önce bir yedekleme oluşturmanızı öneririm.

Sen (en azından Subversion) bunu nasıl gerçekten de bu serbest SVN Book

1

AFAIK en SVN müşteriler (Kaplumbağa, Subclipse, SvnX sizin için büyü yapan bir şube komutu vardır mesela.

Aksi Greg'in cevaba bakınız.

İlgili konular