public inbox for git@vger.kernel.org 
 help / color / mirror / Atom feed
From: Junio C Hamano <gitster@pobox•com>
To: Johannes Sixt <j.sixt@viscovery•net>
Cc: Michael J Gruber <git@drmicha•warpmail.net>,
	git@vger•kernel.org, Andrei Thorp <garoth@gmail•com>
Subject: Re: [PATCHv2 4/4] git submodule: Fix handling of // and /.. in paths for added submodules
Date: Wed, 25 Feb 2009 13:25:16 -0800	[thread overview]
Message-ID: <7v1vtm1a6b.fsf@gitster.siamese.dyndns.org> (raw)
In-Reply-To: 49A55DAD.2000309@viscovery.net

Johannes Sixt <j.sixt@viscovery•net> writes:

> Michael J Gruber schrieb:
>> Johannes Sixt venit, vidit, dixit 25.02.2009 15:06:
>>> I think we have so far avoided \+ in sed expressions for portability reasons.
>> 
>> Hmmpf. Is it that new, or gnu specific? I'm always afraid of portability
>> issues with bash but wasn't aware of sed being an issue as well.
>> 
>> In any case, would 's|\\*|/|g' be better (more portable) then?
>
> You mean 's|//*|/|g'; yes, that is definitly portable.
>
>> Well, how is
>> 
>> echo a/b/c/../../d | sed -e ':start;s|\([^/]*\)/\.\./||g;tstart'
>> a/d
>> 
>> I meant: how portable is...
>
> I don't know... Let's see: My AIX 4.3.3 sed understands it if it is not
> all on a single line, and that says a lot. Specifically, I tried this:
>
> echo a/b/c/../../d | sed -e ':start
>              s|\([^/]*\)/\.\./||
>              tstart
> '
>
> and got the desired result:
>
> a/d
>
> Note that the 'g' flag is not necessary in this case.
>
> OTOH, this sed doesn't understand #comments :-/

Historically, sed was much worse than the shell when it came to the
portability issues, especially before people started to use bash, which
tipped the balance a bit by worsening the situation for the shell side.

The sed scripts in the more important parts of scripted Porcelains avoid
multiple commands on a single line concatenated with ";" mostly by inertia
on my side, but it was acquired exactly from this kind of portability
mess.  IIRC, AIX's was the worst offender. It also got "/A/../B/ { ... }"
wrong in earlier versions.

  reply	other threads:[~2009-02-25 21:27 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <80055d7c0902241541o5c8fad50ra4eace5919bcf6df@mail.gmail.com>
2009-02-24 23:56 ` Fwd: Git Submodule Misbehaviour With ./ Andrei Thorp
2009-02-25 11:03   ` [PATCH 0/2] Fix git submodule add for paths with ./ Michael J Gruber
2009-02-25 11:03     ` [PATCH 1/2] git submodule: Add test cases for git submodule add Michael J Gruber
2009-02-25 11:03       ` [PATCH 2/2] git submodule: Fix adding of submodules at paths with ./ Michael J Gruber
2009-02-25 11:21         ` Johannes Sixt
2009-02-25 12:35           ` Michael J Gruber
2009-02-25 13:04             ` Johannes Sixt
2009-02-25 13:26               ` [PATCHv2 0/4] Fix git submodule add for funky paths Michael J Gruber
2009-02-25 13:26                 ` [PATCHv2 1/4] git submodule: Add test cases for git submodule add Michael J Gruber
2009-02-25 13:26                   ` [PATCHv2 2/4] git submodule: Fix adding of submodules at paths with ./ Michael J Gruber
2009-02-25 13:26                     ` [PATCHv2 3/4] git submodule: Add more tests for add with funky paths Michael J Gruber
2009-02-25 13:26                       ` [PATCHv2 4/4] git submodule: Fix handling of // and /.. in paths for added submodules Michael J Gruber
2009-02-25 14:06                         ` Johannes Sixt
2009-02-25 14:33                           ` Michael J Gruber
2009-02-25 15:03                             ` Johannes Sixt
2009-02-25 21:25                               ` Junio C Hamano [this message]
2009-02-26  9:05                                 ` Michael J Gruber
2009-02-26 17:04                                   ` Junio C Hamano
2009-03-03 12:39                                     ` [PATCHv3 0/2] git submodule: normalize paths before adding Michael J Gruber
2009-03-03 12:39                                       ` [PATCHv3 1/2] git submodule: Add test cases for git submodule add Michael J Gruber
2009-03-03 12:39                                         ` [PATCHv3 2/2] git submodule: Fix adding of submodules at paths with ./, .. and // Michael J Gruber
2009-03-03 13:08                                           ` Johannes Sixt
2009-03-03 14:09                                             ` Michael J Gruber
2009-03-03 15:08                                               ` [PATCHv4 0/2] git submodule: normalize paths before adding Michael J Gruber
2009-03-03 15:08                                                 ` [PATCHv4 1/2] git submodule: Add test cases for git submodule add Michael J Gruber
2009-03-03 15:08                                                   ` [PATCHv4 2/2] git submodule: Fix adding of submodules at paths with ./, .. and // Michael J Gruber
2009-03-03 15:28                                                     ` Johannes Sixt
2009-03-03 15:39                                                       ` Michael J Gruber
2009-03-03 16:32                                                 ` [PATCHv4 0/2] git submodule: normalize paths before adding Junio C Hamano
2009-03-03 15:36                                             ` [PATCHv3 2/2] git submodule: Fix adding of submodules at paths with ./, .. and // Junio C Hamano
2009-03-03 15:48                                               ` Michael J Gruber
2009-03-03 14:29                                           ` Johannes Schindelin
2009-03-03 14:58                                             ` Michael J Gruber
2009-02-25 21:25               ` [PATCH 2/2] git submodule: Fix adding of submodules at paths with ./ Junio C Hamano
2009-02-25 21:24       ` [PATCH 1/2] git submodule: Add test cases for git submodule add Junio C Hamano

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=7v1vtm1a6b.fsf@gitster.siamese.dyndns.org \
    --to=gitster@pobox$(echo .)com \
    --cc=garoth@gmail$(echo .)com \
    --cc=git@drmicha$(echo .)warpmail.net \
    --cc=git@vger$(echo .)kernel.org \
    --cc=j.sixt@viscovery$(echo .)net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox