Almost all Eclipse Git repositories are mirrored at GitHub. The mirrors were initially set up two years ago by the nice folks at GitHub with relatively little input from us. I provided a simple script–which lists all of our repositories in very simple CSV format–that was used to create the original set of mirrors and is occasionally used to update the mirrors. That is, every once-in-a-while, I ask the good people at GitHub to run their script which invokes my script to create any newly-added repositories to the list of mirrors. It’s a service that GitHub provides; it’s not supported by the Eclipse Foundation’s Webmaster team.
The script that generates the list of Git repositories at eclipse.org uses information gathered by Dash. Eclipse committers don’t have to do anything to make this happen: if you create a Git repository, it gets mirrored (eventually) on GitHub. It will also be automatically mirrored on Google Source.
We do draw attention to the mirrors. If a mirror exists for a Git repository, the project information pages will provide a link. Similar links are provided for Google Source mirrors.
There are some problems with the mirrors.
Mirroring repositories was something that GitHub set up in the early days, but it isn’t a first class service and the mirrors aren’t fully supported. The repositories themselves seem to stay up-to-date (within a few minutes), but the corresponding web sites on GitHub tend to be days and weeks behind (it’s not clear when/how they update). Unfortunately, this leaves an impression that the project is inactive. This is a pretty big problem because we see the GitHub mirrors as an opportunity to encourage additional contribution; with out-of-date web pages, I fear that the opposite is happening.
GitHub has no current plans to fix this problem. This presents us with an opportunity to rethink how GitHub mirrors are done.
The preferred means of making this happen, as far as I know, is to create a repository on GitHub and then push the contents of the eclipse.org repository into it. Unfortunately, there is currently no automated means of doing this. As far as I know, GitHub provides no mechanism to schedule a regular pull (correct me if I’m wrong), which means that it would become our responsibility to push to the GitHub clone.
This is where I’m going to need a little help. I’m pretty sure that it’s possible to create a git hook that can be installed into the git.eclipse.org Git repository that will automatically push to a remote repository on commit. Perhaps it makes sense to have the hook push to all remotes known to the repository, not just GitHub. Having this sort of hook would give projects the power to decide what they want to do; they would have control over whether or not the repository is automatically replicated and where.
Please add your comments on Bug 402183.