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 majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html