在两个“客户端”存储库之间进行简单的推/拉以共享更改

时间:2014-01-16 20:31:23

标签: version-control mercurial dvcs

我正在通过Mercurial在工作中更正确地实现源控制,我遇到了一种情况。我的环境是两个带有服务器和大约4台开发计算机的程序员。我们的2个Office桌面中出现了大部分代码写入。然后在实验室中使用了2台笔记本电脑进行测试和调试 以前,我们刚刚在网络上运营;代码项目存在于服务器上,我的办公室和实验室笔记本电脑都通过网络打开文件。是的,我知道这不是最好的想法,但我们让它成功了。使用本地存储转移到更正确的DVCS模型时,我遇到了一个问题:如何从我的Office输入我的代码更新到实验室,这样我就能编写一个实际的芯片?我觉得这种程度的变化(10,20,50,甚至可能在一天的开发过程中甚至100次变化)都不需要通过服务器。个人意见认为,当我准备好与其他人分享我所拥有的内容时,应该保留对服务器的承诺......不一定要对项目感兴趣,只是准备分享我所在的位置。

我是否必须push到服务器,然后每次pull到笔记本电脑? 我可以在办公室和Lab笔记本电脑回购之间来回push/pull吗?我该如何设置该连接?

1 个答案:

答案 0 :(得分:1)

假设“服务器”是DVCS环境中的CVCS仿真(即仅为所有数据交换推送目标拉源)和“始终工作单分支”反模式未使用:< / p>

每个Dev-host都至少使用两个命名分支:个人(用于WIP)和共享(merge-target)“默认”。 WIP必须被推送到服务器,每个其他主机同步本地存储库与整个服务器的存储库(但“权威来源”只是默认分支)

纯DVCS模型

除了“Server”作为默认路径之外,每个Dev-host都有3个额外的条目用于其他Dev的工作场所和仅用于简单的仅拉式模型(没有额外的ACL和推送规则)。即(通过人工通信)本地http服务器(hg serve)在源(s)上按需激活,并在目标开发人员hg pull ANOTHERDEV上激活。源服务器可以在它之后停止。在这种情况下,个人命名的分支也不错 -

注意:`hg serve可以在所有4个dev-hosts上启用,组合pull命令(拉3另一个repos)xan在每个主机上定义为别名并在需要时使用,无需额外协商