From: Matthieu Moy Date: Thu, 1 Oct 2015 08:18:41 +0000 (+0200) Subject: rebase-i: explicitly accept tab as separator in commands X-Git-Tag: v2.6.2~13^2~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=31bff64100d0864741b57cc44e01a19359573e99;p=thirdparty%2Fgit.git rebase-i: explicitly accept tab as separator in commands The git-rebase-todo is parsed several times with different parsers. In principle, the user input is normalized by transform_todo_ids and further parsing can be stricter. In case the user wrote pick deadbeefcommit message the parser of transform_todo_ids was considering the sha1 to be "deadbeefcommit", and was leaving the tab in the transformed sheet. In practice, this went unnoticed since the actual command interpretation was done later in do_next which did accept the tab as a separator. Make it explicit in the code of transform_todo_ids that tabs are accepted. This way, code that mimicks it will also accept tabs as separator. A similar construct appears in skip_unnecessary_picks, but this one comes after transform_todo_ids, hence reads the normalized format, so it needs not be changed. Signed-off-by: Matthieu Moy Signed-off-by: Junio C Hamano --- diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh index dcc3401b5a..51e0e58c67 100644 --- a/git-rebase--interactive.sh +++ b/git-rebase--interactive.sh @@ -732,8 +732,8 @@ transform_todo_ids () { # that do not have a SHA-1 at the beginning of $rest. ;; *) - sha1=$(git rev-parse --verify --quiet "$@" ${rest%% *}) && - rest="$sha1 ${rest#* }" + sha1=$(git rev-parse --verify --quiet "$@" ${rest%%[ ]*}) && + rest="$sha1 ${rest#*[ ]}" ;; esac printf '%s\n' "$command${rest:+ }$rest"