diff --git a/src/proxy/git_proxy.py b/src/proxy/git_proxy.py index d0b0dd815d436a9daba999e4307c76ced4002cb8..526072dbe83fd837669c45f23bf99fc62333045e 100644 --- a/src/proxy/git_proxy.py +++ b/src/proxy/git_proxy.py @@ -176,28 +176,20 @@ class GitProxy(object): return out[0] - def checkout_to_commit(self, commit): + def checkout_to_commit(self, commit, force=False): """ git checkout :param commit: HEAD~{} or SHA + :param force: 是否强制执行 :return: boolean """ - checkout_cmd = "cd {}; git checkout {}".format(self._repo_dir, commit) - ret, _, _ = shell_cmd_live(checkout_cmd) + checkout_cmd = "cd {}; git checkout".format(self._repo_dir) - if ret: - logger.warning("checkout failed, %s", ret) - return False + if force: + checkout_cmd += " -f" - return True + checkout_cmd += " {}".format(commit) - def checkout_to_commit_force(self, commit): - """ - git checkout - :param commit: HEAD~{} or SHA - :return: boolean - """ - checkout_cmd = "cd {}; git checkout -f {}".format(self._repo_dir, commit) ret, _, _ = shell_cmd_live(checkout_cmd) if ret: @@ -205,6 +197,7 @@ class GitProxy(object): return False return True + def get_tree_hashes(self, commit, number=0, with_merges=True): """