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)
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)