美好的一天,
我有一个我使用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中分支的各种方法。一些开发人员不喜欢命名分支方法,因为它不是短期项目的最佳实践。这将是一个持续的项目。幸运的是,这个示例项目驻留在我的本地计算机上,不会影响我团队的其他成员。
答案 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