本文整理汇总了Python中git.Git.update_ref方法的典型用法代码示例。如果您正苦于以下问题:Python Git.update_ref方法的具体用法?Python Git.update_ref怎么用?Python Git.update_ref使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类git.Git
的用法示例。
在下文中一共展示了Git.update_ref方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: _get_workdir
# 需要导入模块: from git import Git [as 别名]
# 或者: from git.Git import update_ref [as 别名]
def _get_workdir(self):
"""Return an initialized workdir path.
If the stock links to a plain directory, the workdir is simply its path.
If the stock links to a git repository, the workdir will point to a
persistent lightweight checkout of the desired branch.
"""
if not self.branch:
return self.link
orig = Git(self.link)
checkout_path = self.paths.checkout
if not exists(checkout_path):
mkdir(checkout_path)
checkout = Git.init_create(checkout_path)
checkout.set_alternates(orig)
else:
checkout = Git(checkout_path)
def dup_branch(branch):
# checkout latest changes
commit = orig.rev_parse(branch)
if not commit:
raise self.Error("no such branch `%s' at %s" % (branch, self.link))
checkout.update_ref("refs/heads/" + branch, commit)
dup_branch(self.branch)
checkout.checkout("-q", "-f", self.branch)
if exists(join(checkout_path, "arena.internals")):
dup_branch(self.branch + "-thin")
command = "cd %s && sumo-open" % commands.mkarg(checkout_path)
error = os.system(command)
if error:
raise self.Error("failed command: " + command)
return join(checkout_path, "arena")
# update tags
for tag in checkout.list_tags():
checkout.remove_tag(tag)
for tag in orig.list_tags():
try:
checkout.update_ref("refs/tags/" + tag, orig.rev_parse(tag))
except:
continue
return checkout_path