2010-07-09 11 views

cevap

11

Hayır, korkarım ki sadece Subversion ve Git için iki yönlü köprülerimiz var. SourceGear Vault için bir köprü yazdığını duymamıştım. Bununla birlikte, diğer sistemde'un üzerindeki Mercurial 'u kullanmaya devam edebilirsiniz. Bu, tüm sürüm kontrol sistemleri (VCS'ler) için çalışan genel bir tekniktir. Yapmanız gereken:

Kodun en son sürümünü yabancı sürüm kontrol sisteminizden kontrol edin. Bir Mercurial depo başlat tüm dosyaları eklemek ve bir taahhüt olun:

# checkout foreign VCS 
$ hg init 
$ hg addremove 
$ hg commit 

çalışma kopyası şimdi Mercurial çalışma kopyası yanı yabancı sistemi için bir çalışma kopyası hem de. Mercurial'da geliştirme yapıyor olacak ve periyodik olarak yabancı sisteme aktarılacaksınız ve periyodik olarak yabancı VCS'den Mercurial'e değişiklikler aktaracaksınız.

Biz yabancı sistemin tarihini izlemek için default denilen dalı kullanacak ve adlandırılmış şube biz Mercurial yapmak gelişimini izlemek için hg çağırdı.

Not: Anton, aşağıdaki iki gelişme satırını ayırmak için adlandırılmış dalları kullanırsanız Apps Kasası'nın çok fazla dosya göstereceğini belirtiyor; bu, sizin için bir sorunsa iki klon kullanın.

$ hg branch hg 
$ hg commit -m "Started hg branch" 

Artık birşeyler gelişebilir:

bize hg şube yapalım böyle birlikte çalışmak üzere

# work, work, work... 
$ hg commit -m 'Fixed bug 42' 
# work, hack, work... 
$ hg commit -m 'Customers will love this feature!' 

, default şube hg şube sapmak başlayacak - - Fark, yabancı sisteme henüz ihraç edilmemiş olan değişikliklerdir. Sen default şube güncellemek, aslında değişiklikleri aktarmak için

$ hg diff default:hg 

ile farklılıkları görmek içine hg birleştirme ve yabancı sisteme değişiklik işleyebileceği:

$ hg update default 
$ hg merge hg 
$ hg commit -m 'Merge with hg' 
# get list of renamed files: 
$ hg status --added --copies --change . | grep -A 1 '^ ' 
# commit to foreign VCS 

Daha sonra güncelleyebilirsiniz geri hg dalına ve değişiklikler yabancı VCS başkaları tarafından yapılan Mercurial

$ hg update hg 
# work, work, wok... 

ile çalışan size devam Bunları hg şubenize birleştirmelisiniz. İlk olarak default şubesine güncelleştirin. Bu, çalışma kopyasının yabancı VCS'nin nasıl görüneceğini umduğunu gösterir. Daha sonra çalışma kopyasını güncelleyebilirsiniz - Bu Mercurial sen Mercurial taahhüt değişiklikler görürseniz yapar:

$ hg update default 
# update working copy using foreign VCS 
$ hg addremove --similarity 90 
$ hg commit -m 'Imported changes from foreign VCS' 

hg addremove adım Mercurial yabancı VCS yerini almıştır herhangi yeniden adlandırır alır emin olur.Size uygun bir ayar bulmak için benzerlik parametresini denemeniz gerekir. Planlanan yeniden adlandırmaları görmek için hg status -C kullanın.

Eğer başka Mercurial tabanlı çalışma bunları birleştirmek, böylece şimdi hg dalı haline geri bu değişiklikleri birleştirmek gerekir

:

$ hg update hg 
$ hg merge default 
$ hg commit -m 'Merge with default' 

Böyle çalışmaya devam - her zaman açık yeni yerel gelişmeyi yapma hg şubesi ve yabancı VCS komutlarını kullanmadan önce her zaman default şubesine güncelleyin (güncelleme, taahhüt, vb).

Umarım bu kılavuz size veya başka birine yardımcı olabilir! :-)

+0

Cevabınız için teşekkür ederiz. Sanırım meslektaşlarımı mercurial'i denemeye ikna etmek için başka yollar bulmak zorunda kalacağım (böylece, daha sonra biz de Apps'ı Apps Kasası'nı sevmediğimize ikna edebilirdik). :/ – Paulius

+0

Paulius: Varolan VCS'nizde Mercurial'i nasıl hibrit bir şekilde kullandığınıza dair bir rehber ekledim - umarım yararlı bulursunuz. –

+0

Evet, güzel görünüyor. Beni rahatsız eden bir şey, hg dalında yapacağım tüm isimleri elle takip etmek ve bunları yabancı VCS'ye aktarmak zorunda kalmam. Apps Kasası otomatik olarak yeniden adlandırırsa bile emin değil. Her neyse, rehber iyi görünüyor - Ben deneyeceğim. – Paulius

İlgili konular