Merge procedure creates bogus Perforce branch locations #96
Labels
git-migration
Project migration from Ravenbrook internal Perforce infrastructure to public git repo
optional
Will cause failures / of benefit. Worth assigning resources.
process
To do with process or procedure
Milestone
At some point we gained a bogus top-level directory in Perforce at //info.ravenbrook.com/project/mps/save-errno-win32. How'd that happen? It's something that's very hard to correct. How do we prevent it happening again?
Basically, this happened because a branch was pushed that did not conform to the branch/DATE/TOPIC naming convention. Git Fusion is mapping branch names to Perforce directories relative to //info.ravenbrook.com/project/mps, so if a branch is pushed called "foo" it'll end up at //info.ravenbrook.com/project/mps/foo/...
Here's how I found out what happened and my hypothesis of the steps that led to this.
The branch was created by Git Fusion and changes within it belong to the placeholder user "unknown_git":
When Git Fusion creates a branch like this, it updates the configuration for the repo, so we can track it down there:
So we can see that this was caused by a merge of a third-party pull request by @gareth-rees :
This explains the "unknown_git" changes: they were made by @fstromback .
@fstromback's branch was imported into the git repo and can be see at https://github.com/Ravenbrook/mps/tree/save-errno-win32. How'd that happen?
There is no pull request by @fstromback by searching https://github.com/Ravenbrook/mps/pulls?q=is%3Apr+fstromback
This is where we can see flaws in GitHub's system. How do we track this down? Searching for a branch name in the pull requests does not reveal them. (I tested with some known ones.) I just had to make some guesses and found #62
That pull request resulted in a merge of a branch from a fork of the MPS at https://github.com/fstromback/mps/tree/save-errno-win32 .
Somehow (probably GitHub's default behaviour via the GUI) this created a branch of the same name in Ravenbrook's repo at https://github.com/Ravenbrook/mps/tree/save-errno-win32.
From there I think @gareth-rees followed his procedure and at step 7 did
git push ravenbrook master "$BRANCH”
at which point Git Fusion created //info.ravenbrook.com/project/mps/save-errno-win32.The text was updated successfully, but these errors were encountered: