From: Hilco Wijbenga <hilco.wijbenga@gmail.com>
To: Eric Sunshine <sunshine@sunshineco.com>
Cc: Git List <git@vger.kernel.org>,
Johannes Schindelin <Johannes.Schindelin@gmx.de>,
Junio C Hamano <gitster@pobox.com>,
Phillip Wood <phillip.wood@talktalk.net>,
Akinori MUSHA <knu@idaemons.org>
Subject: Re: [PATCH v2 0/4] fix "rebase -i --root" corrupting root commit
Date: Mon, 6 Aug 2018 18:19:38 -0700 [thread overview]
Message-ID: <CAE1pOi3+FW8itk4AHhG+r02TGyGTeoZpq7S6HKXkQtOVqigWGQ@mail.gmail.com> (raw)
In-Reply-To: <CAPig+cRe1R1YWpLaXVtTmwhaJiz2dONU83qtn_+XhaRevjn2fQ@mail.gmail.com>
On Tue, Jul 31, 2018 at 11:22 PM, Eric Sunshine <sunshine@sunshineco.com> wrote:
> On Tue, Jul 31, 2018 at 9:30 PM Hilco Wijbenga <hilco.wijbenga@gmail.com> wrote:
>> On Tue, Jul 31, 2018 at 12:33 AM, Eric Sunshine <sunshine@sunshineco.com> wrote:
>> > This is a re-roll of [1] which fixes sequencer bugs resulting in commit
>> > object corruption when "rebase -i --root" swaps in a new commit as root.
>> > Unfortunately, those bugs made it into v2.18.0 and have already
>> > corrupted at least one repository (a local project of mine). Patches 3/4
>> > and 4/4 are new.
>>
>> Does this also fix losing the initial commit if it is empty?
>>
>> git init ; git commit -m 'Initial commit' --allow-empty ; touch
>> file.txt ; git add file.txt ; git commit -m 'Add file.txt' ; git
>> rebase --root
>>
>> I would expect there to be 2 commits but the first one has
>> disappeared. (This usually happens with "git rebase -i --root" early
>> on in a new project.)
>
> This series should have no impact on that issue; it is fixing root
> commit object corruption, and does not touch or change how the commit
> graph is maintained or how the rebasing machinery itself works (and
> the --allow-empty stuff is part of that machinery).
>
> As Dscho is cc:'d already, perhaps he can chime in as a resident expert.
>
> By the way, what happens if you use --keep-empty while rebasing?
I was not aware of that flag. But, although I was expecting it to, if
I use it with the rebase, I don't see any different behaviour. I can't
really make out what its purpose is from "Keep the commits that do not
change anything from its parents in the result.".
But your suggestion did make me think about what behaviour I would
like to see, exactly. I like that Git removes commits that no longer
serve any purpose (because I've included their changes in earlier
commits). So I would not want to keep commits that become empty during
the rebase. What I would like to see is that commits that _start out_
as empty, are retained. Would such behaviour make sense? Or would that
be considered surprising behaviour?
next prev parent reply other threads:[~2018-08-07 1:20 UTC|newest]
Thread overview: 57+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-07-31 7:33 [PATCH v2 0/4] fix "rebase -i --root" corrupting root commit Eric Sunshine
2018-07-31 7:33 ` [PATCH v2 1/4] sequencer: fix "rebase -i --root" corrupting author header Eric Sunshine
2018-07-31 7:33 ` [PATCH v2 2/4] sequencer: fix "rebase -i --root" corrupting author header timezone Eric Sunshine
2018-07-31 9:50 ` Phillip Wood
2018-07-31 10:15 ` Eric Sunshine
2018-07-31 7:33 ` [PATCH v2 3/4] sequencer: fix "rebase -i --root" corrupting author header timestamp Eric Sunshine
2018-07-31 10:00 ` Phillip Wood
2018-07-31 10:30 ` Eric Sunshine
2018-07-31 7:33 ` [PATCH v2 4/4] sequencer: don't die() on bogus user-edited timestamp Eric Sunshine
2018-07-31 10:02 ` Phillip Wood
2018-07-31 10:38 ` Eric Sunshine
2018-07-31 10:05 ` [PATCH v2 0/4] fix "rebase -i --root" corrupting root commit Phillip Wood
2018-07-31 10:46 ` Eric Sunshine
2018-07-31 11:19 ` Phillip Wood
2018-07-31 11:27 ` Eric Sunshine
2018-07-31 11:15 ` [PATCH v2 0/2] Fix author script quoting Phillip Wood
2018-07-31 11:15 ` [PATCH v2 1/2] sequencer: handle errors in read_author_ident() Phillip Wood
2018-07-31 20:47 ` Eric Sunshine
2018-08-01 9:28 ` Phillip Wood
2018-07-31 11:15 ` [PATCH v2 2/2] sequencer: fix quoting in write_author_script Phillip Wood
2018-07-31 21:39 ` Eric Sunshine
2018-08-01 10:24 ` Phillip Wood
2018-08-01 15:22 ` Junio C Hamano
2018-08-01 15:50 ` Phillip Wood
2018-08-01 19:19 ` Eric Sunshine
2018-08-01 1:30 ` [PATCH v2 0/4] fix "rebase -i --root" corrupting root commit Hilco Wijbenga
2018-08-01 6:22 ` Eric Sunshine
2018-08-07 1:19 ` Hilco Wijbenga [this message]
2018-08-07 3:31 ` Eric Sunshine
2018-08-07 21:09 ` Junio C Hamano
2018-08-27 22:34 ` Johannes Schindelin
2018-08-01 23:25 ` brian m. carlson
2018-08-02 8:09 ` Eric Sunshine
2018-08-02 11:20 ` [PATCH v3 0/2] Fix author script quoting Phillip Wood
2018-08-02 11:20 ` [PATCH v3 1/2] sequencer: handle errors in read_author_ident() Phillip Wood
2018-08-03 7:09 ` Eric Sunshine
2018-08-03 15:53 ` Junio C Hamano
2018-08-02 11:20 ` [PATCH v3 2/2] sequencer: fix quoting in write_author_script Phillip Wood
2018-08-02 17:27 ` Junio C Hamano
2018-08-03 7:59 ` Eric Sunshine
2018-08-03 9:33 ` Phillip Wood
2018-08-03 10:02 ` Eric Sunshine
2018-08-03 14:12 ` Phillip Wood
2018-08-07 17:20 ` Junio C Hamano
2018-08-07 9:34 ` [PATCH v4 0/2] fix author-script quoting Phillip Wood
2018-08-07 9:34 ` [PATCH v4 1/2] sequencer: handle errors from read_author_ident() Phillip Wood
2018-08-08 9:43 ` Eric Sunshine
2018-08-07 9:34 ` [PATCH v4 2/2] sequencer: fix quoting in write_author_script Phillip Wood
2018-08-07 10:23 ` Eric Sunshine
2018-08-07 13:54 ` Phillip Wood
2018-08-08 8:43 ` Eric Sunshine
2018-08-08 16:01 ` Junio C Hamano
2018-08-09 10:06 ` Phillip Wood
2018-08-09 10:08 ` Phillip Wood
2018-08-08 9:39 ` Eric Sunshine
2018-08-09 10:11 ` Phillip Wood
2018-08-08 9:51 ` [PATCH v4 0/2] fix author-script quoting Eric Sunshine
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
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CAE1pOi3+FW8itk4AHhG+r02TGyGTeoZpq7S6HKXkQtOVqigWGQ@mail.gmail.com \
--to=hilco.wijbenga@gmail.com \
--cc=Johannes.Schindelin@gmx.de \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=knu@idaemons.org \
--cc=phillip.wood@talktalk.net \
--cc=sunshine@sunshineco.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.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).