All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jeff King <peff@peff.net>
To: Phillip Wood <phillip.wood123@gmail.com>
Cc: Junio C Hamano <gitster@pobox.com>,
	aleksandrs@ledovskis.lv,
	Johannes Schindelin <Johannes.Schindelin@gmx.de>,
	Espen Antonsen <espen@inspired.no>,
	git@vger.kernel.org
Subject: Re: Git status parse error after v.2.22.0 upgrade
Date: Thu, 13 Jun 2019 15:00:37 -0400	[thread overview]
Message-ID: <20190613190037.GA27217@sigill.intra.peff.net> (raw)
In-Reply-To: <8981e6c8-eb20-fde7-2b4c-1fbf2057caef@gmail.com>

On Thu, Jun 13, 2019 at 06:43:41PM +0100, Phillip Wood wrote:

> >>  (2) make the sequencer machinery more careful to clean up after it
> >>      is done or it is aborted  (for example, "git reset --hard"
> >>      could remove these state files preemptively even when a rebase
> >>      is not in progress, I would think).
> >>
> >> I think we already had some patches toward the latter recently.
> > 
> > Maybe I am not understanding it correctly, but do you mean in (2) that
> > "git reset --hard" would always clear sequencer state?
> 
> I think the commit Junio is referring to is
> b07d9bfd17 ("commit/reset: try to clean up sequencer state", 2019-04-16)
> which will only remove the sequencer directory if it stops after the
> pick was the last one in the series. The idea is that if cherry-pick
> stops for a conflict resolution on the last pick user commits the result
> directly or run reset without running `cherry-pick --continue`
> afterwards the sequencer state gets cleaned up properly.

OK, that makes a lot more sense to me. It did make me wonder if doing an
"e"dit on the final commit of a rebase followed by "reset HEAD^" would
clear the sequencer state. But looking at that commit, this kicks in
only for the cherry-pick and revert cases.

Thanks for explaining.

> If we do want to do something then maybe teaching gc not to collect
> commits listed in .git/sequencer/todo and
> .git/rebase-merge/git-rebase-todo would be useful.

IMHO that opens up a can of worms, because the reachability rules get
more complicated (so for example people trying to prune away unwanted
history get confused about what is still mentioning the objects). That's
a reasonable rare case. OTOH, so is mentioning commits in an ongoing
rebase that are not still reachable from the branch you are rebasing,
nor the HEAD reflog.

-Peff

  reply	other threads:[~2019-06-13 19:00 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-06-11 12:58 Git status parse error after v.2.22.0 upgrade Espen Antonsen
2019-06-11 19:28 ` Johannes Schindelin
2019-06-12 12:47   ` Espen Antonsen
2019-06-12 18:47     ` Johannes Schindelin
2019-06-13  9:30       ` aleksandrs
2019-06-13 16:05         ` Junio C Hamano
2019-06-13 16:24           ` Jeff King
2019-06-13 17:43             ` Phillip Wood
2019-06-13 19:00               ` Jeff King [this message]
2019-06-25 13:25               ` Phillip Wood
2019-06-13 16:58           ` SZEDER Gábor
2019-06-13 17:11           ` Aleksandrs Ļedovskis

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190613190037.GA27217@sigill.intra.peff.net \
    --to=peff@peff.net \
    --cc=Johannes.Schindelin@gmx.de \
    --cc=aleksandrs@ledovskis.lv \
    --cc=espen@inspired.no \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=phillip.wood123@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.