tree transform is malformed ??

Aaron Bentley abentley at aaronbentley.com
Mon May 1 13:02:55 BST 2006


Robert Collins wrote:
> On Mon, 2006-05-01 at 02:17 -0400, Aaron Bentley wrote:
> 
>>
>>The meat is: call resolve_conflicts(), to resolve the conflicts and
>>get 
>>a list of the raw conflicts that were encountered, and the
>>resolutions 
>>done.  Call cook_conflicts to get a list of Conflict objects, which
>>can 
>>be converted to strings and/or saved in the the working tree.  Emit
>>the 
>>conflicts as warnings.
> 
> 
> Ok. What will this do with the following scenario:
> 
> Branch A has a dir 'foo' in the HEAD revision.
> Branch B is location at dir 'foo/bar' in the branch directory of branch
> A.
> 
> 'bzr checkout' in the branch dir of branch A:
> 
> $ls -a
> foo
> .bzr
> 
> $ls -a foo
> bar
> 
> $ls -a foo/bar
> .bzr
> 
> $bzr checkout
> 
> What I want this to do is to leave foo/bar in place and untouched.

I can't think of anything in the current codebase that will handle this 
situation the way you want.  If you implemented my suggestion, the 
existing foo will be renamed to foo.moved when you checked out.

One way to do what you want would be to write a conflict resolver that 
resolved creation of an existing directory by versioning the existing 
directory, instead of by renaming the existing directory.

And what about creating existing files, then?  I think it gets very DWIM 
very fast.

Aaron




More information about the bazaar mailing list