From 16028d81957247141f83b6c2889acdd1e33ae798 Mon Sep 17 00:00:00 2001 From: BoYanZh Date: Tue, 19 Nov 2024 07:15:30 -0500 Subject: [PATCH] feat: set reset target --- joint_teapot/app.py | 5 ++++- joint_teapot/workers/git.py | 4 +++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/joint_teapot/app.py b/joint_teapot/app.py index 2d8e142..822ee1c 100644 --- a/joint_teapot/app.py +++ b/joint_teapot/app.py @@ -568,7 +568,10 @@ def joj3_all( git_push_ok = False while not git_push_ok: repo_path = tea.pot.git.repo_clean_and_checkout( - repo_name, "grading", clean_git_lock=True + repo_name, + "grading", + clean_git_lock=True, + reset_target="origin/grading", ) repo: Repo = tea.pot.git.get_repo(repo_name) if "grading" not in repo.remote().refs: diff --git a/joint_teapot/workers/git.py b/joint_teapot/workers/git.py index 8c5a81c..d95f152 100644 --- a/joint_teapot/workers/git.py +++ b/joint_teapot/workers/git.py @@ -75,8 +75,10 @@ class Git: self, repo_name: str, checkout_dest: str, + *, auto_retry: bool = True, clean_git_lock: bool = False, + reset_target: str = "origin/master", ) -> str: repo_dir = os.path.join(self.repos_dir, repo_name) repo = self.get_repo(repo_name) @@ -92,7 +94,7 @@ class Git: if os.path.exists(lock_path): os.remove(lock_path) repo.git.fetch("--tags", "--all", "-f") - repo.git.reset("--hard", "origin/master") + repo.git.reset("--hard", reset_target) repo.git.clean("-d", "-f", "-x") repo.git.checkout(checkout_dest) retry_interval = 0