【发布时间】:2017-05-30 05:17:28
【问题描述】:
我想确保当本地 repo 更改被推送到我们的主要远程 repo 时,人们正在使用书签推送更改。因此,要么是他们第一次使用他们在本地添加的书签(在他们的克隆仓库中)推送,要么他们正在远程推送到已经添加书签的行。
我已经在 .hgrc 内的 hgrc 文件中为 mercurial 设置了一个 python 钩子,就像这样...
[钩子] pretxnchangegroup.push = python:./hg/pushhook.py:bookmakrhook
当我推送时,我会收到回调并调用我的函数。如何获取从用户的本地存储库更改为每个人都从中克隆的主存储库的活动书签?
我的 python 挂钩文件中有这个签名:
def 书签钩子(ui, repo, **kwargs)
我似乎无法对 repo 实例做任何事情,除了使用
获取分支等repo[无].branches()
这是一个开始,因为我至少可以确保他们正在推送到默认值,而不是创建另一个头(我只想要一个分支 - 默认值和许多书签)。
【问题讨论】:
-
好的,所以当远程服务器上已经有书签时,我可以使用 repo._bookmarks 获取它,所以这对我来说可以检查我正在推送到书签,但第一次从本地到远程仓库的推送实际上是在远程仓库上创建书签,书签还没有在远程仓库上,所以不存在,所以检查 _bookmarks 将失败。所以我需要一种方法来查看是否是第一次创建书签,而不仅仅是获取远程仓库中已经存在的 _bookmarks。
-
通过
hg incoming检查远程书签不存在怎么样?
标签: python mercurial hook mercurial-hook