Whole tree up to date before committing

John Arbash Meinel john at arbash-meinel.com
Thu Oct 22 16:50:08 BST 2009


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Óscar Fuentes wrote:
> From Ian's document:
> 
> In fact, Bazaar is stricter about centralized development than
> Subversion. Subversion will only check that changed files are up to date
> locally while Bazaar will ensure your whole tree is up to date before
> committing to a bound branch. Why? It’s all part of our philosophy that
> the trunk ought to be ready to ship all the time. Used intelligently
> with automated testing, Bazaar can help keep the quality of your trunk
> as high as possible.
> <<<<<<<<<<<<<<<<<<
> 
> I don't see this as an advantage, quite the contrary. On mildly active
> projects one could find himself doing a merge after another, without a
> chance for committing. Think about projects with about 300 commits every
> day during working hours coming from 50 developers, with most commits
> concentrated on the last hours of the journey. Bazaar's model would be a
> serious annoyance there. Moreover, not being allowed to commit a change
> because someone modified a totally unrelated part of the project is one
> reason for labeling the tool as "stupid".

This is why you work in branches, but it was also one of the *primary*
reasons that a company recently switched to Bazaar instead of
Subversion. In subversion, if 2 people are working on the same branch

 user 1 make test # clean; svn commit -m 'everything looks good'
 user 2 make test # clean; svn commit -m 'good stuff'
 user 3 svn co ; make test # fail

It is standard design in all of the DVCSs. It is *very* nice to be able
to recreate a users' workspace when they did commit. As opposed to
something that might approximate it.

> 
> I'm not saying that Bazaar's policy, if applicable, isn't better than
> subversion's. My point is that on some common scenarios creates more
> trouble than it solves.

It solves a lot of real-world issues. tagging is the only reliable way
in SVN to get an actual snapshot. And even then tags can be committed to...

> 
> Besides, I think that claiming that Bazaar enforces some philosophy
> contradicts previous claims about its flexibility. Its good that
> Bazaar's developers try to keep the project on shippable state all the
> time, but other teams may have their own ideas about that. Certainly,
> most projects begin their lives on a non-shippable state :-) Your claim
> about bzr enforcing good policies looks to me like the old trick of
> "it's not a bug, it's a feature".
> 

We will never prevent you from committing in your own branch. However,
we *will* preserve the true atomicity of your change. In that we won't
silently include other peoples changes just because they happen to not
textually conflict with the ones you made.

John
=:->
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Cygwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAkrgfzAACgkQJdeBCYSNAAPBuACgmW9C32fVjEkEas7f2gV8lEsL
9ZgAn3qKfvEU13PXSSlS8rsPm4NrQRKB
=Ao10
-----END PGP SIGNATURE-----



More information about the bazaar mailing list