2011-04-15 16 views
6

Bunun gibi bir iş akışı için,Mercurial ile çoklu kafaları itmek

$hg clone <bitbucket repo> 
... fix, fix ... 
$hg commit -m "good comment!" 

$hg bookmark stable 
...new fix on stable... 
$hg commit -m "new fix on stable bookmark" 

$hg bookmark experimental --> I would like to defer merging until its stable. 
... hack hack more hack .... 
$hg commit -m "more hack on experimental" 
$created new head 

$hg push <bitbucket repo> 
"abort: push creates new remote heads!" 
(did you forget to merge? use push -f to force) 

Çok fazla okudum ki 'ASLA ASLA it -f'yi zorlamak için kullan'.

Ama evet, deneysel kafanın itilmesi gerekiyor, çünkü yeterince istikrarlı bir şekilde birleşmek istemiyorum. Bu yer işaretindeki değişiklikleri makinemde çok uzun süre tutmak istemiyorum (sistem çökerse ne olur?) Ve bu yer işaretini alıp daha sonra deneylere devam etmek istiyorum. Onun bir tür 'merkezi' yaklaşım olsa da. Durumla başa çıkmanın en iyi yolu nedir? Bu iş akışını ele almak için yer imlerini kullanmanın bir yolu var mı? Adlandırılmış şube kullanmak istemiyorum.

Not: Ben sadece 'push -f' kullandım, ancak Bitbucket bu yer işaretlerini hiçbir zaman 'Etiketler' bağlantısında depolar.

+1

Uzak kafaları oluşturma ve yer imlerini iterek aynı değildir - yer imlerinizi göndermek için push push -B bkname h düğmesine basmayı unutmayın ve aynı şekilde el ile çekilmesi gerekir. Geçerli bitbucket (DEC2011) yer imlerini "dalları" olarak destekler güncelleştirme yavaş görünüyor olsa da", :( –

cevap

11

Yaptığınız şey gayet iyi. "push -f kullanmayın", çekti, birden fazla kafaya sahip olan ve bunun ne anlama geldiğini bilmeyen insanlar için tavsiye.

imleri bitbucket üzerinde görünmeyecektir. Değişim kümeleri elbette kafa olarak görünecek, ancak bombalar repoda saklanmayacak. 1.6 ya da daha yeni Mercurial'ın push/pull değişikliklerinde, yer imlerini bant dışı olarak aktarırlar, ancak bitbucket bunun için henüz bir desteğe sahip değildir (bilgime göre).

+2

(DEC2011 itibariyle) bitbucket güncel sürümü onlar tabii ki, uzaktan (' hg itme -B bkname') itilmiş gerekmektedir. imlerini destekler ve bunlar tetiklemek görünmüyor revizyon grafik önbelleğinin "yenilenmesi" ... ancak "dallar" altında görünecek ... sonuçta –

+1

Yer işaretleri hala çekme istekleri için desteklenmiyor. Bkz. https://bitbucket.org/site/master ./sorun/6705/can-create-pull-isteği-den-hg-imi Favorilerden – JonnyJD

+0

çekin istekleri değil süper kullanıcı dostu, ancak desteklenir - https://stackoverflow.com/questions/21726865/how-to- create-pull-Reques t-den-cıva-imi-on-bitbucket –