git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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 substitution

Yeah, 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
Previous: brian m. carlsonNext: Johannes Sixt
Message 3 of 6 in “pull: do not segfault when HEAD refers to missing object file”
  1. pull: do not segfault when HEAD refers to missing object fileAndré Laszlo, Mar 5, 2017
  2. brian m. carlsonMar 5, 2017
  3. Jeff KingMar 6, 2017
  4. Johannes SixtMar 6, 2017
  5. Jeff KingMar 6, 2017
  6. Jeff KingMar 6, 2017

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.