我们有一个集市服务器,很多人都连接到该服务器。我想为每个用户运行一些预提交挂钩,对我来说,在服务器上运行这些挂钩是最有意义的,因为我无法控制所有连接的计算机。我以为这是一个简单的任务,但我现在被困住了。
我现在的状态是:
- 如果我在我的工作站上安装脚本,钩子会起作用。
- 如果我在服务器上安装脚本,它将适用于在那里完成的提交。
- 将它安装在服务器上并在我的工作站上提交它正在加载但被忽略。
我已经尝试在服务器上和服务器上都使用脚本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 '...'"
在我的工作站上做时,我是否希望我的服务器中的钩子取消提交并说“拒绝”。
不幸的是,文档并没有真正帮助我。