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

Re: Git status parse error after v.2.22.0 upgrade

From
SZEDER Gábor <szeder.dev@gmail.com>
Date
Jun 13, 2019, 16:58 UTC
Message-ID
<20190613165833.GD31952@szeder.dev>
In-Reply-To
<xmqqr27xwjwj.fsf@gitster-ct.c.googlers.com>
On Thu, Jun 13, 2019 at 09:05:16AM -0700, Junio C Hamano wrote:
Show 20 quoted lines
> aleksandrs@ledovskis.lv writes:
> 
> > My repo indeed contains a ".git/sequencer/todo" file which
> > contains references to commits long-gone (i.e., rebased).
> > Renaming or deleting this file stops whines about "error: could
> > not parse".
> 
> Interesting.  So in short, when the repository has leftover
> sequencer state file that is not in use, "git status parse" thing
> (whatever it is---are you getting it when you run "git status"
> command???)---is not careful enough to notice that it does not
> matter even if that leftover file is unusable.
> 
> Two issues "the sequencer" folks may want to address are
> 
>  (1) make the one that reads an irrelevant/stale 'todo' file more
>      careful to ignore errors in such a file;
> 
>  (2) make the sequencer machinery more careful to clean up after it
>      is done or it is aborted

It may or may not be related, but... Some weeks (months?) ago I run into a situation where 'git rebase' didn't clean up after itself following a well-timed ctrl-C, and got confused to the point that not even a subsequent 'git rebase --abort' was able to rectify the situation.

So, I wanted to rebase just a couple of commits to somewhere else, but messed up the command's parameters, and it then tried to rebase a couple hundred commits. Upon noticing the unexpectedly large numbers in the "Generating patches" progress line I hit ctrl-C, and then the aborting 'git rebase' apparently left an incomplete/corrupted '.git/rebase-apply/' directory behind. Unfortunately I didn't think about saving the precious corrupted state, and deleted that dir right away... only saved the transcript from the terminal later:

  ~/src/git (test-atexit)$ git rebase js/test-atexit 
  First, rewinding head to replay your work on top of it...
  Generating patches: 100% (509/509), done.
  ^C
  ~/src/git ((42e6cb0046...)|REBASE 1/509)$ gitk js/test-atexit 
  ~/src/git ((42e6cb0046...)|REBASE 1/509)$ git rebase --abort 
  error: could not read '.git/rebase-apply/head-name': No such file or directory
  ~/src/git ((42e6cb0046...)|REBASE 1/509)$ git reset --hard
  HEAD is now at 42e6cb0046 git-p4: use `test_atexit` to kill the daemon
  ~/src/git ((42e6cb0046...)|REBASE 1/509)$ rm -rf .git/re
  rebase-apply/    rebased-patches  refs/            
  ~/src/git ((42e6cb0046...)|REBASE 1/509)$ rm -rf .git/rebase-apply/
  ~/src/git ((42e6cb0046...))$ git checkout -
Previous: Phillip WoodNext: Aleksandrs Ļedovskis
Message 11 of 12 in “Git status parse error after v.2.22.0 upgrade”
  1. Espen AntonsenJun 11, 2019
  2. Johannes SchindelinJun 11, 2019
  3. Espen AntonsenJun 12, 2019
  4. Johannes SchindelinJun 12, 2019
  5. aleksandrs@ledovskis.lvJun 13, 2019
  6. Junio C HamanoJun 13, 2019
  7. Jeff KingJun 13, 2019
  8. Phillip WoodJun 13, 2019
  9. Jeff KingJun 13, 2019
  10. Phillip WoodJun 25, 2019
  11. SZEDER GáborJun 13, 2019
  12. Aleksandrs ĻedovskisJun 13, 2019

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.