Skip to Content.
Sympa Menu

sm-discuss - Re: [SM-Discuss] scm next steps

sm-discuss AT lists.ibiblio.org

Subject: Public SourceMage Discussion List

List archive

Chronological Thread  
  • From: "Jeremy Blosser (emrys)" <jblosser-smgl AT firinn.org>
  • To: sm-discuss AT lists.ibiblio.org
  • Subject: Re: [SM-Discuss] scm next steps
  • Date: Sat, 20 May 2006 01:17:52 -0500

On Apr 12, Jeremy Blosser (emrys) [jblosser-smgl AT firinn.org] wrote:
> The current identified SCMs to try are git, svk, and svn. git is most
> similar to bzr (which the other teams are already using) and has a very
> robust feature set. svk is most similar to p4. svn is probably in the
> widest general community use. Is this the right list? Do we have some
> volunteer gurus/sections for each?

svk is ready. The size requirements are closer to p4, but still higher.
The checkout directory with all four current branches is 425M, the .svk
meta directory each checkout has is another 248M. This is without any real
history. The initial checkout is for the 248M and takes quite a long time
(it was close to 2 hours here). status/etc. commands are a good bit
quicker than svn. I'll save the other comments and benchmarks for now but
in general I don't like it nearly as well as git from an admin standpoint.

The import was done like the other two done so far... I started with
stable, then updated each spell through each branch all the way down to
devel so there are separate commits to cherry-pick. I'll leave it to those
that already know svk to give some info on how to best use it. If you
want access to manage a section in this, let me know. The general command
once you have access will be:

svk checkout svn+ssh://[<user@>]scm.sourcemage.org/smgl/grimoire.svk

Then you have to respond to a bunch of prompts. I just took the defaults
for my checkout. Once it's checked out you'll have devel, test,
stable/0.3, and stable-rc/0.4 paths like you do in p4 now... if you just
want one branch or path specify that on the checkout.

One more thing to be aware of: svk by default stores all your meta data for
all your trees outside of these trees in a common dir that defaults to
~/.svk. If you don't want all that in your home dir, you can set $SVKROOT.


Some more things:

I redid the wiki page for git to hopefully be more clear and correct, the
info on here should be good for day-to-day use now:
http://wiki.sourcemage.org/Git_Guide

I moved the scmweb for git around a bit, use:
http://scmweb.sourcemage.org/smgl/gitweb.cgi


These are the 3 scm systems we said we'd set up for eval initially. It's
been suggested by a few people that we also try out mercurial (hg),
especially since svn was basically a bust. I've done a fair bit of initial
research on it and it looks to me like it's very similar to git as a
decentralized repository, but lagging behind git when used in any kind of
centralized fashion like we need. They have the basic functionality, but
they tend to recommend against working with it that way. On another note
but also quite significant for us, they lack a direct cherry-pick command.
You have to instead export a change from the src branch to a file and then
import it into the dst branch. Their main goal is to be very fast, but
published benchmarks show them lagging behind git on speed. In addition to
the features I've spent some time talking to people in their community, and
they aren't as good to go to as the git people are (they seem a good bit
more obsessed with proving they're the best scm, for one thing, and expect
you to change to fit their system's assumptions, for another... it's
possible I just talked to the wrong people of course). In general I just
don't think this one would buy us anything over git (most people that use
both also say this) and would probably actually be worse for our actual
usage scenarios. hg does probably have a smaller available command set
than git does, but the actual commands people need to use day-to-day are
the same, and there are other options for making git look simpler (one of
the most promising is git's included cvsserver wrapper, to allow cvs
clients to do checkouts and commits against git repositories).

Regardless, I can set up hg if people think we need to look at it, or we
can just keep trying git out for a system that works like that and only
pick up hg if we find things we don't like about git. I am getting quite a
few more requests from people to set up some extra stuff around git, so if
I don't set up hg I can spend the time doing that instead. Those include
extending the gitweb interface and the commit hooks to interact with
bugzilla and tweaking some more of the access things. It's likely as
people start to use svk that there will be some requests for things there,
too... I still need to get the svk web frontend setup as well.

Thoughts?

Attachment: pgpKwUdzoF4uq.pgp
Description: PGP signature




Archive powered by MHonArc 2.6.24.

Top of Page