rebase: introduce and use pseudo-ref REBASE_HEAD
The new command `git rebase --show-current-patch` is useful for seeing the commit related to the current rebase state. Some however may find the "git show" command behind it too limiting. You may want to increase context lines, do a diff that ignores whitespaces... For these advanced use cases, the user can execute any command they want with the new pseudo ref REBASE_HEAD. This also helps show where the stopped commit is from, which is hard to see from the previous patch which implements --show-current-patch. Helped-by: Tim Landscheidt <tim@tim-landscheidt.de> Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
66335298a4
commit
fbd7a23237
@ -57,6 +57,7 @@ call_merge () {
|
||||
echo "$msgnum" >"$state_dir/msgnum"
|
||||
cmt="$(cat "$state_dir/cmt.$msgnum")"
|
||||
echo "$cmt" > "$state_dir/current"
|
||||
git update-ref REBASE_HEAD "$cmt"
|
||||
hd=$(git rev-parse --verify HEAD)
|
||||
cmt_name=$(git symbolic-ref HEAD 2> /dev/null || echo HEAD)
|
||||
eval GITHEAD_$cmt='"${cmt_name##refs/heads/}~$(($end - $msgnum))"'
|
||||
@ -138,13 +139,14 @@ skip)
|
||||
return
|
||||
;;
|
||||
show-current-patch)
|
||||
exec git show "$(cat "$state_dir/current")" --
|
||||
exec git show REBASE_HEAD --
|
||||
;;
|
||||
esac
|
||||
|
||||
mkdir -p "$state_dir"
|
||||
echo "$onto_name" > "$state_dir/onto_name"
|
||||
write_basic_state
|
||||
rm -f "$(git rev-parse --git-path REBASE_HEAD)"
|
||||
|
||||
msgnum=0
|
||||
for cmt in $(git rev-list --reverse --no-merges "$revisions")
|
||||
|
Reference in New Issue
Block a user