Version control 简单的推/拉两个“;“客户”;共享更改的存储库

Version control 简单的推/拉两个“;“客户”;共享更改的存储库,version-control,mercurial,dvcs,Version Control,Mercurial,Dvcs,我正在工作中通过Mercurial更正确地实现源代码控制,我遇到了这样的情况。我的环境是两个程序员,有一台服务器和大约4台开发人员计算机。我们有两台办公桌,大部分代码都是在这里编写的。实验室里还有两台笔记本电脑用于测试和调试。 以前,我们只是通过网络进行操作;代码项目位于服务器上,我的办公室和实验室笔记本电脑都通过网络打开了文件。是的,我知道这不是最好的主意,但我们成功了。转移到一个更正确的带有本地回购协议的DVC模型给我带来了一个问题:我如何从办公室获得代码更新,在那里我在实验室打字,这样我就

我正在工作中通过Mercurial更正确地实现源代码控制,我遇到了这样的情况。我的环境是两个程序员,有一台服务器和大约4台开发人员计算机。我们有两台办公桌,大部分代码都是在这里编写的。实验室里还有两台笔记本电脑用于测试和调试。
以前,我们只是通过网络进行操作;代码项目位于服务器上,我的办公室和实验室笔记本电脑都通过网络打开了文件。是的,我知道这不是最好的主意,但我们成功了。转移到一个更正确的带有本地回购协议的DVC模型给我带来了一个问题:我如何从办公室获得代码更新,在那里我在实验室打字,这样我就可以编写一个实际的芯片?我觉得这种级别的更改(在一天的开发过程中,10、20、50甚至100个小更改)不需要经过服务器。个人观点是,对服务器的承诺应该保留到我真正准备好与他人分享我所拥有的东西时。。。不一定完成了这个项目,只是准备分享我的想法

我是否每次都必须
推送到服务器,然后
拉到笔记本电脑上?

我可以在办公室和实验室笔记本电脑之间来回推拉吗?如何设置该连接?

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

每个开发主机至少使用两个命名分支:personal(用于WIP)和shared(合并目标)“default”。WIP必须推送到服务器,每隔一台主机将本地存储库与整个服务器的存储库同步(但“权威源”只是默认的分支)

纯DVCS型号

除了“服务器”作为默认路径外,每个开发人员主机都有3个其他开发人员工作区的附加条目,并且为了简单起见使用了纯拉模型(没有额外的ACL和推送规则)。即(通过人工通信)本地http服务器(
hg-serve
)在源开发者和目标开发者上按需激活
hg-pull-ANOTHERDEV
)。源服务器运行后无法停止。在这种情况下,个人命名分支也是个不错的主意


注意:`hg serve可以始终在所有4台开发人员主机上启用,组合pull命令(pull 3 Other repos)xan可以定义为每个主机上的别名,并在需要时使用,无需额外协商

在您的情况下,“服务器”是什么?在DVCS世界中,这样的术语并不存在(或含义过于宽泛)@Lazy-Badger——它只是一个文件服务器,映射到我计算机上的驱动器号
hg-serve
,在我的脑海中,事情就变得不那么有意义了。每次我想从另一台dev机器上提取时,是否必须停止并重新启动目标?或者,一旦http服务器运行,我就可以全天不停地拉它,以获得更多最新的更改?@Adam-您可以开始停止“按需”服务,或者让它始终处于活动状态(这不需要您进行任何其他操作-只要在需要时拉就行了)