threads / patch / 39230

patchcontrib/subtree: fix linefeeds trimming for cmd_split()

Subject: [PATCH] contrib/subtree: fix linefeeds trimming for cmd_split()

## tl;dr

2 messages between May 4, 2015 and May 4, 2015. Diffs are folded; open one to read it.

replies: 1people: 2as markdown or json

Danny Lin· May 4, 2015, 06:13 UTC · lore
From dc549b6b4ec36f8faf9c6f7bb1e343ef7babd14f Mon Sep 17 00:00:00 2001
From: Danny Lin <danny0838@gmail.com>
Date: Mon, 4 May 2015 14:09:38 +0800
Subject: [PATCH] contrib/subtree: fix linefeeds trimming for cmd_split()
cmd_split() prints the info message using "say -n", which
makes no sense and could cause the linefeed be trimmed in
some cases. This patch fixes the issue.
---
 contrib/subtree/git-subtree.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Show changes to contrib/subtree/git-subtree.sh +1 −1
diff --git a/contrib/subtree/git-subtree.sh b/contrib/subtree/git-subtree.sh
index fa1a583..28a1377 100755
--- a/contrib/subtree/git-subtree.sh
+++ b/contrib/subtree/git-subtree.sh
@@ -599,7 +599,7 @@ cmd_split()
 	eval "$grl" |
 	while read rev parents; do
 		revcount=$(($revcount + 1))
-		say -n "$revcount/$revmax ($createcount)
"
+		say "$revcount/$revmax ($createcount)"
 		debug "Processing commit: $rev"
 		exists=$(cache_get $rev)
 		if [ -n "$exists" ]; then
-- 
2.3.7.windows.1
Junio C Hamano· May 4, 2015, 21:14 UTC · re: Danny Lin · lore

Re: [PATCH] contrib/subtree: fix linefeeds trimming for cmd_split()

Danny Lin <danny0838@gmail.com> writes:
> From dc549b6b4ec36f8faf9c6f7bb1e343ef7babd14f Mon Sep 17 00:00:00 2001
> From: Danny Lin <danny0838@gmail.com>
> Date: Mon, 4 May 2015 14:09:38 +0800
> Subject: [PATCH] contrib/subtree: fix linefeeds trimming for cmd_split()

Please do not use multipart/mixed attachments, but instead inline your patch. When doing so, please drop all these four lines above.

>
> cmd_split() prints the info message using "say -n", which
> makes no sense and could cause the linefeed be trimmed in
> some cases. This patch fixes the issue.

I think this was written knowing that "say" is merely a thin wrapper of "echo" (which is a bad manner but happens to be correct) and assuming that everybody's "echo" understands "-n" (which is not a good assumption) to implement "progress display" that shows the "N out of M done" output over and over on the same physical line.

So,... contrary to your "makes no sense" claim, what it tries to do makes perfect sense to me, even though its execution seems somewhat poor.

Show 17 quoted lines
> ---
>  contrib/subtree/git-subtree.sh | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/contrib/subtree/git-subtree.sh b/contrib/subtree/git-subtree.sh
> index fa1a583..28a1377 100755
> --- a/contrib/subtree/git-subtree.sh
> +++ b/contrib/subtree/git-subtree.sh
> @@ -599,7 +599,7 @@ cmd_split()
>  	eval "$grl" |
>  	while read rev parents; do
>  		revcount=$(($revcount + 1))
> -		say -n "$revcount/$revmax ($createcount)"
> +		say "$revcount/$revmax ($createcount)"
>  		debug "Processing commit: $rev"
>  		exists=$(cache_get $rev)
>  		if [ -n "$exists" ]; then

← back to recent threads