[RFC] status showing of conflicts

Robert Collins robertc at robertcollins.net
Thu Jun 15 15:15:35 BST 2006


On Thu, 2006-06-15 at 09:14 -0400, Aaron Bentley wrote:
> 
> 
> That sounds reasonable.  You can use ConflictList.select_conflicts as
> a
> starting point for this.  ...


thanks. I'm going to file a bug for now - but it helps set direction for
the other status refactorings I am doing:

I'm trying to bring add/remove/diff/status into line with each other so
that they all work with the model below:
 * working tree represents the tree
 * all trees may have current conflicts/unknowns/ignored/versioned
files.
 * all trees know about their parents
 * tree deltas know about: added/deleted/renamed/changed/renamed and
changed/conflicts/unknowns/ignores between a from and a to tree.

 * deltas have pre-order iterators for various operations that we want:
  - all files (used for commit)
  - files matching a selection of change types - i.e. 'all altered
files', 'all renamed files', 'all deleted files', 'all new files' - and
these are a bitset so we can do 'all changed/renamed/added/deleted
files' or 'all unknown' or 'all unknown in to_tree'.

I want to make the diff routines accept an appropriate iterator or a
delta object rather than a pair of trees, and status to accept a delta
object.

diff then is:
 * iterate and output the content of the changes, for all changes that
we know how to diff.

status then is:
 * iterate to collect each type of change we are outputting, which
includes unknowns/conflicts/ignoreds - and prefilters the paths for us.
 * output the changes
 * output the list of parents from the 'deltas to tree' except for the
left most parent (which is the one the delta was against) in our nice
pending-merge format.


This seems nice to me, because it will automatically do the following:
 * show the new merges done into a tree even for revision to revision
status operations
 * allow single pass status and diff today
 * allow the dirstate format we are working on to be used essentially
directly - which should give very high performance.


Rob

-- 
GPG key available at: <http://www.robertcollins.net/keys.txt>.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 191 bytes
Desc: This is a digitally signed message part
Url : https://lists.ubuntu.com/archives/bazaar/attachments/20060616/05412dcd/attachment.pgp 


More information about the bazaar mailing list