2012-04-02 39 views
1

我与具有以下结构的Mercurial库工作:如何用文件夹替换Mercurial subrepo?

-- Root 
    -- .hgsub 
    -- SubDir 
     -- SubSubDir 
     -- SubRepo 

的.hgsub文件声明SubRepo如下:

SubDir/SubRepo = ssh://server//subcomponent 

我需要摆脱subrepo的,取而代之的是一个名为SubRepo的repo中的实际文件夹,所以我做了hg documentation的说明,删除.hgsub文件并提交。然后我把自己的东西放在SubRepo中,并承诺它,让我与:

-- Root 
    -- SubDir 
     -- SubSubDir 
     -- SubRepo 

丹迪。但是,当我试图从一个仍然有.hgsub文件的存储库中提取更改时,我遇到了麻烦。

是否有更好的方法来取代subrepository?还是有什么聪明的我应该做的更好地做这件事,比如使用一个选项来拉或临时更改我的.hgsub指向一个新的文件夹而不是完全删除它?

+0

仔细阅读部分“2.1。开始”关于微不足道的相对路径和**使用subrepo **与相对路径 – 2012-04-02 22:49:16

回答

2

你做得对。一旦你从仍然有.hgsub的回购中拉出,你需要合并你的头(没有.hgsub)与他们(他们),当你作为该合并/提交的一部分移除文件时,你会结束只有一个头没有.hgsub,并且全部都是正确的。只要你没有'hg更新'到他们的远程头仍然有.hgsub你应该没问题。

+0

啊哈!这个答案给了我更多的信心。结果发现我遇到的问题是使用获取(并可能在乌龟中使用它)的副作用。如果我做一个简单的拉和合并,我不会有同样的问题。谢谢! =) – 2012-04-03 15:47:33

+0

没有问题。就我个人而言,我完全避免获取。提取,更新和合并在DVCS中完全是逻辑上不同的操作,并将三条线索与合并中的痛苦,误解和蹩脚的提交消息混为一谈。 :) – 2012-04-03 15:51:07

相关问题