forked from adamm/git-importer
reconstruct state data
If the state file is missing, we can reconstruct which parts were exported based on revision ids Also, packages could have branches in Git, but not be in Git. We need to check (project,package) tuple for this and not just abort based on the package name alone.
This commit is contained in:
@@ -42,6 +42,8 @@ class Importer:
|
||||
def update_db_package(self, project, package):
|
||||
root = self.obs._history(project, package)
|
||||
if root is None:
|
||||
if self.project == "openSUSE:Factory" and project == self.project:
|
||||
exit(10)
|
||||
return
|
||||
latest = DBRevision.max_rev(self.db, project, package)
|
||||
for r in root.findall("revision"):
|
||||
@@ -217,7 +219,7 @@ class Importer:
|
||||
logging.debug(f"Refresh {project}/{package}")
|
||||
self.refreshed_packages.add(key)
|
||||
if self.has_scmsync(project) or self.has_scmsync(key):
|
||||
self.packages_with_scmsync.add(package)
|
||||
self.packages_with_scmsync.add((project, package))
|
||||
logging.debug(f"{project}/{package} already in Git - skipping")
|
||||
return
|
||||
self.update_db_package(project, package)
|
||||
@@ -274,6 +276,6 @@ class Importer:
|
||||
self.scmsync_cache[key] = scmsync_exists
|
||||
return scmsync_exists
|
||||
|
||||
def package_with_scmsync(self, package):
|
||||
return package in self.packages_with_scmsync
|
||||
def package_with_scmsync(self, project, package):
|
||||
return (project, package) in self.packages_with_scmsync
|
||||
|
||||
|
||||
Reference in New Issue
Block a user