Code

git-rebase--interactive.sh: replace cut with ${v%% *}
authorChris Johnsen <chris_johnsen@pobox.com>
Fri, 17 Sep 2010 21:42:51 +0000 (16:42 -0500)
committerJunio C Hamano <gitster@pobox.com>
Fri, 17 Sep 2010 21:58:08 +0000 (14:58 -0700)
Some versions of cut do not cope well with lines that do not end in
an LF. In this case, we can completely avoid cut by using the
${var%% *} parameter expansion (suggested by Brandon Casey).

I found this problem when t3404's "avoid unnecessary reset" failed
due to the "rebase -i" not avoiding updating the tested timestamp.

On a Mac OS X 10.4.11 system:

    % printf '%s' 'foo bar' | /usr/bin/cut -d ' ' -f 1
    cut: stdin: Illegal byte sequence

Signed-off-by: Chris Johnsen <chris_johnsen@pobox.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
git-rebase--interactive.sh

index eb2dff55f81b6726340ce26db93bb161087a4857..a27952d9fdfb517f684b7d304831bf74d0ce237b 100755 (executable)
@@ -626,7 +626,7 @@ skip_unnecessary_picks () {
                case "$fd,$command" in
                3,pick|3,p)
                        # pick a commit whose parent is current $ONTO -> skip
-                       sha1=$(printf '%s' "$rest" | cut -d ' ' -f 1)
+                       sha1=${rest%% *}
                        case "$(git rev-parse --verify --quiet "$sha1"^)" in
                        "$ONTO"*)
                                ONTO=$sha1