Help structuring a project
Jamie Webb
j at jwebb.sygneca.com
Sat Nov 10 18:23:58 UTC 2007
Hello all.
I've been using Darcs for some years, but I'm looking at using
Mercurial for a project that I'm currently setting up. It's a community
library for the Scala language, vaguely along the same lines as C++
Boost.
This differs from a 'typical' project in that the emphasis is not so
much on writing new code, but on collection and peer review of a bunch
of subprojects. I think that means I want to allow pretty much public
write access to a central repository (this incidentally is the reason
I'm not using Darcs), so that everyone can have sight of the work in
progress and make comments. I'm then going to need to move the more
mature subprojects into testing and release branches and maintain them
there. It seems like I have a few options:
a) A single repo for all unstable code. Keeps things simple, but it's
not clear to me how practical it will be to cherrypick changes to
stable subprojects into more stable branches. Also I imagine that
contributors would prefer to work with a repo containing the latest
version of their own projects along with a stable version of everything
else.
b) A topic branch per subproject. Now the problem is that anyone who
wants to keep current on multiple subprojects will have to keep their
own merged branch, and any changes they make will need to be rebased
onto a clean branch before they can be pushed.
c) An independent nested repo per subproject. Solves the above
problems, but I think the mechanics of dealing with so many repos may
be rather tedious.
d) Unstable code kept as MQ repositories...?
My concern is that (b), (c) and (d) would make life excessively
complicated for contributors, who may not have used a distributed SCM
before, but that (a) is too limiting. It's somewhat frustrating knowing
that (a) and (b) would both be perfectly workable with Darcs.
So, I'd appreciate any advice you may have.
Other questions:
- It seems like distinct repos are generally favoured over named
internal branches, but that means people won't be able to create their
own branches on the server. Is this really the best way?
- I've set up pushing over https. Is there a way to store my password
somewhere?
Thanks
/J
More information about the Mercurial
mailing list