Mercurial Branching Push

时间:2014-04-28 21:33:26

标签: mercurial

美好的一天,

我有一个我使用Mercurial Hg开发的示例项目。它是一个驻留在以下位置的示例项目:

C:\发展\ Serivce

默认分支指向此位置。我在同一个位置创建了一个名为TestBranch的命名分支。我对默认设置进行了一些更改,我想推送到TestBranch以熟悉Mercurial如何进行分支。

当我使用" hg checkout default"切换到默认分支时,我尝试执行命令 " hg push TestBranch"我收到了以下输出:

C:\Development\Service>hg push TestBranch
pushing to C:\Development\Service
waiting for lock on repository C:\Development\Service held by 'dev-pc:4124'
interrupted!

C:\ Development \ Service>我在一分钟后按Ctrl-C。

问题是如何将我的更改从默认更改为TestBranch?

我更多地了解了在Mercurial中分支的各种方法。一些开发人员不喜欢命名分支方法,因为它不是短期项目的最佳实践。这将是一个持续的项目。幸运的是,这个示例项目驻留在我的本地计算机上,不会影响我团队的其他成员。

1 个答案:

答案 0 :(得分:2)

hg push TestBranch没有按照您的预期行事。它不是推动一个分支,而是推动回购TestBranch,这肯定不存在。

仅推送TestBranch的命令是这样的:

hg push -b TestBranch

但是,发布一个简单的hg push也会有用。如果没有-b TestBranch(或-r TestBranch),您将推送远程仓库中不存在的所有变更集,包括您创建的分支。

现在,对于你的锁,你实际上正在推动你发起推动的同一个回购。这肯定最终会陷入僵局。

C:\Development\Service>hg push TestBranch
pushing to C:\Development\Service

相反,如果您正在进行测试,请在PC上的其他位置创建一个repo克隆并推送到它。

hg push -b TestBranch c:\Development\Service-clone