[MERGE] basic branch builder support

John Arbash Meinel john at arbash-meinel.com
Thu May 3 20:09:54 BST 2007


John Arbash Meinel has voted +1.
Status is now: Approved
Comment:
So if I understand correctly, this is just trying to work out a helper 
class for doing setup in tests, is that correct?

At the moment, it isn't terribly useful, since you can't modify files or 
build anything other than a linear history, but I can see it having 
usefulness as we expand it a bit.

We should probably add a TODO for things we want to add, just to make it 
clear where this class is going. This is what I have in mind:

1) Allow specifying the commit message, properties, and revision id of 
the commit. (Basically, allow us to pass parameters to 'tree.commit()', 
but have a default if not supplied)

2) It would be faster if it kept a reference to the 'tree', rather than 
regenerating it for each commit, especially once we get a real set of 
files that 'Memory.lock_write()' will have to create. For now, what you 
have is okay.

3) Add ability to lay out a working tree. Though maybe you have 
TreeBuilder for that.

4) Add the ability to move around in ancestry. So you can create 
multiple lines of development. (A -> B -> C, A -> D, etc).

5) Add the ability to set a merge point (D + C -> E). With (4) and (5) 
you will be able to create arbitrary DAGs, which are useful for things 
like 'common_ancestor' tests.

For details, see: 
http://bundlebuggy.aaronbentley.com/request/%3C1177656015.25951.4.camel%40localhost.localdomain%3E



More information about the bazaar mailing list