Hi all,
Today I successfully converted my fork of the enzo repository to git using hg-git:
This was created based on my fork of enzo, not the main repo, so there are branches that correspond to bookmarks tracking development in my fork.
It should be very straightforward to set up a mirror of the enzo/enzo-dev bitbucket repo on github. If someone wants to give me push access to Enzo's github org I can go ahead and create that mirror. It would be less straightforward to set up a mirror bot. Given the relatively low commit traffic in the main enzo repo I'd rather not do that unless someone really wants it for some reason.
I'd like to make sure we're on the same page about the branch structure we'll have on github in the main repo. Here's what I'm planning to do:
$ cd enzo-dev
$ hg update stable
$ hg bookmark stable
$ hg update week-of-code
$ hg bookmark master
That is, we'll be creating a new repo at
https://github.com/enzo-project/enzo. It will have two branches named "stable" and "master" based on the current content of the stable and week-of-code mercurial branches, respectively.
I could also export all the other branches that are currently in the repo. I guess some of these are useful beyond for historical purposes and code archeology? In practice I think keeping all of them in the main repo is just confusing. I'd appreciate it if anyone who has strong feelings about branches besides week-of-code and stable could let me know what they want to do with the branches.
If you'd like to export WIP stuff you have in mercurial to git, you would need to set up a mercurial installation with hg-git installed. It looks like there's an issue with the latest version of the dulwich library (a pure-python git implementation used by hg-git) in hg-git, so make sure you have dulwich 0.18.3 installed as well as the latest version of the hg-git extension from the mercurial repository on bitbucket:
Once you have hg-git installed, just create a bookmark on the tipmost commit of your WIP work. If you have more than one WIP line of development that you'd like to export to git then you'll need to make unique bookmarks on each branch. Next create a fork of the main enzo repository *on github* (note that this repo doesn't exist yet) and push to your fork like so:
If you don't have ssh auth set up on github, push like this:
Hope that's helpful for speeding along the transition. I think ideally we'd like to switch to github soon so we don't lose the momentum and excitement we built up at the workshop :)
-Nathan