[development] Is contributions/modules/ mirrored for bazaar-ng?

Rob Thorne 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 
Gatekeeper Problem".

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.

Cheers,
Rob




More information about the development mailing list