Add another table to store linked_revs

We need to create fake revisions when packages were touched that are
linked themselves
This commit is contained in:
Stephan Kulow
2022-10-24 12:01:28 +02:00
parent 089b215f4c
commit d17e60a608
4 changed files with 57 additions and 6 deletions

View File

@@ -25,7 +25,7 @@ class DBRevision:
self._hash = None
def __str__(self):
return f"Rev {self.project}/{self.rev} Md5 {self.unexpanded_srcmd5} {self.commit_time} {self.userid} {self.request_number}"
return f"Rev {self.project}/{self.package}/{self.rev} Md5 {self.unexpanded_srcmd5} {self.commit_time} {self.userid} {self.request_number}"
def __repr__(self):
return f"[{self.__str__()}]"
@@ -119,6 +119,8 @@ class DBRevision:
return ret
def linked_rev(self, db):
if self.broken:
return None
with db.cursor() as cur:
cur.execute(
"SELECT project,package FROM links where revision_id=%s", (self.dbid,)
@@ -134,6 +136,8 @@ class DBRevision:
revisions = [DBRevision(row) for row in cur.fetchall()]
if revisions:
return revisions[0]
else:
self.set_broken(db)
return None
def set_broken(self, db):