Code

rebase: read state outside loop
authorMartin von Zweigbergk <martin.von.zweigbergk@gmail.com>
Tue, 28 Dec 2010 09:30:20 +0000 (10:30 +0100)
committerJunio C Hamano <gitster@pobox.com>
Tue, 28 Dec 2010 22:58:57 +0000 (14:58 -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 bf144dcd5884160db88b8ca4851159f52d7e13c7..9be831e3ad94e7a82e91150acdeee1ecf55d8413 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