GitHub/Gecko Repositories: Difference between revisions

describe new central/CVS history integration in mozilla/gecko
(update structure of page)
(describe new central/CVS history integration in mozilla/gecko)
Line 19: Line 19:
== mozilla/gecko ==
== mozilla/gecko ==


mozilla/gecko is a mirror of a single Mercurial repository: mozilla-central. It doesn't include CVS history, nor does it include other Mercurial repositories (aurora, inbound, etc.). Its "central" branch is read-only, but Gecko developers are welcome to create and commit to other branches in the repo. It's maintained by [https://mozillians.org/en-US/u/myk/ Myk Melez] and is synchronized manually via Git and [https://github.com/glandium/git-cinnabar git-cinnabar] daily on weekdays and occasionally on weekends.
mozilla/gecko is a mirror of a single Mercurial repository, mozilla-central as well as CVS history (in the "cvs" branch). It doesn't include other Mercurial repositories (aurora, inbound, etc.). Its "central" branch is read-only, but Gecko developers are welcome to create and commit to other branches in the repo. It's maintained by [https://mozillians.org/en-US/u/myk/ Myk Melez] and is synchronized manually via Git and [https://github.com/glandium/git-cinnabar git-cinnabar] daily on weekdays and occasionally on weekends.


Myk created mozilla/gecko because he was synchronizing mozilla-central to a Git repo using git-cinnabar for his own development, and he thought it might be helpful for other developers who want to clone a Gecko repo that is smaller than gecko-dev and/or use git-cinnabar to interact with a Mercurial repo. He hasn't publicized it or otherwise explored the extent to which it's helpful, and it might in fact be better for such developers to clone mozilla-central via git-cinnabar directly.
Myk created mozilla/gecko because he was synchronizing mozilla-central to a Git repo using git-cinnabar for his own development, and he thought it might be helpful for other developers who want to clone a Gecko repo that is smaller than gecko-dev and/or use git-cinnabar to interact with a Mercurial repo.
 
=== Integrating mozilla-central and CVS History ===
 
mozilla/gecko integrates the mozilla-central and CVS histories via Git replace. To traverse the combined history of those repos, clone/fetch mozilla/gecko, then fetch replacement refs via this command:
 
<code>git fetch origin 'refs/replace/*:refs/replace/*'</code>
 
(Replace "origin" with the name of your mozilla/gecko remote, if it differs.)
 
Then common Git commands (diff, log, bisect, etc.) will behave as if the oldest commit on the "central" branch (e18f9a3) is the newest commit on the "cvs" branch (3ec464b), and you can traverse history accordingly.
 
=== Using mozilla/gecko With try/inbound ===
 
Note that cloning mozilla/gecko doesn't fetch git-cinnabar metadata, so you can't use it to push to Mercurial repositories like try and inbound unless you also fetch mozilla-central using git-cinnabar. Thus, for developers that need to push to such repos, it's better to clone mozilla-central via git-cinnabar directly (unless you need CVS history).
 
(This may change with git-cinnabar 0.5.0, which is in beta as of this writing.)
canmove, Confirmed users
2,056

edits