git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] git-rebase--interactive.sh: LF terminate line sent to cut
@ 2010-09-17 14:17 Chris Johnsen
  2010-09-17 15:10 ` Brandon Casey
  0 siblings, 1 reply; 7+ messages in thread
From: Chris Johnsen @ 2010-09-17 14:17 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git, Brandon Casey, Matthieu Moy, Chris Johnsen

Some versions of cut do not cope well with lines that do not end in
an LF. Add '\n' to the printf format string to ensure that the
generated output ends in a LF.

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
    % printf '%s\n' 'foo bar' | /usr/bin/cut -d ' ' -f 1
    foo

Signed-off-by: Chris Johnsen <chris_johnsen@pobox.com>

---
It looks like the cut on my system is derived from FreeBSD. It is
probably an old version though (possibly too old to care about).

The cut from GNU coreutils does not to have this problem, so using
it serves as a workaround.
---
 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..834460a 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=$(printf '%s\n' "$rest" | cut -d ' ' -f 1)
 			case "$(git rev-parse --verify --quiet "$sha1"^)" in
 			"$ONTO"*)
 				ONTO=$sha1
-- 
1.7.3.rc2

^ permalink raw reply related	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2010-09-18  5:25 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-09-17 14:17 [PATCH] git-rebase--interactive.sh: LF terminate line sent to cut Chris Johnsen
2010-09-17 15:10 ` Brandon Casey
2010-09-17 18:38   ` Junio C Hamano
2010-09-17 18:59     ` Brandon Casey
2010-09-17 21:42     ` [PATCH v2] git-rebase--interactive.sh: replace cut with ${v%% *} Chris Johnsen
2010-09-17 21:57       ` Junio C Hamano
2010-09-18  5:25         ` Chris Johnsen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).