[MERGE] Let find_previous_heads take a repository.
Aaron Bentley
aaron.bentley at utoronto.ca
Mon Jun 19 22:41:48 BST 2006
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Johan Rydberg wrote:
> Aaron Bentley <aaron.bentley at utoronto.ca> writes:
>>I'm not sure why that's such a bad thing. If you're committing a
>>revision, it probably makes sense to use CommitBuilder. If you're
>>adding texts for another reason, (importing, upgrading, installing a
>>bundle, data-recovery), it may not.
>
>
> Because some formats may not group changes on per-file basis.
Sure, and I agree those formats aren't suitable for writing to this way.
But our core formats are suited to this, and I think that's a valuable
property.
> Think
> Subversions fsfs format. For such history formats, implementing phony
> stores and VersionedFile-implementations is just an obstacle.
Annotate in particular is very slow on Subversion. I think that's a
shame, but I'm not willing to demote annotate to an optional feature--
it's essential for knit merge.
Not only that, but formats vary all over the place. RCS/CVS can easily
support annotate. Annotation in Arch is also nice and fast. Hg
apparently does a good job, too.
> jelmer's subversion plugin has just this; FakeFileWeave, FakeFileStore
> and FakeInventoryWeave. If the interface requires you to do this, I
> think the interface is flawed.
I disagree with you here. I think the reason jelmer's plugin has these
is because it's a worse format, and adapting ourselves to it would be a
a lowest-comon denominator approach. I prefer to keep support for our
own formats as primary. That means other formats will need need
additional support data like annotate snapshots or file-id <->
revision/path mappings, or other kinds of caching.
I really don't want bzr to get a new API layered on top of the old one
unless it benefits the core of bzr. More APIs, especially layered APIs,
make code harder to understand. If we have a RepositoryFile API, I will
have to ask myself, for every operation, "Is this supported by the
RepositoryFile API? Should it be?" API layering should be clear and
intuitive, but I have no idea what operations should take place on
RepositoryFiles, and what should take place on VersionedFiles.
I welcome CommitBuilder, because I think it makes the commit code easier
to work with. But RepositoryFile doesn't seem to buy us much. Since
Blob-format doesn't seem to be coming soon, I would save this kind of
change until blob format does come, and then shape it to whatever blobs
need, not for the lowest common denominator.
Aaron
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org
iD8DBQFElxob0F+nu1YWqI0RArrWAJ0aI0bjymmf9bHiwR9OEfXg0FotbgCePrwf
O6HqluOGlt4+v4S2ZqYuiw0=
=JWaW
-----END PGP SIGNATURE-----
More information about the bazaar
mailing list