bzr cat does not work in knitpack repo: lock required

John Arbash Meinel john at arbash-meinel.com
Sat Nov 17 00:51:09 GMT 2007


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

Alexander Belchenko wrote:
> John Arbash Meinel ?8H5B:
>> Alexander Belchenko wrote:
>>> Robert Collins ?8H5B:
>>>> On Sat, 2007-11-17 at 01:11 +0200, Alexander Belchenko wrote:
>>>>> It's really annoying. Something should be decided for this locking watershed.
>>>> Well, I'm happy to discuss proposals. But at the moment I think the
>>>> thing to do is for early adopters to report issues, and us to fix them.
>>> I wonder if we can just temporarily make knitpack format as default and run
>>> at least blackbox tests to see what tests will fail. Probably some obvious
>>> places will be caught automatically?
>> It is pretty easy to do
> 
>> bzrlib.bzrdir.format_registry.set_default('knitpack-experimental')
> 
>> (or just change the very last line in the file.)
> 
>> That would certainly be required before we ever make knitpack the default
>> format. But since Robert has strong plans to evolve the format anyway, I'm
>> guessing we won't be making packs the default for a few months.
> 
> But broken commands make dogfooding painful and force me to fallback to knit repo,
> because I can't wait several months. That's why I said that some decision would
> be desirable.

Well the blackbox tests are only meant to test the cmd_xxx.run() code. Anything
below that should be in a whitebox test.

We are slowly migrating to more and more *_implementations tests, which is the
correct way to test this sort of thing. We don't really want to test all
blackbox tests against all supported formats.

> 
> I wonder why places like broken commands was not caught by test suite? Just because
> some commands lacks tests, or because format is not default? If latter, then
> probably we need extend or parametrize even blackbox tests to have ability
> for testing new experimental formats while they will be evolving.
> Am I wrong here?

It is generally a layering issue. That something should be tested in
*_implementation but is only tested standalone. We ran into a lot of that with
the DirState code, and it resulted in probably 1000 more WT implementation
tests (once you multiply it times the number of WT formats.)

One thing that I found where we've been lazy is grabbing things inside an
object (Repository.weave_store).

The right way to fix this is to set the default format, find what tests fail,
then write a repository_implementation test for it. That means we end up not
breaking it in the next implementation rather than just fixing it for this release.

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

iD8DBQFHPjr9JdeBCYSNAAMRAm1NAKCQHWbzIwyayPOOuN9d2lL4Hz4HcwCcCcpi
zlx0KwXIB2IruG4oU2GtQnQ=
=xHCM
-----END PGP SIGNATURE-----



More information about the bazaar mailing list