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
next 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.