stacking threads is not enough, how about a graph instead

Bug #274430 reported by Vincent Ladeuil
4
Affects Status Importance Assigned to Milestone
Loom
Incomplete
Undecided
Unassigned

Bug Description

While making the test suite pass under python-2.6 for bzr I encounter a situation where loom, while helpful, didn't fully address my problem.

First, bzr selftest couldn't run until several *independent* problems were solved (say b1, b2, b3).
Once the test suite were running, there were also several independent problems do be solved (f1, f2, f3).

Ideally, it should possible to define that a thread is built on top of a merge of several *parallel* threads.

bzr show-loom will show something like:

  pass
        ^f1
        ^f2
        ^f3
  runs
        ^b1
        ^b2
        ^b3
=>bzr.dev

bzr.dev, runs and pass being the actual threads, while bn and fn being threads that are merged in their respective parents but with independent ancestries, the caret and the additional indentation showing the relations.

Revision history for this message
Stephen Compall (scompall) wrote :

For this last sleepless night, I took the opportunity to consider the implementation of a DAG of threads. For example, the approach to forward-merging threads involves choosing the *longest* paths in the DAG, minimizing the number of merges required.

The problem is diffing. With a stack of patches, the base is the down-thread, so diff has a definitive base revision to compare to. This is not so with parallel parents. All the conflict resolution information is contained within the thread itself, and cannot be automatically derived to determine which parts are conflict resolution between parents and which parts are changes due to the thread itself. This isn't a problem with stacks because the conflict resolution is guaranteed to be in the down-thread.

Revision history for this message
Robert Collins (lifeless) wrote :

Loom is an explicit experiment with simplifying the DAG that exists amongst branches; I'd like to really see some concrete use cases that the stack doesn't work for to consider this a valid bug.

@S11001001 I agree with you :)

Changed in bzr-loom:
status: New → Incomplete
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.