[development] Is contributions/modules/ mirrored for bazaar-ng?
rob at torenware.com
Sun Feb 26 02:17:14 UTC 2006
Chris Johnson wrote:
> The 3 different version control systems I've used most recently are
> CVS, BZR and SVN.
> I've used CVS long enough that I'm very comfortable with manipulating
> the repository files directly, which one must do if one wants to move
> subdirectories around and preserve the change histories. That is
> probably CVS's biggest failing.
> I also know how to make CVS do the parallel, personal repository trick
> that impresses most people with BZR. BZR even impressed me with that,
> because even though CVS *can* do it, it is a *lot of work* in CVS
> whereas in BZR it is typing 3 fairly simple commands.
As someone who's been using CVS for a long time, I like SVN a lot, and
I think it's fair to say that it's CVS Done Right, which I gather was
the goal in designing it. bzr has a very similar command set, and if
you're using it for fairly centralized development, I don't see any real
advantage for using it over SVN. SVN is stable, and it's easier to use
over a network than CVS. If that's what you care about, it's definitely
SVN over either CVS or BZR.
> BZR is not in any way an order of magnitude better than SVN or CVS.
> Saying BZR is like a CMS, and SVN & CVS are like command line tools
> makes no sense. For basic everyday operations, they are all roughly
> equivalent in what is typed at the command line.
That's my impression as well.
> Where BZR makes parallel development in separate, but periodically
> synchronized repositories much easier than CVS, it falls on its face
> with having robust, complete, bug-free code. BZR is missing useful
> minor features available in CVS for reporting status and history, for
> example. BZR sometimes crashes due to bugs in code. (The last time
> CVS crashed was before you learned to read and write. :-)
This is also a concern of mine. I'm also surprised at how difficult
it's been to find documentation of very basic things, like how you
create your own bazaar-ng repository -- which I'd like to do, if only as
an experiment. Anybody have a pointer to a doc??
> So BZR would probably (have not investigated, but from the SVN docs it
> appears) excel above SVN in the same primary way it excels above CVS:
> it makes doing parallel repository development easier. But, as has
> been shown, one can do that with Drupal without converting Drupal's
> repository. People have already done it. Would this advantage be
> worth changing Drupal's core and contrib repos? Or are the downsides
> of going completely to BZR too big?
Here's where I differ with you, since as someone who's relatively new to
the community, the decentralized BZR model would have been very helpful
to me over the last few months.
I'm sure someone has a better coinage than this, but I call it "The
Any OSS project of any maturity needs quality controls, and one of the
best controls is making sure the stuff that gets checked in meets some
level of quality, and has an approach that is compatible with the
general direction and architecture of the project. This is generally a
good thing, and the community definitely benefits from this, whether you
have a "benevolent dictator for life" model, or if you have a
modularized project where lots of sub-maintainers have "benevolent
dictatorship" privileges over relatively small bits of the source base.
AFAIK, Drupal uses a hybrid of the two approaches, and generally, it
works pretty well, especially if you're a module maintainer for the
modules that are important for the work you do. These people are "the
gatekeepers" of the project, and they do a very necessary job.
But I'm not a module maintainer of most of the modules I use. I'm a
working programmer who collaborates with many other programmers, works
on projects that go on for months, and does work for groups with
multiple programmers. For this kind of work, it's important that my
work is in source control in a public repository somewhere, so my
collaborators can get at my most recent work easily (and know what *is*
the most recent versions of my modules), and so that if the module
maintainers decide to merge in my changes, it's easy for them to do so.
Patch queues aren't working for me. First, most module maintainers are
very busy working programmers themselves, and they of course work on
their own schedules, and not mine. So I now have changes in some
modules that have been in one module's patch queue or the other for a
month and more, And since it is the module owner's perfect right not to
accept my patches (benevolent dictatorship, remember), I can't be sure
the changes will ever be available there. Again, nothing against the
module owners (although some of them have their suspicions about me, I'd
guess :) ). They are being totally rational, and they are totally
within their rights. But it doesn't solve my problem.
Now, I could (and still may) post stuff in my Drupal contribution
sandbox, although it feels funny to me to post revisions of someone
else's work in the same repository. And I suspect that if people didn't
understand why I was doing it, it might upset or offend some people,
which is the last thing I need or want to do. Or I could simply
establish an SVN repository on my web site and do it that way.
The reason I'm considering BZR is that it looks like it would be much
easier for people to use the official versions of the modules and then
take on parts or all of my additions very easily, since merging stuff
between distributed branches is what BZR does best. Assuming that it's
reliable enough to use (which you can certainly argue about), it looks
like the best solution of my problem. I would just start a private
branch of the modules I use, and check into it. If the module
maintainer wanted to accept my stuff, great, easy for the module
maintainer. But if the maintainer did not want my changes, they would
still be available to other people I work with.
More information about the development