善变的:如何同步mq贴从一个主repo为mq贴到一定的克隆repos
-
26-09-2019 - |
题
我需要运行一个十几个不同的建立测试,在一个码基本保持在一个善变的储存库。我不想连续运行这些试验在同一个储存库,因为它们修改了一套共同的文件和我要他们在平行在不同的机器。此外,在所有的测试都行我想要访问的最新试验的结果,从这些试验的工作领域。目前我的克隆的主存储库的一个时间和运行在每个克隆一个不同的测试。在每次试验之前执行,我做个拉/更新/清除制序列,以便开始测试最新的干净的状态。这就是为我好。
我还准备了新的变化使用mq扩展,我将测试在所有的克隆,作为上述承诺之前。为试验一些准备候选mq补丁我想以某种方式来部署同步,它们可用于克隆试验和应用这些准备用于测试,测试采用一些警卫队之前,运行测试。
有没有人做这个同步吗?什么是最简单的方法来做到这一点?我需要有版本mq贴片吗?
解决方案
贴剂能够保持在自己的仓库提供你通过“-c”切换到qinit像这样
hg qinit -c
您可能仍然能够通过创建在事后补丁回购
cd .hg/patches
hg init
hg addremove
hg commit -m "my patches"
但我还没有过尝试,亲自
然后.hg /补丁可以像任何其他水银储存库处理。所以我想你也许会推出一些shell脚本。进入你克隆回购.hg目录,并做了
hg clone http://centralrepo.com/patch_repo ./patches
其他提示
这里是解决方案,我已经实现。几点注意事项:
- 所有增补程序的守卫与ready_for_testing和那些无人看守的应用进行测试。
- 使用版本repos更好,因为我们可以把抽象的队列中的储存库的执行情况
- 我使用水银1.5.1
- 主回购是在
master
dir - 克隆repos是在
clone-x
dirs
下面是步骤(有些可能是optional):
一旦:把贴在主储存库的版本控制下使用水银:
a.hg -R master init --mq
#没有提交发生在这里,可以做到后面
b.hg -R master commit --mq --addremove --message 'initial patch queue'
#让他们见到克隆repos对每个克隆,一旦后,克隆创造的完成:假设没有增补程序创造了尚未对克隆,初始化mq子储存库:
a.hg clone master\.hg\patches clone-x\.hg\patches
b.hg -R clone-x qselect ready_for_testing
为每个变化的时准备在主(贴创建/进口在mq回购):这样做之前,启动试验:
a.审查/更新警卫的mq补丁:这些包括用于测试应该是无人看守或与+ready_for_testing
b.hg -R master commit --mq -A
#让他们见到克隆repos对每个克隆,对于每个[测试]迭代,每个克隆:这样做准备顺序之前,运行实际测试:
a.hg -R clone-x qpop --all --force
b.hg -R clone-x pull
c.hg -R clone-x update --clean
d。hg -R clone-x purge --all
e.hg -R clone-x pull --mq
f.hg -R clone-x update --mq
g。hg -R clone-x qpush --all
的水银版本1.5如,可以创建在一个已经存在的水银的贴剂队列存储库使用下面的命令REPO:
hg init --mq
这是确定有排队的补丁,当你发出一个命令。