* [PATCH] Minor portability patch to git-submodule
@ 2007-12-17 21:41 Andy Dougherty
2007-12-17 22:54 ` Johannes Schindelin
0 siblings, 1 reply; 4+ messages in thread
From: Andy Dougherty @ 2007-12-17 21:41 UTC (permalink / raw)
To: git
While trying git out on Solaris 8, I needed the following patch.
The 'grep' command on Solaris doesn't understand the -e option, though
egrep does.
More mysterious is the printf patch. Without it, the sed command didn't
match anything.
--- git-1.5.4.rc0/git-submodule.sh Wed Dec 12 21:29:16 2007
+++ git-andy/git-submodule.sh Mon Dec 17 14:30:46 2007
@@ -74,7 +74,7 @@
module_name()
{
# Do we have "submodule.<something>.path = $1" defined in .gitmodules file?
- re=$(printf '%s' "$1" | sed -e 's/[].[^$\\*]/\\&/g')
+ re=$(printf '%s\n' "$1" | sed -e 's/[].[^$\\*]/\\&/g')
name=$( GIT_CONFIG=.gitmodules \
git config --get-regexp '^submodule\..*\.path$' |
sed -n -e 's|^submodule\.\(.*\)\.path '"$re"'$|\1|p' )
@@ -176,7 +176,7 @@
#
modules_init()
{
- git ls-files --stage -- "$@" | grep -e '^160000 ' |
+ git ls-files --stage -- "$@" | egrep -e '^160000 ' |
while read mode sha1 stage path
do
# Skip already registered paths
@@ -209,7 +209,7 @@
#
modules_update()
{
- git ls-files --stage -- "$@" | grep -e '^160000 ' |
+ git ls-files --stage -- "$@" | egrep -e '^160000 ' |
while read mode sha1 stage path
do
name=$(module_name "$path") || exit
@@ -268,7 +268,7 @@
#
modules_list()
{
- git ls-files --stage -- "$@" | grep -e '^160000 ' |
+ git ls-files --stage -- "$@" | egrep -e '^160000 ' |
while read mode sha1 stage path
do
name=$(module_name "$path") || exit
--
Andy Dougherty doughera@lafayette.edu
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] Minor portability patch to git-submodule
2007-12-17 21:41 [PATCH] Minor portability patch to git-submodule Andy Dougherty
@ 2007-12-17 22:54 ` Johannes Schindelin
2007-12-18 13:35 ` Andy Dougherty
0 siblings, 1 reply; 4+ messages in thread
From: Johannes Schindelin @ 2007-12-17 22:54 UTC (permalink / raw)
To: Andy Dougherty; +Cc: git
Hi,
On Mon, 17 Dec 2007, Andy Dougherty wrote:
> - git ls-files --stage -- "$@" | grep -e '^160000 ' |
> + git ls-files --stage -- "$@" | egrep -e '^160000 ' |
Nack. egrep is not available on all platforms. But then I have to wonder
why not saying "grep '^160000 '" instead?
Ciao,
Dscho
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] Minor portability patch to git-submodule
2007-12-17 22:54 ` Johannes Schindelin
@ 2007-12-18 13:35 ` Andy Dougherty
2007-12-18 14:01 ` Johannes Schindelin
0 siblings, 1 reply; 4+ messages in thread
From: Andy Dougherty @ 2007-12-18 13:35 UTC (permalink / raw)
To: Johannes Schindelin; +Cc: git
On Mon, 17 Dec 2007, Johannes Schindelin wrote:
> On Mon, 17 Dec 2007, Andy Dougherty wrote:
>
> > - git ls-files --stage -- "$@" | grep -e '^160000 ' |
> > + git ls-files --stage -- "$@" | egrep -e '^160000 ' |
>
> Nack. egrep is not available on all platforms. But then I have to wonder
> why not saying "grep '^160000 '" instead?
Your last suggestion is easily and obviously better -- I'll assume you
don't need an explicit patch and can just hand-edit mine. Still, I'd have
thought egrep was fine. As far as I recall, it goes back to v7 Unix. Or
are there non-unix systems at issue (perhaps cygwin variants or something)
that have grep but not egrep?
Anyway, thanks.
--
Andy Dougherty doughera@lafayette.edu
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] Minor portability patch to git-submodule
2007-12-18 13:35 ` Andy Dougherty
@ 2007-12-18 14:01 ` Johannes Schindelin
0 siblings, 0 replies; 4+ messages in thread
From: Johannes Schindelin @ 2007-12-18 14:01 UTC (permalink / raw)
To: Andy Dougherty; +Cc: git
Hi,
On Tue, 18 Dec 2007, Andy Dougherty wrote:
> On Mon, 17 Dec 2007, Johannes Schindelin wrote:
>
> > On Mon, 17 Dec 2007, Andy Dougherty wrote:
> >
> > > - git ls-files --stage -- "$@" | grep -e '^160000 ' |
> > > + git ls-files --stage -- "$@" | egrep -e '^160000 ' |
> >
> > Nack. egrep is not available on all platforms. But then I have to
> > wonder why not saying "grep '^160000 '" instead?
>
> Your last suggestion is easily and obviously better -- I'll assume you
> don't need an explicit patch and can just hand-edit mine. Still, I'd have
> thought egrep was fine. As far as I recall, it goes back to v7 Unix.
This is just another instance where we should look at existing systems
and not so much at standards documents.
> Or are there non-unix systems at issue (perhaps cygwin variants or
> something) that have grep but not egrep?
Well, I checked msysGit, and it has it.
That is, kind of: it is just a wrapper, calling "grep -E". Which means
yet another fork() on a fork() challenged platform, so I would appreciate
it if we could avoid it.
Thanks,
Dscho
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2007-12-18 14:02 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-12-17 21:41 [PATCH] Minor portability patch to git-submodule Andy Dougherty
2007-12-17 22:54 ` Johannes Schindelin
2007-12-18 13:35 ` Andy Dougherty
2007-12-18 14:01 ` Johannes Schindelin
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).