Bazaar:在推送时自动远程修改写入远程分支

时间:2012-02-03 18:07:05

标签: file push bazaar revision

我希望在每次推送时将最新的远程修订号提交到远程树的文件。 following thread回答了在提交时在本地执行此操作的问题,有没有办法在推送时远程执行?

换句话说,start_commit是否有类似“start_push”的类比/解决方法?

我想这样做是为了允许将自己的版本化分散在本地树中,同时为“中心”树保持单独的版本控制。因此,不同的开发人员应该能够从中央服务器分支,然后通过任何本地提交在本地树中分叉并推送/合并。所有树都应该通过树序列及其修订的组合自动且唯一地进行版本化,该树序列被写入作为树的一部分的文件。例如,(一个开发人员的xyz本地)提交,树'xyz'的修订号为127,将'xyz.127'提交到树的VERSION文件中。但是,将此修订推送到“中央”树应该例如将“central.98”提交到中心树(如果“中央”树中的最后一个修订版为97)。

它对本地提交工作正常,但我不知道如何在远程推送上实现所需的行为。请注意,修订的本地分支与远程分支不同,这不是问题。实际上是希望的。

或者,实现相同目标的不同设置(使用自己的版本分散本地树以及为'中央'树分开版本)也将非常受欢迎!

1 个答案:

答案 0 :(得分:2)

您需要在注册post-change-branch-tip挂钩的服务器上安装插件。

未经测试的例子:

from bzrlib.urlutils import local_path_from_url
from bzrlib.osutils import pathjoin

def post_change_branch_tip_hook(params):
    root = local_path_from_url(params.branch.base)
    path = pathjoin(self.root, 'revno.txt')
    f = open(path, 'w')
    try:
        f.write('%s\n' % params.new_revno)
    finally:
        f.close()