Re: [Gc] Cmake and contribution model (Git)
ivmai at mail.ru
Mon Aug 1 04:55:45 PDT 2011
Hi Hans and Nicola,
> Nicola Brisotto wrote:
> > So my real question is: why don't you move to git?
> > A lot of open-source project are using git, it enable an easier contribution model. Give a look at gitorious.org, people can branch and then send you a merge request and you don't need patch anymore.
> > There are script that help to import a cvs repository. I'm not an expert of cvs but I could help you to move to git.
> IMHO, git is a tool not an aim, so while there is a small group of people contributing to the project, it's not, probably, forth moving to git. (At the mean time, recently we have a problem with a CVS folder renaming which we wouldn't have if the project had already been git'ed.)
> I'd probably favor sticking with cvs for now, since I think that's what most of us are familiar with. (Svn seems close enough for experience to mostly carry over.) If we did want to switch to a git-like model, I've also heard arguments for Mercurial recently, but don't have any experience with it.
I finally created a git clone of our cvs. Git, as a distributed CRM system, looked to me to be a bit convenient to operate with branches and process 3rd-party patches. I've chosen github (vs gitorious) server as more popular. (It shouldn't be difficult to move the repo to some other eg. back to sourceforge in the future.)
I haven't compared Git with Hg.
Besides, cloning the repo with the full history, I've:
1. split it into 2 projects - libatomic_ops and bdwgc itself (the latter lacks libatomic_ops folder);
2. added gc6x-branch (comprised of official pre-v7 releases);
2. added major downstream forks - mono_libgc and gcc_boehmgc branches originated from gc6x-branch (to simplify comparison and merging into upstream). (Although, I don't know how I'll update these branches from their origins.)
"release" branch contains the latest official release (either alpha or final).
Tags: every official release has the corresponding tag, e.g. libatomic_ops-7_2alpha6, gc7_2alpha6.
libatomic_ops - https://github.com/ivmai/libatomic_ops/
bdwgc - https://github.com/ivmai/bdwgc/
Currently, to make bdwgc work, libatomic_ops tree should be inside bdwgc tree. Eg.:
git clone git://github.com/ivmai/libatomic_ops.git
git clone git at github.com:ivmai/bdwgc.git
ln -s ~/libatomic_ops ~/bdwgc/libatomic_ops
About maintaining CVS: I think it's worth to keep CVS in sync with Git for a while.
1. Old, traditional approach - send me a diff file (git diff master);
2. A new one - send me a pull(merge) request.
More information about the Gc