After careful consideration, and some experimentation, this is the
best plan as I see it:

The last commit we have in ASF master right now
(c66d23a5ac65ec5218ee47134aea423fd62a32cc) is not one that we wish to
keep. It's basically the correct commit content-wise, but the message
and hence hash are wrong and needlessly conflict with Gerrit's proper
version (900bf1345410264e9b48469da93ccbd831920d2e). Resolving the
issue by rewinding or restoring Gerrit from backup would involve both
rewriting history on Gerrit's master branch by rewinding it and
cherry-picking commits onto it, and ugly surgery to Gerrit's internal
database. Therefore a force push to ASF git to overwrite the incorrect
commit, with the correct commit that currently resides in Gerrit's
master, is likely the least painful option.

The only complicating fact of course, is if anyone has pulled c66d23a5
to their master branch, or merged it into any feature branches. For
the former case, just performing a git reset --HARD to master once the
force-update is performed should suffice. For the latter case, some
less simple git-fu will probably be in order (checking out to last
common ancestor, then re-merging would likely be simplest).

I'm open to thoughts/suggestions/objections. Rewriting history in git
is not something to be taken lightly, so I want to be sure everyone's
in agreement and aware of what's going to happen.

- Ian



On Mon, Jul 13, 2015 at 3:47 PM, Ian Maxon <[email protected]> wrote:
> Hi Jochen,
>
> We use Gerrit as a code review platform. It works pretty well I would
> say. The way we had it set up at one point pre-incubation (which was
> preferable, and AFAIK impossible in ASF) was that nobody could
> directly commit to the "reference" repository. It had to go through
> Gerrit, and be reviewed and verified, and then submitted. The reason
> for this mixup is that now folks have to take the commits from Gerrit,
> and submit them to the ASF repo outside of Gerrit, instead of it being
> a commit hook. As with anything git, this part is kind of like working
> with a loaded gun. We have a script that makes this easier and less
> error-prone, but there's a corner case apparently where where one can
> submit things that aren't actually verified in Gerrit (or the script
> wasn't used, not sure which).
>
> - Ian
>
> On Mon, Jul 13, 2015 at 3:33 PM, Jochen Wiedmann
> <[email protected]> wrote:
>> Hi, Ian,
>>
>> the information that I read from your mail is that there are currently
>> two Git repositories in use: One being the "official apache
>> repository", the other being the repository with the "Gerrit master
>> branch".
>>
>> Is that impression correct? If so, what are the reasons? And what can
>> we do to fix that?
>>
>> Thanks,
>>
>> Jochen
>>
>>
>> On Mon, Jul 13, 2015 at 9:01 PM, Ian Maxon <[email protected]> wrote:
>>> Hey all,
>>> If you haven't pulled from
>>> https://git-wip-us.apache.org/repos/asf?p=incubator-asterixdb.git
>>> (i.e. asterixdb's official apache repository) lately, please don't
>>> until you get an email giving the all-clear. Same goes for submitting
>>> and merging patches from Gerrit. Something inadvertently got committed
>>> to the head of the ASF master branch, which does not exactly agree
>>> with the head of Gerrit's master branch, so they are diverged at the
>>> moment.
>>>
>>> Additionally, if in your AsterixDB repository, 'git rev-parse
>>> asf/master' returns c66d23a5ac65ec5218ee47134aea423fd62a32cc , please
>>> reply to this so we know who might be affected. This means you have
>>> the latest from the ASF repository- which we may have to force-push
>>> and overwrite the latest commit from.
>>>
>>> Thanks,
>>> -Ian
>>
>>
>>
>> --
>> Any world that can produce the Taj Mahal, William Shakespeare,
>> and Stripe toothpaste can't be all bad. (C.R. MacNamara, One Two Three)

Reply via email to