From: Johannes Sixt Date: Fri, 20 Jul 2012 08:14:20 GMT Subject: Re: [PATCH 4/7] git-rebase--interactive.sh: look up subject in add_pick_line Message-ID: <5009135C.208@viscovery.net> In-Reply-To: <1342596455-17046-5-git-send-email-martin.von.zweigbergk@gmail.com> Am 7/18/2012 9:27, schrieb Martin von Zweigbergk: > @@ -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" I don't like this. On Windows, rebase -i is already slow, and these extra processes will make it even slower. > + 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" ... > - add_pick_line $shortsha1 "$rest" > + add_pick_line $sha1 > fi This is 'rebase -p' case, and you trade the new processes for some old ones. > + 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 But in the regulare case, you don't; the processes are really new. Anything that can be done about this? Perhaps the rev-list call can generate all of the full SHA1, the short SHA1, and the subject with a --pretty format? -- Hannes