IT-Swarm.Net

Mercurial ile nasıl "geçiş yaparım"

Mercurial'da svn switch ne yapar?

Bu çalışma dizinimi depodaki başka bir şubeye geçmek üzere değiştirir mi?

62
Jonas Meyer
hg update -r<REV>

update komutu belirtilen bir revizyona geçecektir.

61
Flavius Stef

Hızlı, güvenilir ve uygun fiyatlı bulut barındırma

Kaydolun ve 30 gün içinde $50 bonus kazanın!

Switch komutu Subversion'da iki şey yapar:

  1. Çalışma kopyasını depodaki yeni bir URL'yi yansıtmak için güncelleyin Bu davranış 'svn update' işlevine benzer ve bunun yoludur. çalışan bir kopyayı aynı depodaki bir dal veya etikete taşıyın.

  2. Yalnızca bir sözdizimsel değişikliği yansıtmak için çalışan kopya URL meta verilerini yeniden yazın . Bu, havuzun kök URL'si değiştiğinde (örneğin şema Veya ana bilgisayar adı değiştiğinde) kullanılır, ancak çalışma kopyanız hala aynı Aynı havuzdaki dizin.

hg update foo komutu, Subversion'da /trunk'dan /branches/foo'ye geçerseniz, eskisine en yakın olanla eşleşir.

İkincisi yapmak istiyorsanız, o zaman .hg/hgrc. Şuna benzeyen bir [paths] bölümü bulacaksınız:

 [yollar] 
 default = http://example.net/something

ve bu varsayılan Push/pull URL'sini uygun olduğunu düşündüğünüz başka bir şeyle değiştirebilirsiniz. Sık sık başka yerlerden basmanız/çekmeniz gerekiyorsa, bu bölüme başka girişler de ekleyebilirsiniz. Bir konumdan çekmek, ancak başka bir yere itmek istiyorsanız, ardından bir default-Push girişi ekleyin.

33
Martin Geisler

Dalları değiştirmek istiyorum, aşağıdakileri yapın:

İlk önce hangi şubelerin uygun olduğunu kontrol edin, hg branches yazın. Bu, mevcut tüm dalları listeleyecektir.

Ardından hangi şube üzerinde çalıştığınızı belirleyin, hg branch yazın. Bu size mevcut şubenizin ne olduğunu söyleyecektir.

Son olarak bir dalı değiştirmek için ( ve tüm yerel değişiklikleri ) silin, hg update -C name-of-branch yazın. Bu, belirttiğiniz dal adına geçecektir.

Tekrar hg branch yazarak doğrulayın.

23
Danmar

Uzak bir şubeye geçmek için 'tip':

hg pull -u <remote_branch>

Yerel şube için (zaten güncel) sadece:

hg update -r <local_branch>
1
Krystian

Alternatif cevap, "şube" derken "ağda keyfi bir yerde yaşayan reponun başka bir klonu" anlamına gelir: yapamazsınız.

Başka bir deyişle, hg.a.com adresindeki bir repo ve bu repo hg.b.com'un bir kopyası verildiğinde, bunun gibi bir komut yoktur.

hg switch hg.b.com .

(orada svn parlance kullanarak, şu anki dizininizin hg.a.com klonunun kökü olduğunu varsayalım).

Bununla birlikte, hg.a.com'u klonlayabilir, yerel olarak o klonu (nispeten ucuz olması gereken) klonlayabilir ve ardından orada yaşanabilecek ek değişiklikleri almak için hg.b.com'dan çekebilirsiniz.

0
Tim Keating