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

Re: [PATCH 2/2] fsck: report errors if reflog entries point at invalid objects

From
Jeff King <peff@peff.net>
Date
Jun 8, 2015, 16:56 UTC
Message-ID
<20150608165643.GA6863@peff.net>
In-Reply-To
<c5720357601be135485ef546cae7ffdb@www.dscho.org>
On Mon, Jun 08, 2015 at 06:00:09PM +0200, Johannes Schindelin wrote:
Show 11 quoted lines
> >> I like the idea, but I am a bit uncertain whether it would constitute
> >> "too backwards-incompatible" a change to make this an error. I think
> >> it could be argued both ways: it *is* an improvement, but it could
> >> also possibly disrupt scripts that work pretty nicely at the moment.
> > 
> > What kind of script are you worried about?
> 
> I was concerned about scripts that work on repositories whose reflogs
> become inconsistent for whatever reason (that happened a lot to me in
> the past, IIRC it had something to do with bare repositories and/or
> shared object databases).

I think these repositories are already broken. You cannot run `git gc` in such a repository, as it will barf when trying to walk the reflog tips during `git repack`.

We run into this exact situation at GitHub because of our shared object databases. Our per-fork repack code basically has to do:

  if ! git repack ...; then
    git reflog expire --expire-unreachable=all --all &&
    git repack ... ||
    die "ok, it really is broken"
  fi
-Peff
Previous: Johannes SchindelinNext: Johannes Schindelin
Message 10 of 11 in “fsck: don't ignore broken reflog entries”
  1. 0/2 fsck: don't ignore broken reflog entriesMichael Haggerty, Jun 8, 2015
  2. 1/2 fsck_handle_reflog_sha1(): new functionMichael Haggerty, Jun 8, 2015
  3. Johannes SchindelinJun 8, 2015
  4. Junio C HamanoJun 8, 2015
  5. Michael HaggertyJun 8, 2015
  6. 2/2 fsck: report errors if reflog entries point at invalid objectsMichael Haggerty, Jun 8, 2015
  7. Johannes SchindelinJun 8, 2015
  8. Michael HaggertyJun 8, 2015
  9. Johannes SchindelinJun 8, 2015
  10. Jeff KingJun 8, 2015
  11. Johannes SchindelinJun 8, 2015

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.