~mnordhoff/loggerhead/cheezum

« back to all changes in this revision

Viewing changes to loggerhead/history.py

Bring in the merge_point_config code.

Show diffs side-by-side

added added

removed removed

Lines of Context:
274
274
                self._revno_revid[revno_str] = revid
275
275
 
276
276
    def __init__(self, branch, whole_history_data_cache, file_cache=None,
277
 
                 revinfo_disk_cache=None, cache_key=None):
 
277
                 revinfo_disk_cache=None, cache_key=None,
 
278
                 show_merge_points=True):
278
279
        assert branch.is_locked(), (
279
280
            "Can only construct a History object with a read-locked branch.")
280
281
        if file_cache is not None:
285
286
        self._branch = branch
286
287
        self._inventory_cache = {}
287
288
        self._branch_nick = self._branch.get_config().get_nickname()
 
289
        self._show_merge_points = show_merge_points
288
290
        self.log = logging.getLogger('loggerhead.%s' % (self._branch_nick,))
289
291
 
290
292
        self.last_revid = branch.last_revision()
614
616
 
615
617
        # some data needs to be recalculated each time, because it may
616
618
        # change as new revisions are added.
617
 
        for change in changes:
 
619
        def merge_points_callback(a_change, attr):
618
620
            merge_revids = self.simplify_merge_point_list(
619
 
                               self.get_merge_point_list(change.revid))
620
 
            change.merge_points = [
621
 
                util.Container(revid=r,
622
 
                revno=self.get_revno(r)) for r in merge_revids]
 
621
                               self.get_merge_point_list(a_change.revid))
 
622
            return [util.Container(revid=r, revno=self.get_revno(r))
 
623
                    for r in merge_revids]
 
624
 
 
625
        for change in changes:
 
626
            if self._show_merge_points:
 
627
                change._set_property('merge_points', merge_points_callback)
 
628
            else:
 
629
                change.merge_points = []
623
630
            if len(change.parents) > 0:
624
631
                change.parents = [util.Container(revid=r,
625
632
                    revno=self.get_revno(r)) for r in change.parents]