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 -