2012-08-25 15 views
14

vorrei modificare il mio ultimo impegno, ma in esecuzioneCome modificare un changeset "pubblico" in Mercurial

hg commit --amend 

mi dà

abort: cannot amend public changesets 

anche se so che è sicuro di modificare il changeset. Come posso cambiare la fase del mio ultimo commit e/o dire a Mercurial che è sicuro di modificare?

risposta

27

Nel wiki Mercurial, c'è un buon overview of phases.

per convertire la corrente commit da "pubblico" a "progetto" si impegnano al fine di consentire che modifica, utilizzare

hg phase --draft --force . 

(o sostituire . con un'altra revisione, se si desidera modificare un changeset diverso).

+0

Il push upstream genera ancora una cronologia di due commit, e il 'hg log' locale conferma anche due commit - c'è un modo per aggirare questo? Quindi mostra solo il commit modificato? –

+4

No, se hai premuto il changeset, non dovresti modificarlo, ecco perché hg ti impedisce di farlo. (In alcuni casi, sai che è stato solo trasferito a un altro repository privato del tuo, nel qual caso questa risposta è utile.) –

+1

@Daniel Sokolowski, potresti aver rimosso il push del primo commit usando undo/rollback sul repository upstream. Ma devi essere veloce, e fallo prima che gli altri gruppi di cambiamenti vengano spinti. –

Problemi correlati