[Bese-devel] Why we use arch [Was: the archives (the ucw development branch is MOVING!)]
Marco Baringer
mb at bese.it
Sat Mar 6 12:37:42 UTC 2004
On Sabato, mar 6, 2004, at 00:03 Europe/Rome, Jan Rychter wrote:
> It has certainly been very confusing for me. Do you find it
> significantly better than, say, subversion? (I guess the simple CVS is
> out of fashion these days)
[CVS is not just out of fashion, CVS would be a bad engineering choice
for new projects.]
Here's why, just under a year ago, I started using arch and have since
stuck with it:
0) If you ever want to take ucw and modify it you can, completely
independantly, branch from the ucw tree, selectvly update from the
"official" ucw repo and easly send your patches back to me.
You do not need commit rights on the main tree to develop UCW, you just
need to tell we which patch to merge in, i do a 'tla replay
ucw at rychter.com/ucw--cool-featureX--0.2--patch-3' and commit, this
works, automatically resolves most conflicts when you, for example,
updated with the main dev branch half way through your changes, and
maintians all associated logs.
1) When I started using arch subversion did not have a stable release,
maybe is was just FUD but the "grapevine" said to wait for 1.0
2) Arch works in terms of changesets, which contain a single log
message, a globally (yes globally) unique id and all associated changes
(renames, moves, adds, deletes and modifications). I find this to be a
much better match to how I think than subversion's "every modification
to the file system is a single, independent, change". Now, I could
build something like this on top of subversion, and i'm sure someone
has, but why do the extra work?
3) Arch knows which changesets have gone into a tree, this means that
if i'm working on the yaclml--use-xmls--0.4 branch and i get a patch
for yaclml--dev--0.4 i can apply that to the dev branch, merge that
into the use-xmls branch and then, when i'm done with the use-xmls
branch and want to merge it back into the dev branch arch knows that
patch has already been applied. This makes branching and merging much
more manageable. Subversion plans on addidng these merging features but
hasn't yet.
4) Arch uses a dumb-server. While subversion requires a WebDAV server i
was able to setup the arch repos on cl.net by simply creating a
directory in my public_htdocs tree, at the same time all commits are
done via ssh, subversion would have required much more work on erik's
part.
5) Very recently arch has gained the ability to gpg sign all patches,
while this isn't essential it does make me feel better.
At the same time arch does have its quirks:
1) It imposes the weird category--branch--version--patch-level syntax.
2) Arch doesn't have the concept of a "root" repository, which is
confusing.
3) When you update a tree you only get the patches in that revision, so
if you have ucw--dev--0.1 and i strat working on ucw--dev--0.2 you
won't get the patches from 0.2 unless you explicitly do a tla replay
ucw--dev--0.2 and then tla set-tree-version ucw--dev--0.2.
4) Arch doesn't provide support for "symbolic" tags, and the configs
are something of a joke.
5) arch can, at first, seem overwhelming with it's 100+ commands.
so, i think arch is better than subversion, is arch better "enough" to
make the added confusion worth it? i don't know.
--
Marco
Ring the bells that still can ring.
Forget the perfect offering.
There is a crack in everything.
That's how the light gets in.
-Leonard Cohen
More information about the bese-devel
mailing list