All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Shawn O. Pearce" <spearce@spearce.org>
To: Junio C Hamano <junkio@cox.net>
Cc: git@vger.kernel.org
Subject: [PATCH 1/2] Teach git-reset to let others override its reflog entry.
Date: Wed, 27 Dec 2006 20:43:36 -0500	[thread overview]
Message-ID: <20061228014336.GA16790@spearce.org> (raw)

When git-rebase invokes `git reset --hard` to rewind the user's
branch prior to starting to reapply each commit this is showing
up in the reflog as a simple `git reset --hard <cmt>` but its not
clear to the end-user inspecting the log why there is a reset.

The new --reflog-action for git-reset behaves like the same option
to git-merge; it can be used by the caller to override the message
entry in the reflog and is intended to be used only when git-reset
is acting as plumbing, not porcelain.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
---
 Documentation/git-reset.txt |    5 +++++
 git-rebase.sh               |    4 ++--
 git-reset.sh                |    8 ++++++--
 3 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/Documentation/git-reset.txt b/Documentation/git-reset.txt
index 4f42478..7eaa186 100644
--- a/Documentation/git-reset.txt
+++ b/Documentation/git-reset.txt
@@ -45,6 +45,11 @@ OPTIONS
 	switched to. Any changes to tracked files in the working tree
 	since <commit> are lost.
 
+--reflog-action=<action>::
+	This is used internally when `git-rebase` calls this command
+	to reset the current branch prior to merging the rebased
+	commits onto it.
+
 <commit>::
 	Commit to make the current HEAD.
 
diff --git a/git-rebase.sh b/git-rebase.sh
index ece3142..b99f1e3 100755
--- a/git-rebase.sh
+++ b/git-rebase.sh
@@ -174,7 +174,7 @@ do
 		else
 			die "No rebase in progress?"
 		fi
-		git reset --hard ORIG_HEAD
+		git reset --reflog-action="rebase: abort" --hard ORIG_HEAD
 		exit
 		;;
 	--onto)
@@ -293,7 +293,7 @@ fi
 
 # Rewind the head to "$onto"; this saves our current head in ORIG_HEAD.
 echo "First, rewinding head to replay your work on top of it..."
-git-reset --hard "$onto"
+git-reset --hard --reflog-action="rebase: rewind to $onto_name" "$onto"
 
 # If the $onto is a proper descendant of the tip of the branch, then
 # we just fast forwarded.
diff --git a/git-reset.sh b/git-reset.sh
index 2379db0..7ef6789 100755
--- a/git-reset.sh
+++ b/git-reset.sh
@@ -6,7 +6,7 @@ USAGE='[--mixed | --soft | --hard]  [<commit-ish>] [ [--] <paths>...]'
 SUBDIRECTORY_OK=Yes
 . git-sh-setup
 
-update= reset_type=--mixed
+rloga= update= reset_type=--mixed
 unset rev
 
 while case $# in 0) break ;; esac
@@ -15,6 +15,9 @@ do
 	--mixed | --soft | --hard)
 		reset_type="$1"
 		;;
+	--reflog-action=*)
+		rloga=`expr "z$1" : 'z-[^=]*=\(.*\)'`
+		;;
 	--)
 		break
 		;;
@@ -81,7 +84,8 @@ then
 else
 	rm -f "$GIT_DIR/ORIG_HEAD"
 fi
-git-update-ref -m "reset $reset_type $*" HEAD "$rev"
+test "$rloga" = '' && rloga="reset $reset_type $*"
+git-update-ref -m "$rloga" HEAD "$rev"
 update_ref_status=$?
 
 case "$reset_type" in
-- 
1.4.4.3.gd2e4

             reply	other threads:[~2006-12-28  1:43 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-12-28  1:43 Shawn O. Pearce [this message]
2006-12-28  6:13 ` [PATCH 1/2] Teach git-reset to let others override its reflog entry Junio C Hamano
2006-12-28  6:22   ` Shawn Pearce
2006-12-28 11:52   ` Jakub Narebski

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=20061228014336.GA16790@spearce.org \
    --to=spearce@spearce.org \
    --cc=git@vger.kernel.org \
    --cc=junkio@cox.net \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.