aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'cvs2svn_lib/check_dependencies_pass.py')
-rw-r--r--cvs2svn_lib/check_dependencies_pass.py144
1 files changed, 0 insertions, 144 deletions
diff --git a/cvs2svn_lib/check_dependencies_pass.py b/cvs2svn_lib/check_dependencies_pass.py
deleted file mode 100644
index 172c264..0000000
--- a/cvs2svn_lib/check_dependencies_pass.py
+++ /dev/null
@@ -1,144 +0,0 @@
-# (Be in -*- python -*- mode.)
-#
-# ====================================================================
-# Copyright (c) 2000-2008 CollabNet. All rights reserved.
-#
-# This software is licensed as described in the file COPYING, which
-# you should have received as part of this distribution. The terms
-# are also available at http://subversion.tigris.org/license-1.html.
-# If newer versions of this license are posted there, you may use a
-# newer version instead, at your option.
-#
-# This software consists of voluntary contributions made by many
-# individuals. For exact contribution history, see the revision
-# history and logs, available at http://cvs2svn.tigris.org/.
-# ====================================================================
-
-"""This module defines some passes that can be used for debugging cv2svn."""
-
-
-from cvs2svn_lib import config
-from cvs2svn_lib.context import Ctx
-from cvs2svn_lib.common import FatalException
-from cvs2svn_lib.common import DB_OPEN_READ
-from cvs2svn_lib.log import Log
-from cvs2svn_lib.pass_manager import Pass
-from cvs2svn_lib.project import read_projects
-from cvs2svn_lib.artifact_manager import artifact_manager
-from cvs2svn_lib.cvs_file_database import CVSFileDatabase
-from cvs2svn_lib.symbol_database import SymbolDatabase
-from cvs2svn_lib.cvs_item_database import OldCVSItemStore
-from cvs2svn_lib.cvs_item_database import IndexedCVSItemStore
-
-
-class CheckDependenciesPass(Pass):
- """Check that the dependencies are self-consistent."""
-
- def __init__(self):
- Pass.__init__(self)
-
- def register_artifacts(self):
- self._register_temp_file_needed(config.PROJECTS)
- self._register_temp_file_needed(config.SYMBOL_DB)
- self._register_temp_file_needed(config.CVS_FILES_DB)
-
- def iter_cvs_items(self):
- raise NotImplementedError()
-
- def get_cvs_item(self, item_id):
- raise NotImplementedError()
-
- def run(self, run_options, stats_keeper):
- Ctx()._projects = read_projects(
- artifact_manager.get_temp_file(config.PROJECTS)
- )
- Ctx()._cvs_file_db = CVSFileDatabase(DB_OPEN_READ)
- self.symbol_db = SymbolDatabase()
- Ctx()._symbol_db = self.symbol_db
-
- Log().quiet("Checking dependency consistency...")
-
- fatal_errors = []
- for cvs_item in self.iter_cvs_items():
- # Check that the pred_ids and succ_ids are mutually consistent:
- for pred_id in cvs_item.get_pred_ids():
- pred = self.get_cvs_item(pred_id)
- if not cvs_item.id in pred.get_succ_ids():
- fatal_errors.append(
- '%s lists pred=%s, but not vice versa.' % (cvs_item, pred,))
-
- for succ_id in cvs_item.get_succ_ids():
- succ = self.get_cvs_item(succ_id)
- if not cvs_item.id in succ.get_pred_ids():
- fatal_errors.append(
- '%s lists succ=%s, but not vice versa.' % (cvs_item, succ,))
-
- if fatal_errors:
- raise FatalException(
- 'Dependencies inconsistent:\n'
- '%s\n'
- 'Exited due to fatal error(s).'
- % ('\n'.join(fatal_errors),)
- )
-
- self.symbol_db.close()
- self.symbol_db = None
- Ctx()._cvs_file_db.close()
- Log().quiet("Done")
-
-
-class CheckItemStoreDependenciesPass(CheckDependenciesPass):
- def __init__(self, cvs_items_store_file):
- CheckDependenciesPass.__init__(self)
- self.cvs_items_store_file = cvs_items_store_file
-
- def register_artifacts(self):
- CheckDependenciesPass.register_artifacts(self)
- self._register_temp_file_needed(self.cvs_items_store_file)
-
- def iter_cvs_items(self):
- cvs_item_store = OldCVSItemStore(
- artifact_manager.get_temp_file(self.cvs_items_store_file))
-
- for cvs_file_items in cvs_item_store.iter_cvs_file_items():
- self.current_cvs_file_items = cvs_file_items
- for cvs_item in cvs_file_items.values():
- yield cvs_item
-
- del self.current_cvs_file_items
-
- cvs_item_store.close()
-
- def get_cvs_item(self, item_id):
- return self.current_cvs_file_items[item_id]
-
-
-class CheckIndexedItemStoreDependenciesPass(CheckDependenciesPass):
- def __init__(self, cvs_items_store_file, cvs_items_store_index_file):
- CheckDependenciesPass.__init__(self)
- self.cvs_items_store_file = cvs_items_store_file
- self.cvs_items_store_index_file = cvs_items_store_index_file
-
- def register_artifacts(self):
- CheckDependenciesPass.register_artifacts(self)
- self._register_temp_file_needed(self.cvs_items_store_file)
- self._register_temp_file_needed(self.cvs_items_store_index_file)
-
- def iter_cvs_items(self):
- return self.cvs_item_store.itervalues()
-
- def get_cvs_item(self, item_id):
- return self.cvs_item_store[item_id]
-
- def run(self, run_options, stats_keeper):
- self.cvs_item_store = IndexedCVSItemStore(
- artifact_manager.get_temp_file(self.cvs_items_store_file),
- artifact_manager.get_temp_file(self.cvs_items_store_index_file),
- DB_OPEN_READ)
-
- CheckDependenciesPass.run(self, run_options, stats_keeper)
-
- self.cvs_item_store.close()
- self.cvs_item_store = None
-
-