calling for dirstate dogfooders, and change in branch policy now all tests pass

Martin Pool mbp at
Fri Mar 2 01:08:39 GMT 2007

John Arbash Meinel wrote:
> Hash: SHA1
> Robert Collins wrote:
>> ---------------
>> The dirstate branch now has the dirstate based tree format as the
>> default. Its passing all tests, so I think at this point we should
>> change the policy to 'please run all tests before committing' to prevent
>> regressions.
>> It badly needs dogfooding though - I've started dogfooding it, and will
>> continue to do so. its about 50% faster for status now, and there is
>> room to move. I intend to do the _iter_changes API alterations I
>> discussed with Aaron tomorrow, and hopefully Martin will be able to get
>> the nested reference trees merged shortly too. That will cause a one-way
>> upgrade of your repository though, so, be careful if you do dogfood -
>> i.e. be sure to use a scratch branch & repository, or just dont run 'bzr
>> upgrade'.

Aaron's code previously insisted that the new tree only be used with 
repositories that support rich roots (non-default root ids).  That made 
sense when the format added just that feature, but for dirstate we don't 
want to force a repository upgrade, so I've removed the constraint and 
it seems ok.  You will get an error if you try to do a subtree operation 
and the repository doesn't support it and those errors may (at the 
moment) be ugly.

> Just to be clear, right now we don't require updating your branch and
> repo, but the official dirstate format will change when Martin merges
> the new stuff, so that we can support nested trees. And that will
> require an upgrade. It also sounds like it will be an incompatible bump
> to the WorkingTree format (no upgrade from dirstate now to
> dirstate-with-trees). Which will mean that when it is merged you'll need
> to probably 'bzr remove-tree; <pull bzr-dirstate>; bzr checkout'.

I think it only adds new possible values.  (I'm not 100% sure.)  We can 
do that without a bump; you will just get an error if you try to use 
plain dirstate on a tree with references.  This should be ok as only 
people dogfooding the pre-rc code will hit it and only this week.


More information about the bazaar mailing list