rebase: read state outside loop
authorMartin von Zweigbergk <martin.von.zweigbergk@gmail.com>
Sun, 6 Feb 2011 18:43:32 +0000 (13:43 -0500)
committerJunio C Hamano <gitster@pobox.com>
Thu, 10 Feb 2011 22:08:07 +0000 (14:08 -0800)
The 'onto_name' state used in 'git rebase --merge' is currently read
once for each commit that need to be applied. It doesn't change
between each iteration, however, so it should be moved out of the
loop. This also makes the code more readable. Also remove the unused
variable 'end'.

Signed-off-by: Martin von Zweigbergk <martin.von.zweigbergk@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
git-rebase.sh

index 63b56837aa562b78fb7b45dbee7286ee9cd7cc99..70948bcd23c37c66545e3568e50e58f0a35d9da0 100755 (executable)
@@ -62,6 +62,7 @@ read_state () {
        then
                state_dir="$merge_dir"
                prev_head=$(cat "$merge_dir"/prev_head) &&
+               onto_name=$(cat "$merge_dir"/onto_name) &&
                end=$(cat "$merge_dir"/end) &&
                msgnum=$(cat "$merge_dir"/msgnum)
        else
@@ -123,9 +124,8 @@ call_merge () {
        hd=$(git rev-parse --verify HEAD)
        cmt_name=$(git symbolic-ref HEAD 2> /dev/null || echo HEAD)
        msgnum=$(cat "$merge_dir/msgnum")
-       end=$(cat "$merge_dir/end")
        eval GITHEAD_$cmt='"${cmt_name##refs/heads/}~$(($end - $msgnum))"'
-       eval GITHEAD_$hd='$(cat "$merge_dir/onto_name")'
+       eval GITHEAD_$hd='$onto_name'
        export GITHEAD_$cmt GITHEAD_$hd
        if test -n "$GIT_QUIET"
        then