summaryrefslogtreecommitdiff
path: root/git-rebase.sh
diff options
context:
space:
mode:
authorLibravatar Thomas Rast <trast@student.ethz.ch>2010-03-12 18:04:29 +0100
committerLibravatar Junio C Hamano <gitster@pobox.com>2010-03-12 21:55:39 -0800
commit96e19488f1e8f3964f5f329248852864b4ee4541 (patch)
tree9f5b3f875f308d7e30bf2c3ac56a12519b8ed125 /git-rebase.sh
parentcommit --amend: invoke post-rewrite hook (diff)
downloadtgif-96e19488f1e8f3964f5f329248852864b4ee4541.tar.xz
rebase: invoke post-rewrite hook
We have to deal with two separate code paths: a normal rebase, which actually goes through git-am; and rebase {-m|-s}. The only small issue with both is that they need to remember the original sha1 across a possible conflict resolution. rebase -m already puts this information in $dotest/current, and we just introduce a similar file for git-am. Note that in git-am, the hook really only runs when coming from git-rebase: the code path that sets the $dotest/original-commit file is guarded by a test for $dotest/rebasing. Signed-off-by: Thomas Rast <trast@student.ethz.ch> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'git-rebase.sh')
-rwxr-xr-xgit-rebase.sh5
1 files changed, 5 insertions, 0 deletions
diff --git a/git-rebase.sh b/git-rebase.sh
index eddc02875f..417a1a95cd 100755
--- a/git-rebase.sh
+++ b/git-rebase.sh
@@ -79,6 +79,7 @@ continue_merge () {
then
printf "Committed: %0${prec}d " $msgnum
fi
+ echo "$cmt $(git rev-parse HEAD^0)" >> "$dotest/rewritten"
else
if test -z "$GIT_QUIET"
then
@@ -153,6 +154,10 @@ move_to_original_branch () {
finish_rb_merge () {
move_to_original_branch
+ if test -x "$GIT_DIR"/hooks/post-rewrite &&
+ test -s "$dotest"/rewritten; then
+ "$GIT_DIR"/hooks/post-rewrite rebase < "$dotest"/rewritten
+ fi
rm -r "$dotest"
say All done.
}