Ejemplo n.º 1
0
    def run(self, run_options, stats_keeper):
        Ctx()._projects = read_projects(
            artifact_manager.get_temp_file(config.PROJECTS))
        Ctx()._cvs_path_db = CVSPathDatabase(DB_OPEN_READ)
        self.symbol_db = SymbolDatabase()
        Ctx()._symbol_db = self.symbol_db

        logger.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_path_db.close()
        logger.quiet("Done")
Ejemplo n.º 2
0
def prime_ctx():
    def rf(filename):
        artifact_manager.register_temp_file(filename, None)

    from cvs2svn_lib.common import DB_OPEN_READ
    from cvs2svn_lib.symbol_database import SymbolDatabase
    from cvs2svn_lib.cvs_path_database import CVSPathDatabase
    rf(config.CVS_PATHS_DB)
    rf(config.SYMBOL_DB)
    from cvs2svn_lib.cvs_item_database import OldCVSItemStore
    from cvs2svn_lib.metadata_database import MetadataDatabase
    rf(config.METADATA_DB)
    rf(config.CVS_ITEMS_STORE)
    rf(config.CVS_ITEMS_FILTERED_STORE)
    rf(config.CVS_ITEMS_FILTERED_INDEX_TABLE)
    artifact_manager.pass_started(None)

    Ctx()._projects = ProjectList()
    Ctx()._symbol_db = SymbolDatabase()
    Ctx()._cvs_path_db = CVSPathDatabase(DB_OPEN_READ)
    Ctx()._cvs_items_db = OldCVSItemStore(
        artifact_manager.get_temp_file(config.CVS_ITEMS_STORE))
    Ctx()._metadata_db = MetadataDatabase(DB_OPEN_READ)