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@xxxxxxxxx> --- Brandon Casey wrote: > Or we could write it like: > > sha1=${rest%% *} > > Does the above work on your FreeBSD system? Yes, as Junio points out, ${var%% *} is portable enough for Git. After this change t3404 passes here without GNU cut available. Junio C Hamano wrote: > Agreed; the less use of 'cut' we see, the better ;-) It seems like the other uses of cut in git-rebase--interactive.sh would be more awkward if they were replaced with equivalent processing done in-shell with parameter expansions. Eliminating them should probably wait until after 1.7.3, if at all. --- git-rebase--interactive.sh | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh index eb2dff5..a27952d 100755 --- a/git-rebase--interactive.sh +++ b/git-rebase--interactive.sh @@ -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 -- 1.7.3.rc2 -- 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