Skip to content

WIP: Revert unsound optimization to merge_branches

Eric - I've put WIP on this as I'm not 100% confident in it. Would be grateful if you could run the test suite on it and see if you get any regressions. I've lost track of which tests are supposed to pass and which aren't.

See github issue 8 - Exporting an RCS archive with commitids does not coalesce changesets by commitid.

Reverts commit 13968875.

Reverting a commit with ~250 subsequent commits (including merge commits) is an interesting challenge.

General approach is to make sure your master branch is up to date with upstream then go back to the commit before the offender, and branch from there

git checkout 13968875~1 git checkout -b repair

cherry pick everything on master since (ignoring merge commits). If you have merges where the branches diverged before the problem this might not work. It didn't apply in this case.

git cherry-pick 13968875..master --no-merges

Note, this doesn't apply the first commit.

Every time you get a merge conflict then fix it (following instructions for empty commits). Run the test suite, then continue with the cherry pick

make check git cherry-pick --continue

When you get to the end, then create a branch for pushing

git checkout master git checkout -b revert-merge-branch

Apply the diff between the two

git diff revert-merge-branch repair | git apply

One more test run then commit and push...

Merge request reports