Example #1
0
    def getAncestryDelta_test(self, clean_repository=False):
        """"Test various ancestry delta calculations.

        :param clean_repository: If True, perform calculations with a branch
            whose repository contains only revisions in the ancestry of the
            tip.
        """
        (db_branch,
         bzr_tree), ignored = self.makeBranchWithMerge('base', 'trunk',
                                                       'branch', 'merge')
        bzr_branch = bzr_tree.branch
        self.factory.makeBranchRevision(db_branch, 'base', 0)
        self.factory.makeBranchRevision(db_branch,
                                        'trunk',
                                        1,
                                        parent_ids=['base'])
        self.factory.makeBranchRevision(db_branch,
                                        'branch',
                                        None,
                                        parent_ids=['base'])
        self.factory.makeBranchRevision(db_branch,
                                        'merge',
                                        2,
                                        parent_ids=['trunk', 'branch'])
        sync = self.makeBzrSync(db_branch)
        self.useContext(write_locked(bzr_branch))

        def get_delta(bzr_rev, db_rev):
            db_branch.last_scanned_id = db_rev
            graph = bzr_branch.repository.get_graph()
            revno = graph.find_distance_to_null(bzr_rev, [])
            if clean_repository:
                tempdir = self.useFixture(TempDir()).path
                delta_branch = self.createBranchAtURL(tempdir)
                self.useContext(write_locked(delta_branch))
                delta_branch.pull(bzr_branch, stop_revision=bzr_rev)
            else:
                bzr_branch.set_last_revision_info(revno, bzr_rev)
                delta_branch = bzr_branch
            return sync.getAncestryDelta(delta_branch)

        added_ancestry, removed_ancestry = get_delta('merge', None)
        # All revisions are new for an unscanned branch
        self.assertEqual(set(['base', 'trunk', 'branch', 'merge']),
                         added_ancestry)
        self.assertEqual(set(), removed_ancestry)
        added_ancestry, removed_ancestry = get_delta('merge', 'base')
        self.assertEqual(set(['trunk', 'branch', 'merge']), added_ancestry)
        self.assertEqual(set(), removed_ancestry)
        added_ancestry, removed_ancestry = get_delta(NULL_REVISION, 'merge')
        self.assertEqual(set(), added_ancestry)
        self.assertEqual(set(['base', 'trunk', 'branch', 'merge']),
                         removed_ancestry)
        added_ancestry, removed_ancestry = get_delta('base', 'merge')
        self.assertEqual(set(), added_ancestry)
        self.assertEqual(set(['trunk', 'branch', 'merge']), removed_ancestry)
        added_ancestry, removed_ancestry = get_delta('trunk', 'branch')
        self.assertEqual(set(['trunk']), added_ancestry)
        self.assertEqual(set(['branch']), removed_ancestry)
 def get_delta(bzr_rev, db_rev):
     db_branch.last_scanned_id = db_rev
     graph = bzr_branch.repository.get_graph()
     revno = graph.find_distance_to_null(bzr_rev, [])
     if clean_repository:
         tempdir = self.useFixture(TempDir()).path
         delta_branch = self.createBranchAtURL(tempdir)
         self.useContext(write_locked(delta_branch))
         delta_branch.pull(bzr_branch, stop_revision=bzr_rev)
     else:
         bzr_branch.set_last_revision_info(revno, bzr_rev)
         delta_branch = bzr_branch
     return sync.getAncestryDelta(delta_branch)
Example #3
0
 def get_delta(bzr_rev, db_rev):
     db_branch.last_scanned_id = db_rev
     graph = bzr_branch.repository.get_graph()
     revno = graph.find_distance_to_null(bzr_rev, [])
     if clean_repository:
         tempdir = self.useFixture(TempDir()).path
         delta_branch = self.createBranchAtURL(tempdir)
         self.useContext(write_locked(delta_branch))
         delta_branch.pull(bzr_branch, stop_revision=bzr_rev)
     else:
         bzr_branch.set_last_revision_info(revno, bzr_rev)
         delta_branch = bzr_branch
     return sync.getAncestryDelta(delta_branch)
Example #4
0
    def getAncestryDelta_test(self, clean_repository=False):
        """"Test various ancestry delta calculations.

        :param clean_repository: If True, perform calculations with a branch
            whose repository contains only revisions in the ancestry of the
            tip.
        """
        (db_branch, bzr_tree), ignored = self.makeBranchWithMerge("base", "trunk", "branch", "merge")
        bzr_branch = bzr_tree.branch
        self.factory.makeBranchRevision(db_branch, "base", 0)
        self.factory.makeBranchRevision(db_branch, "trunk", 1, parent_ids=["base"])
        self.factory.makeBranchRevision(db_branch, "branch", None, parent_ids=["base"])
        self.factory.makeBranchRevision(db_branch, "merge", 2, parent_ids=["trunk", "branch"])
        sync = self.makeBzrSync(db_branch)
        self.useContext(write_locked(bzr_branch))

        def get_delta(bzr_rev, db_rev):
            db_branch.last_scanned_id = db_rev
            graph = bzr_branch.repository.get_graph()
            revno = graph.find_distance_to_null(bzr_rev, [])
            if clean_repository:
                tempdir = self.useFixture(TempDir()).path
                delta_branch = self.createBranchAtURL(tempdir)
                self.useContext(write_locked(delta_branch))
                delta_branch.pull(bzr_branch, stop_revision=bzr_rev)
            else:
                bzr_branch.set_last_revision_info(revno, bzr_rev)
                delta_branch = bzr_branch
            return sync.getAncestryDelta(delta_branch)

        added_ancestry, removed_ancestry = get_delta("merge", None)
        # All revisions are new for an unscanned branch
        self.assertEqual(set(["base", "trunk", "branch", "merge"]), added_ancestry)
        self.assertEqual(set(), removed_ancestry)
        added_ancestry, removed_ancestry = get_delta("merge", "base")
        self.assertEqual(set(["trunk", "branch", "merge"]), added_ancestry)
        self.assertEqual(set(), removed_ancestry)
        added_ancestry, removed_ancestry = get_delta(NULL_REVISION, "merge")
        self.assertEqual(set(), added_ancestry)
        self.assertEqual(set(["base", "trunk", "branch", "merge"]), removed_ancestry)
        added_ancestry, removed_ancestry = get_delta("base", "merge")
        self.assertEqual(set(), added_ancestry)
        self.assertEqual(set(["trunk", "branch", "merge"]), removed_ancestry)
        added_ancestry, removed_ancestry = get_delta("trunk", "branch")
        self.assertEqual(set(["trunk"]), added_ancestry)
        self.assertEqual(set(["branch"]), removed_ancestry)