git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Petr Baudis <pasky@ucw.cz>
To: Matt Porter <mporter@kernel.crashing.org>
Cc: git@vger.kernel.org
Subject: Re: [PATCH] cogito: Add cg-undo command
Date: Tue, 3 May 2005 23:32:04 +0200	[thread overview]
Message-ID: <20050503213204.GC15995@pasky.ji.cz> (raw)
In-Reply-To: <20050503100624.A29266@cox.net>

Dear diary, on Tue, May 03, 2005 at 07:06:25PM CEST, I got a letter
where Matt Porter <mporter@kernel.crashing.org> told me that...
> Index: cg-help
> ===================================================================
> --- a1aff2a6748c0c0d08058c7d74503e724abc5d03/cg-help  (mode:100755 sha1:1f5d2d79b67490d44ce0f575ff9a4b80134ea47f)
> +++ 023d9a7929d2f933d8e008f1679f13a58f7b1229/cg-help  (mode:100755 sha1:c7dc8f3e03895374cd0dae544570a37a459c2466)
> @@ -43,6 +43,7 @@
>  	cg-status
>  	cg-tag		TNAME [COMMIT_ID]
>  	cg-tag-ls
> +	cg-undo		[COMMIT_ID]

It doesn't seem very optional now.

>  	cg-update	[BNAME]
>  	cg-version
>  
> Index: cg-undo
> ===================================================================
> --- /dev/null  (tree:a1aff2a6748c0c0d08058c7d74503e724abc5d03)
> +++ 023d9a7929d2f933d8e008f1679f13a58f7b1229/cg-undo  (mode:100755 sha1:7fd6d89158fb5aeee42aa05a93f2c81884d9bd34)
> @@ -0,0 +1,20 @@
> +#!/usr/bin/env bash
> +#
> +# Undo a commit or a series of commits
> +# Copyright (C) Matt Porter, 2005
> +#
> +# Takes a commit ID which is the earliest commit to be
> +# removed from the repository.
> +
> +. cg-Xlib
> +
> +PARENT=`git-cat-file commit $1 | grep parent | cut -f 2 -d " "`

What's wrong with parent-id?

> +echo "Undo from $1 to current HEAD"
> +echo "Reset HEAD to $PARENT"

You talk way too much, I think. I'd just do

	echo "Rewinding $HEAD -> $PARENT" >&2

> +echo "$PARENT" > .git/HEAD
> +git-read-tree -m "$PARENT" || {
> +	echo >&2 "$PARENT: bad commit"
> +	exit 1
> +}
> +git-checkout-cache -f -a
> +git-update-cache --refresh

You really don't want to do this if the tree has any local
modifications.


Please make sure the commit you are rewinding to is an ancestor of your
current HEAD (there should be something like separate cg-branch-rm for
killing enemy branches).

-- 
				Petr "Pasky" Baudis
Stuff: http://pasky.or.cz/
C++: an octopus made by nailing extra legs onto a dog. -- Steve Taylor

  reply	other threads:[~2005-05-03 21:25 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-05-03 17:06 [PATCH] cogito: Add cg-undo command Matt Porter
2005-05-03 21:32 ` Petr Baudis [this message]
2005-05-04  5:40   ` Matt Porter
2005-05-08 20:59     ` Petr Baudis

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20050503213204.GC15995@pasky.ji.cz \
    --to=pasky@ucw.cz \
    --cc=git@vger.kernel.org \
    --cc=mporter@kernel.crashing.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).