Re: [PATCH 2/3] transport.c: introduce core.alternateRefsCommand
- From
Taylor Blau <me@ttaylorr.com>
- Date
- Sep 21, 2018, 17:57 UTC
- Message-ID
- <20180921175739.GA21514@syl>
- In-Reply-To
- <20180921174825.GA17718@syl>
On Fri, Sep 21, 2018 at 01:48:25PM -0400, Taylor Blau wrote:
Show 23 quoted lines
> On Fri, Sep 21, 2018 at 09:39:14AM -0700, Junio C Hamano wrote:
> > Taylor Blau <ttaylorr@github.com> writes:
> >
> > > +extract_haves () {
> > > + depacketize - | grep -o '^.* \.have'
> >
> > Not portable, isn't it?
> >
> > cf. http://pubs.opengroup.org/onlinepubs/9699919799/utilities/grep.html
>
> Good catch. Definitely not portable, per the link that you shared above.
>
> Since 'depacketize()' will give us a "\0", we can pull it and anything
> after it out with 'sed', instead. Any lines that don't contain a "\0"
> only contain an OID and the literal, ".have", and are fine as-is.
>
> Something like this:
>
> extract_haves () {
> depacketize - | grep '^.* \.have' | sed -e 's/\\0.*$//g'
> }
>
> Harder to read--at least for me--but infinitely more portable.In fact, I think that we can go even further: since we don't need to catch the beginning '^.*' (without -o), we can instead:
extract_haves () {
depacketize - | grep '\.have' | sed -e 's/\\0.*$//g'
}Thanks, Taylor