Re: Mercurial vs Updated git HOWTO for kernel hackers
From: Petr Baudis <hidden>
Date: 2005-06-28 15:02:41
Also in:
lkml
Dear diary, on Fri, Jun 24, 2005 at 02:38:19PM CEST, I got a letter where Christopher Li [off-list ref] told me that...
On Fri, Jun 24, 2005 at 08:41:01AM +0200, Petr Baudis wrote:quoted
quoted
5.1) undo the last commit or pull $ hg undo$ cg-admin-uncommit Note that you should never do this if you already pushed the changes out, or someone might get them. (That holds for regular Git too.) See $ cg-help cg-admin-uncommit # (or cg-admin-uncommit --help) for details. (That's another Cogito's cool feature. Handy docs! ;-)Does it still works if the last commit was interrupted or due to error for some reason?
If the last commit was interrupted, it didn't happen, so your tree stays in the same state as before doing the commit, as well as the repository. You can just try again. If you want to get rid of dirty stuff, cg-cancel.
Undo pull is pretty cool because you might pull a lot of commit in one blow. Get rid of commit one by one is going to be painful. Some times the object you pull has more than one chain of history it will be very nasty if you want to clean it up.
If it was a tree merge, cg-admin-uncommit will undo it. If it was fast-forward merge, there is no direct way to uncommit it, but you can find the first fast-forwarded commit and pass it as argument to cg-admin-uncommit; it will then rewind all the commits up to (including) the given commit.
Mercurial's undo is taking a snapshot of all the changed file's repo file length at every commit or pull. It just truncate the file to original size and undo is done.
"Trunactes"? That sounds very wrong... you mean replace with old version? Anyway, what if the file has same length? It just doesn't make much sense to me. -- Petr "Pasky" Baudis Stuff: http://pasky.or.cz/ <Espy> be careful, some twit might quote you out of context..