2012-08-25 26 views
14

bir "kamu" changeset değiştirme nasıl son tamamlama benim değiştirmeye gibi amaMercurial

hg commit --amend 

çalışan ediyorum ben düzenlemek için güvenli olduğunu bildiğimiz halde bana

abort: cannot amend public changesets 

verir değişiklikleri. Son taahhüdümün aşamasını nasıl değiştirebilirim ve/veya Mercurial’e, bunu düzeltmenin güvenli olduğunu nasıl söyleyebilirim?

cevap

27

Mercurial wiki'de iyi bir overview of phases var.

, geçerli "taslak" ile "kamu" dan taahhüt tadil, izin vermek için taahhüt dönüştürmek

hg phase --draft --force . 

kullanmak (veya farklı bir changeset düzenlemek istiyorsanız başka revizyon ile . değiştirin).

+0

Yukarı yönde itmek yine de iki taahhüt geçmişiyle sonuçlanır ve yerel 'hg log' iki işlemi de doğrular - bunun etrafında herhangi bir yol var mı? Yani sadece değiştirilmiş taahhüt gösterir? –

+4

Hayır, değişiklik setini zorladıysanız, bunu düzeltmemeniz gerekir; bu yüzden hg bunu yapmanızı engeller. (Bazı durumlarda, bunun sadece bir başka özel repo'una itildiğini biliyorsunuz, bu durumda bu cevap yararlıdır.) –

+1

@Daniel Sokolowski, geri alma/geri alma özelliğini kullanarak ilk işlemin ittiğini kaldırmış olabilirsiniz. yukarı yönlü repo. Fakat hızlı olmanız gerekiyor ve bunu başka bir değişim kümesine itmeden önce yapmalısınız. –