【问题标题】:Bazaar hook to check commit message on serverBazaar 钩子检查服务器上的提交消息
【发布时间】:2013-10-18 07:21:18
【问题描述】:

我们有一个集市服务器,很多人都连接到该服务器。我想为每个用户运行一些预提交挂钩,对我来说,在服务器上运行这些挂钩最有意义,因为我无法控制所有连接的计算机。我原以为这是一项简单的任务,但现在我被困住了。

我现在的状态是:

  • 如果我在我的工作站上安装脚本,挂钩将起作用。
  • 如果我在服务器上安装脚本,它是否适用于那里完成的提交。
  • 将它安装在服务器上并在我的工作站上提交它是 正在加载但被忽略。

我尝试在服务器上同时使用 BZR_PLUGIN_PATH~/.bazaar/plugin 中的脚本,如果这样做,我会在日志中看到:

0.112  looking for plugins in /home/me/.bazaar/plugins
0.122  looking for plugins in /usr/local/lib64/python2.6/site-packages/bzrlib/plugins
0.123  Plugin name my_test_hook already loaded

这是来自远程工作站,因此插件显然已加载,但未执行。我已经把它简化了,所以它现在正在做的是:

def my_test_hook (local, master, old_revno, old_revid,
    future_revno, future_revid, tree_delta, future_tree):
    raise TipChangeRejected("Rejected")

所以它在执行时有点明显。有人可以告诉我我需要做什么才能让这个工作吗?即当我在我的工作站上做"bzr ci -m '...'" 时,我是否希望我的服务器中的钩子取消提交并说“拒绝”。

不幸的是,文档并没有真正帮助我。

【问题讨论】:

    标签: bazaar pre-commit-hook


    【解决方案1】:

    答案是:你不能。

    远程主机只看到一个 post-push,然后停止提交就太晚了,所以这样的钩子必须在每个客户端上本地运行。

    【讨论】:

      猜你喜欢
      • 2017-08-04
      • 2018-01-07
      • 2013-10-16
      • 1970-01-01
      • 1970-01-01
      • 2015-03-09
      • 1970-01-01
      • 2013-02-07
      • 2014-04-01
      相关资源
      最近更新 更多