* [PATCH] repack: find -> /usr/bin/find, as for cygwin
@ 2011-03-19 12:08 ryenus ◇
2011-03-19 12:18 ` Nguyen Thai Ngoc Duy
0 siblings, 1 reply; 14+ messages in thread
From: ryenus ◇ @ 2011-03-19 12:08 UTC (permalink / raw)
To: git, gitster
If I run Cygwin git directly from cmd.exe instead of from a shell,
e.g. bash, I get the following error when executing git repack
FIND: Parameter format not correct
that's because in git-repack.sh, 'find' is called without its full
path, this patch corrects this
Signed-off-by: ryenus <ryenus@gmail.com>
---
git-repack.sh | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/git-repack.sh b/git-repack.sh
index 624feec..212caa7 100755
--- a/git-repack.sh
+++ b/git-repack.sh
@@ -64,7 +64,7 @@ case ",$all_into_one," in
,t,)
args= existing=
if [ -d "$PACKDIR" ]; then
- for e in `cd "$PACKDIR" && find . -type f -name '*.pack' \
+ for e in `cd "$PACKDIR" && /usr/bin/find . -type f
-name '*.pack' \
| sed -e 's/^\.\///' -e 's/\.pack$//'`
do
if [ -e "$PACKDIR/$e.keep" ]; then
--
1.7.4
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH] repack: find -> /usr/bin/find, as for cygwin
2011-03-19 12:08 [PATCH] repack: find -> /usr/bin/find, as for cygwin ryenus ◇
@ 2011-03-19 12:18 ` Nguyen Thai Ngoc Duy
2011-03-19 15:50 ` René Scharfe
2011-03-19 16:32 ` ryenus ◇
0 siblings, 2 replies; 14+ messages in thread
From: Nguyen Thai Ngoc Duy @ 2011-03-19 12:18 UTC (permalink / raw)
To: ryenus ◇; +Cc: git, gitster
On Sat, Mar 19, 2011 at 7:08 PM, ryenus ◇ <ryenus@gmail.com> wrote:
> - for e in `cd "$PACKDIR" && find . -type f -name '*.pack' \
> + for e in `cd "$PACKDIR" && /usr/bin/find . -type f
I'd rather have something like in test-lib.sh (with conditions)
find() {
/usr/bin/find "$@"
}
Even better, rewrite this script to C.
--
Duy
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] repack: find -> /usr/bin/find, as for cygwin
2011-03-19 12:18 ` Nguyen Thai Ngoc Duy
@ 2011-03-19 15:50 ` René Scharfe
2011-03-19 16:07 ` Nguyen Thai Ngoc Duy
2011-03-19 16:32 ` ryenus ◇
1 sibling, 1 reply; 14+ messages in thread
From: René Scharfe @ 2011-03-19 15:50 UTC (permalink / raw)
To: Nguyen Thai Ngoc Duy; +Cc: ryenus ◇, git, gitster
Am 19.03.2011 13:18, schrieb Nguyen Thai Ngoc Duy:
> On Sat, Mar 19, 2011 at 7:08 PM, ryenus ◇<ryenus@gmail.com> wrote:
>> - for e in `cd "$PACKDIR"&& find . -type f -name '*.pack' \
>> + for e in `cd "$PACKDIR"&& /usr/bin/find . -type f
>
> I'd rather have something like in test-lib.sh (with conditions)
>
> find() {
> /usr/bin/find "$@"
> }
>
> Even better, rewrite this script to C.
That's a good idea, but it's a lot more involved than the original
patch.
Do we need to support pack files in subdirectories of $PACKDIR? If
not -- and I don't immediately see why, except that the current code
does with its find call -- then the following patch might be a quick
bandaid. Untested, please be careful.
René
git-repack.sh | 19 ++++++++++---------
1 files changed, 10 insertions(+), 9 deletions(-)
diff --git a/git-repack.sh b/git-repack.sh
index 624feec..4e49079 100755
--- a/git-repack.sh
+++ b/git-repack.sh
@@ -64,15 +64,16 @@ case ",$all_into_one," in
,t,)
args= existing=
if [ -d "$PACKDIR" ]; then
- for e in `cd "$PACKDIR" && find . -type f -name '*.pack' \
- | sed -e 's/^\.\///' -e 's/\.pack$//'`
- do
- if [ -e "$PACKDIR/$e.keep" ]; then
- : keep
- else
- existing="$existing $e"
- fi
- done
+ existing=$(
+ cd "$PACKDIR" &&
+ for e in *.pack
+ do
+ if test -f "$e" -a ! -e "${e%.pack}.keep"
+ then
+ echo "${e%.pack}"
+ fi
+ done
+ )
if test -n "$existing" -a -n "$unpack_unreachable" -a \
-n "$remove_redundant"
then
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH] repack: find -> /usr/bin/find, as for cygwin
2011-03-19 15:50 ` René Scharfe
@ 2011-03-19 16:07 ` Nguyen Thai Ngoc Duy
2011-03-19 16:15 ` Nguyen Thai Ngoc Duy
0 siblings, 1 reply; 14+ messages in thread
From: Nguyen Thai Ngoc Duy @ 2011-03-19 16:07 UTC (permalink / raw)
To: René Scharfe; +Cc: ryenus ◇, git, gitster
On Sat, Mar 19, 2011 at 04:50:24PM +0100, René Scharfe wrote:
> Do we need to support pack files in subdirectories of $PACKDIR? If
> not -- and I don't immediately see why, except that the current code
> does with its find call -- then the following patch might be a quick
> bandaid. Untested, please be careful.
I looked at test-lib.sh but forgot git-sh-setup.sh, which does
aliasing for find in MINGW build. With your patch, the last use of
find is gone. So we might as well do this
diff --git a/git-sh-setup.sh b/git-sh-setup.sh
index aa16b83..e891edc 100644
--- a/git-sh-setup.sh
+++ b/git-sh-setup.sh
@@ -232,9 +232,6 @@ case $(uname -s) in
sort () {
/usr/bin/sort "$@"
}
- find () {
- /usr/bin/find "$@"
- }
is_absolute_path () {
case "$1" in
[/\\]* | [A-Za-z]:*)
--
Duy
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH] repack: find -> /usr/bin/find, as for cygwin
2011-03-19 16:07 ` Nguyen Thai Ngoc Duy
@ 2011-03-19 16:15 ` Nguyen Thai Ngoc Duy
0 siblings, 0 replies; 14+ messages in thread
From: Nguyen Thai Ngoc Duy @ 2011-03-19 16:15 UTC (permalink / raw)
To: René Scharfe; +Cc: ryenus ◇, git, gitster
On Sat, Mar 19, 2011 at 11:07 PM, Nguyen Thai Ngoc Duy
<pclouds@gmail.com> wrote:
> I looked at test-lib.sh but forgot git-sh-setup.sh, which does
> aliasing for find in MINGW build. With your patch, the last use of
> find is gone. So we might as well do this
>
> - find () {
> - /usr/bin/find "$@"
> - }
On second thought, no. We probably need to do an unconditional alias
find() {
die "find is not supported"
}
to make sure no one will ever use it again.
--
Duy
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] repack: find -> /usr/bin/find, as for cygwin
2011-03-19 12:18 ` Nguyen Thai Ngoc Duy
2011-03-19 15:50 ` René Scharfe
@ 2011-03-19 16:32 ` ryenus ◇
2011-03-19 16:43 ` ryenus ◇
2011-03-19 18:17 ` Junio C Hamano
1 sibling, 2 replies; 14+ messages in thread
From: ryenus ◇ @ 2011-03-19 16:32 UTC (permalink / raw)
To: Nguyen Thai Ngoc Duy; +Cc: git, gitster
Thank you, Duy, you're almost right, I just checked git-sh-setup.sh,
in the bottom, sort and find are defined as functions like what you
pointed out, but only for MinGW, therefore a better fix is to check
for cygwin as well:
---
git-sh-setup.sh | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/git-sh-setup.sh b/git-sh-setup.sh
index aa16b83..5c52ae4 100644
--- a/git-sh-setup.sh
+++ b/git-sh-setup.sh
@@ -227,7 +227,7 @@ fi
# Fix some commands on Windows
case $(uname -s) in
-*MINGW*)
+*MINGW*|*CYGWIN*)
# Windows has its own (incompatible) sort and find
sort () {
/usr/bin/sort "$@"
--
1.7.4
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH] repack: find -> /usr/bin/find, as for cygwin
2011-03-19 16:32 ` ryenus ◇
@ 2011-03-19 16:43 ` ryenus ◇
2011-03-19 16:47 ` Nguyen Thai Ngoc Duy
2011-03-19 18:17 ` Junio C Hamano
1 sibling, 1 reply; 14+ messages in thread
From: ryenus ◇ @ 2011-03-19 16:43 UTC (permalink / raw)
To: Nguyen Thai Ngoc Duy; +Cc: René Scharfe, git, gitster
OK, I've been away for a while and didn't notice latest replies :-) do
you mean find is not used elsewhere in git?
Anyway, looks like checking for both MinGW and Cygwin still applies.
Thanks
On Sun, Mar 20, 2011 at 00:32, ryenus ◇ <ryenus@gmail.com> wrote:
> Thank you, Duy, you're almost right, I just checked git-sh-setup.sh,
> in the bottom, sort and find are defined as functions like what you
> pointed out, but only for MinGW, therefore a better fix is to check
> for cygwin as well:
>
> ---
> git-sh-setup.sh | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/git-sh-setup.sh b/git-sh-setup.sh
> index aa16b83..5c52ae4 100644
> --- a/git-sh-setup.sh
> +++ b/git-sh-setup.sh
> @@ -227,7 +227,7 @@ fi
>
> # Fix some commands on Windows
> case $(uname -s) in
> -*MINGW*)
> +*MINGW*|*CYGWIN*)
> # Windows has its own (incompatible) sort and find
> sort () {
> /usr/bin/sort "$@"
> --
> 1.7.4
>
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] repack: find -> /usr/bin/find, as for cygwin
2011-03-19 16:43 ` ryenus ◇
@ 2011-03-19 16:47 ` Nguyen Thai Ngoc Duy
0 siblings, 0 replies; 14+ messages in thread
From: Nguyen Thai Ngoc Duy @ 2011-03-19 16:47 UTC (permalink / raw)
To: ryenus ◇; +Cc: René Scharfe, git, gitster
On Sat, Mar 19, 2011 at 11:43 PM, ryenus ◇ <ryenus@gmail.com> wrote:
> OK, I've been away for a while and didn't notice latest replies :-) do
> you mean find is not used elsewhere in git?
That's what 'git grep find *.sh' told me. Anyway I suppose our
testsuites cover all commands quite good so we would notice if any
other commands still use 'find'.
> Anyway, looks like checking for both MinGW and Cygwin still applies.
I don't use cygwin so I don't know if cygwin users are happy with
that. But it looks ok (unless some users decide to move find to
another place)
--
Duy
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] repack: find -> /usr/bin/find, as for cygwin
2011-03-19 16:32 ` ryenus ◇
2011-03-19 16:43 ` ryenus ◇
@ 2011-03-19 18:17 ` Junio C Hamano
2011-03-20 0:31 ` ryenus ◇
1 sibling, 1 reply; 14+ messages in thread
From: Junio C Hamano @ 2011-03-19 18:17 UTC (permalink / raw)
To: ryenus ◇; +Cc: Nguyen Thai Ngoc Duy, git
ryenus ◇ <ryenus@gmail.com> writes:
> Thank you, Duy, you're almost right, I just checked git-sh-setup.sh,
> in the bottom, sort and find are defined as functions like what you
> pointed out, but only for MinGW, therefore a better fix is to check
> for cygwin as well:
>
> ---
> git-sh-setup.sh | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/git-sh-setup.sh b/git-sh-setup.sh
> index aa16b83..5c52ae4 100644
> --- a/git-sh-setup.sh
> +++ b/git-sh-setup.sh
> @@ -227,7 +227,7 @@ fi
>
> # Fix some commands on Windows
> case $(uname -s) in
> -*MINGW*)
> +*MINGW*|*CYGWIN*)
This looks like a more sensible alternative than forbidding the use of
"find", privided if the new pattern is an appropriate one to catch cygwin.
I don't have any Windows boxes, so I cannot verify, but the patch smells
correct.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] repack: find -> /usr/bin/find, as for cygwin
2011-03-19 18:17 ` Junio C Hamano
@ 2011-03-20 0:31 ` ryenus ◇
2011-03-20 0:35 ` ryenus ◇
0 siblings, 1 reply; 14+ messages in thread
From: ryenus ◇ @ 2011-03-20 0:31 UTC (permalink / raw)
To: Junio C Hamano; +Cc: Nguyen Thai Ngoc Duy, René Scharfe, git
I'm not sure if there's a set of tests for Cygwin/MinGW among all the
test cases in GIT, here is a simple one:
#!/bin/sh
echo $(uname -s)
case $(uname -s) in
*MINGW*|*CYGWIN*)
echo "detected MinGW/Cygwin"
;;
*MinGW*)
echo "detected MinGW"
;;
*Cygwin*)
echo "detected Cygwin"
;;
esac
Run with dash, the output is
CYGWIN_NT-6.1
detected MinGW/Cygwin
While I don't have MinGW, so someone has it please give it a shot.
Thanks
2011/3/20 Junio C Hamano <gitster@pobox.com>:
> ryenus ◇ <ryenus@gmail.com> writes:
>
>> Thank you, Duy, you're almost right, I just checked git-sh-setup.sh,
>> in the bottom, sort and find are defined as functions like what you
>> pointed out, but only for MinGW, therefore a better fix is to check
>> for cygwin as well:
>>
>> ---
>> git-sh-setup.sh | 2 +-
>> 1 files changed, 1 insertions(+), 1 deletions(-)
>>
>> diff --git a/git-sh-setup.sh b/git-sh-setup.sh
>> index aa16b83..5c52ae4 100644
>> --- a/git-sh-setup.sh
>> +++ b/git-sh-setup.sh
>> @@ -227,7 +227,7 @@ fi
>>
>> # Fix some commands on Windows
>> case $(uname -s) in
>> -*MINGW*)
>> +*MINGW*|*CYGWIN*)
>
> This looks like a more sensible alternative than forbidding the use of
> "find", privided if the new pattern is an appropriate one to catch cygwin.
>
> I don't have any Windows boxes, so I cannot verify, but the patch smells
> correct.
>
>
>
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] repack: find -> /usr/bin/find, as for cygwin
2011-03-20 0:31 ` ryenus ◇
@ 2011-03-20 0:35 ` ryenus ◇
2011-03-20 7:48 ` Matthieu Moy
2011-03-21 9:36 ` Erik Faye-Lund
0 siblings, 2 replies; 14+ messages in thread
From: ryenus ◇ @ 2011-03-20 0:35 UTC (permalink / raw)
To: Junio C Hamano; +Cc: Nguyen Thai Ngoc Duy, René Scharfe, git
oops, corrected the script with the test strings in upper cases
#!/bin/sh
echo $(uname -s)
case $(uname -s) in
*MINGW*|*CYGWIN*)
echo "detected MinGW/Cygwin"
;;
*MINGW*)
echo "detected MinGW"
;;
*CYGWIN*)
echo "detected Cygwin"
;;
esac
On Sun, Mar 20, 2011 at 08:31, ryenus ◇ <ryenus@gmail.com> wrote:
> I'm not sure if there's a set of tests for Cygwin/MinGW among all the
> test cases in GIT, here is a simple one:
>
> #!/bin/sh
> echo $(uname -s)
> case $(uname -s) in
> *MINGW*|*CYGWIN*)
> echo "detected MinGW/Cygwin"
> ;;
> *MinGW*)
> echo "detected MinGW"
> ;;
> *Cygwin*)
> echo "detected Cygwin"
> ;;
> esac
>
> Run with dash, the output is
>
> CYGWIN_NT-6.1
> detected MinGW/Cygwin
>
> While I don't have MinGW, so someone has it please give it a shot.
>
> Thanks
>
> 2011/3/20 Junio C Hamano <gitster@pobox.com>:
>> ryenus ◇ <ryenus@gmail.com> writes:
>>
>>> Thank you, Duy, you're almost right, I just checked git-sh-setup.sh,
>>> in the bottom, sort and find are defined as functions like what you
>>> pointed out, but only for MinGW, therefore a better fix is to check
>>> for cygwin as well:
>>>
>>> ---
>>> git-sh-setup.sh | 2 +-
>>> 1 files changed, 1 insertions(+), 1 deletions(-)
>>>
>>> diff --git a/git-sh-setup.sh b/git-sh-setup.sh
>>> index aa16b83..5c52ae4 100644
>>> --- a/git-sh-setup.sh
>>> +++ b/git-sh-setup.sh
>>> @@ -227,7 +227,7 @@ fi
>>>
>>> # Fix some commands on Windows
>>> case $(uname -s) in
>>> -*MINGW*)
>>> +*MINGW*|*CYGWIN*)
>>
>> This looks like a more sensible alternative than forbidding the use of
>> "find", privided if the new pattern is an appropriate one to catch cygwin.
>>
>> I don't have any Windows boxes, so I cannot verify, but the patch smells
>> correct.
>>
>>
>>
>
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] repack: find -> /usr/bin/find, as for cygwin
2011-03-20 0:35 ` ryenus ◇
@ 2011-03-20 7:48 ` Matthieu Moy
2011-03-20 8:42 ` ryenus ◇
2011-03-21 9:36 ` Erik Faye-Lund
1 sibling, 1 reply; 14+ messages in thread
From: Matthieu Moy @ 2011-03-20 7:48 UTC (permalink / raw)
To: ryenus ◇
Cc: Junio C Hamano, Nguyen Thai Ngoc Duy, René Scharfe, git
ryenus ◇ <ryenus@gmail.com> writes:
> oops, corrected the script with the test strings in upper cases
>
> #!/bin/sh
> echo $(uname -s)
> case $(uname -s) in
> *MINGW*|*CYGWIN*)
^
This "|" means "or" in a case statement...
> echo "detected MinGW/Cygwin"
> ;;
> *MINGW*)
...so I can see no way to reach this point: if the string matches
*MINGW*, it also matches *MINGW*|*CYGWIN*.
> echo "detected MinGW"
> ;;
> *CYGWIN*)
> echo "detected Cygwin"
> ;;
> esac
But you've just showed that $(uname -s) of Cygwin did contain upper-case
CYGWIN, which I think was the point to verify :-).
--
Matthieu Moy
http://www-verimag.imag.fr/~moy/
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] repack: find -> /usr/bin/find, as for cygwin
2011-03-20 7:48 ` Matthieu Moy
@ 2011-03-20 8:42 ` ryenus ◇
0 siblings, 0 replies; 14+ messages in thread
From: ryenus ◇ @ 2011-03-20 8:42 UTC (permalink / raw)
To: Matthieu Moy; +Cc: Junio C Hamano, Nguyen Thai Ngoc Duy, René Scharfe, git
Hey Matthieu,
Yes, I mean it.
The purpose of this test script is to testify that "*MINGW*|*CYGWIN*"
will match MinGW and/or Cygwin, so that it won't fall down to the next
2 cases.
On Sun, Mar 20, 2011 at 15:48, Matthieu Moy
<Matthieu.Moy@grenoble-inp.fr> wrote:
> ryenus ◇ <ryenus@gmail.com> writes:
>
>> oops, corrected the script with the test strings in upper cases
>>
>> #!/bin/sh
>> echo $(uname -s)
>> case $(uname -s) in
>> *MINGW*|*CYGWIN*)
> ^
> This "|" means "or" in a case statement...
>
>> echo "detected MinGW/Cygwin"
>> ;;
>> *MINGW*)
>
> ...so I can see no way to reach this point: if the string matches
> *MINGW*, it also matches *MINGW*|*CYGWIN*.
>
>> echo "detected MinGW"
>> ;;
>> *CYGWIN*)
>> echo "detected Cygwin"
>> ;;
>> esac
>
> But you've just showed that $(uname -s) of Cygwin did contain upper-case
> CYGWIN, which I think was the point to verify :-).
>
> --
> Matthieu Moy
> http://www-verimag.imag.fr/~moy/
>
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] repack: find -> /usr/bin/find, as for cygwin
2011-03-20 0:35 ` ryenus ◇
2011-03-20 7:48 ` Matthieu Moy
@ 2011-03-21 9:36 ` Erik Faye-Lund
1 sibling, 0 replies; 14+ messages in thread
From: Erik Faye-Lund @ 2011-03-21 9:36 UTC (permalink / raw)
To: ryenus ◇
Cc: Junio C Hamano, Nguyen Thai Ngoc Duy, René Scharfe, git
On Sun, Mar 20, 2011 at 1:35 AM, ryenus ◇ <ryenus@gmail.com> wrote:
> oops, corrected the script with the test strings in upper cases
>
> #!/bin/sh
> echo $(uname -s)
> case $(uname -s) in
> *MINGW*|*CYGWIN*)
> echo "detected MinGW/Cygwin"
> ;;
> *MINGW*)
> echo "detected MinGW"
> ;;
> *CYGWIN*)
> echo "detected Cygwin"
> ;;
> esac
>
Output:
MINGW32_NT-6.1
detected MinGW/Cygwin
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2011-03-21 9:37 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-03-19 12:08 [PATCH] repack: find -> /usr/bin/find, as for cygwin ryenus ◇
2011-03-19 12:18 ` Nguyen Thai Ngoc Duy
2011-03-19 15:50 ` René Scharfe
2011-03-19 16:07 ` Nguyen Thai Ngoc Duy
2011-03-19 16:15 ` Nguyen Thai Ngoc Duy
2011-03-19 16:32 ` ryenus ◇
2011-03-19 16:43 ` ryenus ◇
2011-03-19 16:47 ` Nguyen Thai Ngoc Duy
2011-03-19 18:17 ` Junio C Hamano
2011-03-20 0:31 ` ryenus ◇
2011-03-20 0:35 ` ryenus ◇
2011-03-20 7:48 ` Matthieu Moy
2011-03-20 8:42 ` ryenus ◇
2011-03-21 9:36 ` Erik Faye-Lund
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).