[PATCH] Fix-up previous expr changes.
From: Junio C Hamano <hidden>
Date: 2016-06-15 22:42:23
Subsystem:
the rest · Maintainer:
Linus Torvalds
The regexp on the right hand side of expr : operator somehow was
broken.
expr 'z+pu:refs/tags/ko-pu' : 'z\+\(.*\)'
does not strip '+'; write 'z+\(.*\)' instead.
We probably should switch to shell based substring post 1.3.0;
that's not bashism but just POSIX anyway.
Signed-off-by: Junio C Hamano <redacted>
---
* Funny thing is that before the z prefixing, the code was
already broken (we said expr "$ref" : '\+\(.*\)'), but
somehow it worked. It could be a bug in expr.
# already buggy but did not trigger somehow.
: siamese; expr '+pu:ko-pu' : '\+\(.*\)'
pu:ko-pu
# z prefix exposed the breakage.
: siamese; expr 'z+pu:ko-pu' : 'z\+\(.*\)'
+pu:ko-pu
# the fix-up this patch is about.
: siamese; expr 'z+pu:ko-pu' : 'z+\(.*\)'
pu:ko-pu
# this is the way it should have been written from the start.
: siamese; expr '+pu:ko-pu' : '+\(.*\)'
pu:ko-pu
# maybe I am using broken expr...
: siamese; type expr
expr is hashed (/usr/bin/expr)
: siamese; /usr/bin/expr --version |head -n2
expr (GNU coreutils) 5.94
Copyright (C) 2006 Free Software Foundation, Inc.
git-fetch.sh | 4 ++--
git-parse-remote.sh | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
dfdcb558ecf93c0e09b8dab89cff4839e8c95e36diff --git a/git-fetch.sh b/git-fetch.sh
index 711650f..83143f8 100755
--- a/git-fetch.sh
+++ b/git-fetch.sh@@ -252,10 +252,10 @@ fetch_main () { else not_for_merge= fi - if expr "z$ref" : 'z\+' >/dev/null + if expr "z$ref" : 'z+' >/dev/null then single_force=t - ref=$(expr "z$ref" : 'z\+\(.*\)') + ref=$(expr "z$ref" : 'z+\(.*\)') else single_force= fi
diff --git a/git-parse-remote.sh b/git-parse-remote.sh
index 65c66d5..c9b899e 100755
--- a/git-parse-remote.sh
+++ b/git-parse-remote.sh@@ -77,7 +77,7 @@ canon_refs_list_for_fetch () { force= case "$ref" in +*) - ref=$(expr "z$ref" : 'z\+\(.*\)') + ref=$(expr "z$ref" : 'z+\(.*\)') force=+ ;; esac
--
1.3.0.rc3.gce03