git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Sam Vilain <sam@vilain.net>
To: Petr Baudis <pasky@suse.cz>
Cc: git@vger.kernel.org
Subject: Re: [PATCH] make cg-commit --review restore original tree state afterwards
Date: Sat, 21 Oct 2006 22:40:37 +1300	[thread overview]
Message-ID: <4539EB15.3050405@vilain.net> (raw)
In-Reply-To: <20061021014723.B8E9C13810D@magnus.utsl.gen.nz>

Ok, I ruined the error message.

This could also do with some enhancement; if you edit hunks of the
patch, then the numbers in the hunks could be updated so as to not make
the patch abort.  Also, if it does abort you should get the option of
undoing everything, or editing the patch again...

Will try again with this another time.

Sam.

Sam Vilain wrote:
> If you delete hunks from the patch that 'cg-commit -p' shows you, then
> they are lost 'forever'.  Let's put back everything how it was
> beforehand instead.
> ---
>  cg-commit |   25 +++++++++++++++++--------
>  1 files changed, 17 insertions(+), 8 deletions(-)
> 
> diff --git a/cg-commit b/cg-commit
> index 01a4eb7..81b3619 100755
> --- a/cg-commit
> +++ b/cg-commit
> @@ -568,18 +568,16 @@ else
>  fi
>  rm "$LOGMSG2"
>  
> +pine_for_darcs() {
> +	die "unable to revert the new patch; the original patch is available in $PATCH, your edited patch is available in $PATCH2, your log message is in $LOGMSG, your working copy is in undefined state now and the world is about to end in ten minutes, have a nice day"
> +}
> +
>  if [ "$review" ]; then
>  	if ! cmp -s "$PATCH" "$PATCH2"; then
>  		echo "Reverting the original patch..."
> -		if ! cg-patch -R < "$PATCH"; then
> -			die "unable to revert the original patch; the original patch is available in $PATCH, your edited patch is available in $PATCH2, your log message is in $LOGMSG, your working copy is in undefined state now and the world is about to end in ten minutes, have a nice day"
> -		fi
> +		cg-patch -R < "$PATCH" || pine_for_darcs
>  		echo "Applying the edited patch..."
> -		if ! cg-patch < "$PATCH2"; then
> -			# FIXME: Do something better to alleviate this situation.
> -			# At least restore the tree to the original state.
> -			die "unable to apply the edited patch; the original patch is available in $PATCH, your edited patch is available in $PATCH2, your log message is in $LOGMSG, your working copy is in undefined state now and the world is about to end in five minutes, have a nice day"
> -		fi
> +		cg-patch < "$PATCH2" || pine_for_darcs
>  	fi
>  fi
>  
> @@ -625,6 +623,17 @@ if [ "$amend" ]; then
>  fi
>  
>  treeid="$(git-write-tree ${missingok})"
> +
> +if [ "$review" ]; then
> +        if ! cmp -s "$PATCH" "$PATCH2"; then
> +                echo "Reverting the new patch..."
> +                cg-patch -R < "$PATCH2" || pine_for_darcs
> +                echo "Applying the old patch..."
> +                cg-patch < "$PATCH" || pine_for_darcs
> +        fi
> +fi
> +
> +
>  [ "$treeid" ] || die "git-write-tree failed"
>  if [ ! "$force" ] && [ ! "$merging" ] && [ "$oldhead" ] &&
>     [ "$treeid" = "$(cg-object-id -t)" ]; then

  reply	other threads:[~2006-10-21  9:41 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-10-21  1:11 [PATCH] make cg-commit --review restore original tree state afterwards Sam Vilain
2006-10-21  9:40 ` Sam Vilain [this message]
2006-10-27  2:02   ` 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=4539EB15.3050405@vilain.net \
    --to=sam@vilain.net \
    --cc=git@vger.kernel.org \
    --cc=pasky@suse.cz \
    /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).