Re: [PATCH] pull: do not segfault when HEAD refers to missing object file
- From
Jeff King <peff@peff.net>
- Date
- Mar 6, 2017, 03:51 UTC
- Message-ID
- <20170306035152.c7bh5jiqrfncyudl@sigill.intra.peff.net>
- In-Reply-To
- <20170305235222.vxia7jw2n5uj2h2e@genre.crustytoothpaste.net>
On Sun, Mar 05, 2017 at 11:52:22PM +0000, brian m. carlson wrote:
Show 14 quoted lines
> On Mon, Mar 06, 2017 at 12:42:22AM +0100, André Laszlo wrote:
> > +test_expect_success 'git pull --rebase with corrupt HEAD does not segfault' '
> > + mkdir corrupted &&
> > + (cd corrupted &&
> > + git init &&
> > + echo one >file && git add file &&
> > + git commit -m one &&
> > + REV=$(git rev-parse HEAD) &&
> > + rm -f .git/objects/${REV:0:2}/${REV:2} &&
>
> I think this is a bashism. On dash, I get the following:
>
> genre ok % dash -c 'foo=abcdefg; echo ${foo:0:2}; echo ${foo:2}'
> dash: 1: Bad substitutionYeah, it is. You can do it easily with 'sed', of course, but if you want to avoid the extra process and do it in pure shell, it's more like:
last38=${REV#??}
first2=${REV%$last38}
rm -f .git/objects/$first2/$last38-Peff