diff --git a/lib/git.py b/lib/git.py index b5684d1..87cc5af 100644 --- a/lib/git.py +++ b/lib/git.py @@ -215,13 +215,17 @@ class Git: url = f"gitea@gitea.opensuse.org:{org_name}/{repo_name}.git" self.repo.remotes.create("origin", url) - def push(self): + def push(self, force=False): remo = self.repo.remotes["origin"] keypair = pygit2.KeypairFromAgent("gitea") callbacks = pygit2.RemoteCallbacks(credentials=keypair) refspecs = ["refs/heads/factory"] - if "refs/heads/devel" in self.repo.references: - refspecs.append("refs/heads/devel") + develspec = "refs/heads/devel" + if develspec in self.repo.references: + if force: + refspecs.append(f"+{develspec}:{develspec}") + else: + refspecs.append("{develspec}:{develspec}") remo.push(refspecs, callbacks=callbacks) diff --git a/lib/git_exporter.py b/lib/git_exporter.py index 1df2cc3..533bf4d 100644 --- a/lib/git_exporter.py +++ b/lib/git_exporter.py @@ -86,7 +86,7 @@ class GitExporter: logging.debug(f"Committing {flat}") self.commit_flat(flat, branch_state) - self.git.push() + self.git.push(force=True) def run_gc(self): self.gc_cnt = self.gc_interval