The todo file is generated using (more-or-less) 'git rev-list
$revisions --pretty=oneline --abbrev-commit --abbrev=7', i.e. by
letting 'git rev-list' output both the abbreviated sha1 and the
subject line. To allow us to more easily generate the list of commits
to rebase by using commands that don't support outputting the subject
line, move this logic into add_pick_line.
---
 git-rebase--interactive.sh | 21 +++++++++------------
 1 file changed, 9 insertions(+), 12 deletions(-)

diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh
index 4bb8e3f..9715830 100644
--- a/git-rebase--interactive.sh
+++ b/git-rebase--interactive.sh
@@ -814,7 +814,8 @@ add_pick_line () {
        else
                comment_out=
        fi
-       printf '%s\n' "${comment_out}pick $1 $2" >>"$todo"
+       line=$(git rev-list -1 --pretty=oneline --abbrev-commit --abbrev=7 $1)
+       printf '%s\n' "${comment_out}pick $line" >>"$todo"
 }
 
 if test t = "$preserve_merges"
@@ -835,13 +836,10 @@ then
        # No cherry-pick because our first pass is to determine
        # parents to rewrite and skipping dropped commits would
        # prematurely end our probe
-       git rev-list --pretty=oneline --abbrev-commit \
-               --abbrev=7 --reverse --left-right --topo-order \
-               $revisions |
+       git rev-list $revisions --reverse --left-right --topo-order |
        sed -n "s/^>//p" |
-       while read -r shortsha1 rest
+       while read -r sha1
        do
-               sha1=$(git rev-parse $shortsha1)
                if test -z "$rebase_root"
                then
                        preserve=t
@@ -858,7 +856,7 @@ then
                if test f = "$preserve"
                then
                        touch "$rewritten"/$sha1
-                       add_pick_line $shortsha1 "$rest"
+                       add_pick_line $sha1
                fi
        done
        # Watch for commits that been dropped by --cherry-pick
@@ -884,13 +882,12 @@ then
                fi
        done
 else
-       git rev-list --no-merges --cherry-pick --pretty=oneline --abbrev-commit 
\
-               --abbrev=7 --reverse --left-right --topo-order \
-               $revisions |
+       git rev-list $revisions --reverse --left-right --topo-order \
+               --no-merges --cherry-pick |
        sed -n "s/^>//p" |
-       while read -r shortsha1 rest
+       while read -r sha1
        do
-               add_pick_line $shortsha1 "$rest"
+               add_pick_line $sha1
        done
 fi
 
-- 
1.7.11.1.104.ge7b44f1

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to