/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to bzrlib/deprecated_graph.py

  • Committer: John Arbash Meinel
  • Date: 2008-07-09 21:42:24 UTC
  • mto: This revision was merged to the branch mainline in revision 3543.
  • Revision ID: john@arbash-meinel.com-20080709214224-r75k87r6a01pfc3h
Restore a real weave merge to 'bzr merge --weave'.

To do so efficiently, we only add the simple LCAs to the final weave
object, unless we run into complexities with the merge graph.
This gives the same effective result as adding all the texts,
with the advantage of not having to extract all of them.

Show diffs side-by-side

added added

removed removed

Lines of Context:
12
12
#
13
13
# You should have received a copy of the GNU General Public License
14
14
# along with this program; if not, write to the Free Software
15
 
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
 
15
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
16
16
 
17
17
 
18
18
def max_distance(node, ancestors, distances, root_descendants):
19
 
    """Calculate the max distance to an ancestor.
 
19
    """Calculate the max distance to an ancestor.  
20
20
    Return None if not all possible ancestors have known distances"""
21
21
    best = None
22
22
    if node in distances:
35
35
            best = distances[ancestor] + 1
36
36
    return best
37
37
 
38
 
 
 
38
    
39
39
def node_distances(graph, ancestors, start, root_descendants=None):
40
40
    """Produce a list of nodes, sorted by distance from a start node.
41
41
    This is an algorithm devised by Aaron Bentley, because applying Dijkstra
128
128
        for parent in parent_ids:
129
129
            self._ensure_descendant(parent)
130
130
            self._graph_descendants[parent][node_id] = 1
131
 
 
 
131
        
132
132
    def _ensure_descendant(self, node_id):
133
133
        """Ensure that a descendant lookup for node_id will work."""
134
134
        if not node_id in self._graph_descendants: