Mercurial Repo有一个来自svn repo的子文件夹 - 可能吗?

Mat*_*tma 2 svn mercurial

有几个类似的问题,但我找不到任何足够接近,不提出一个新问题.

我们有一个由20多个项目组成的兼容性的vs2010解决方案.
我们还有一个承包商在其中一个项目的一部分上远程工作,一个Labview FPGA + RT + DotNetAssembly.

我最好将他的代码放入我们的Mercurial仓库的"ContractorsSVNRepo"(见下文)中,当我想要更新时,我下载他的svn仓库,如果我对它感到满意,那么我会致力于我们的mercurial仓库.

我可以访问他的svn repo以获得他的部分项目,但是出于安全/ IP原因,他无法访问我们的Mercurial仓库.因为我不熟悉mercurial我甚至不知道是否可以让他只访问一个回购的文件夹,所以这就是我想出的.

这会有用吗?能做到吗?我只是在目标文件夹中创建一个svn repo,下载它然后只将我想要的文件添加到我们的仓库?两个scc系统会在一起扭转/发挥得很好吗?我会尝试它,看看会发生什么,但我不熟悉mercurial但不想冒险破坏我们的mercurial repo并且无法快速恢复它.

OurAppsMercurialRepo
  Proj1  
  Proj2
  Proj3
    Proj3Folder1    
    Proj3Folder2  
    Proj3Folder3
    ContractorsSVNRepo 
  ...  
  Proj40  
Run Code Online (Sandbox Code Playgroud)

编辑1:
我不认为我已经做到了这一点,因为拉动来自另一台机器的更改只会拉动.hgsub文件,它不会拉动svn回购(或者我可以告诉,甚至尝试我没有被要求或添加任何登录详情).

我在我的机器上做了这个:
HG init ContractorsSVNRepo
创建.hgsub,其中包含"ContractorsSVNRepo = [svn] https://ContractorsRepo.com/svn/trunk"HG
add .hgsub
svn co https://ContractorsRepo.com/svn/ trunk ContractorsSVNRepo
HG status
HG commit -m"Subrepositories added"

但是,当我拉动另一台机器时,它会拉动.hgsub文件.链接的文档表明,对主要回购进行拉动将拉回两个回购,但它只会拉动多头回购?我错过了这些步骤吗?

EDIT2:

在OurAppsMercurialRepo内部:
svn co http://svn.contractor.com/svn/proj4other/trunk Proj3/ContractorsSVNRepo

将以下内容直接放在.AppsMercurialRepo内的.hgsub文件中:
Proj3/ContractorsSVNRepo = [svn] http://svn.contractor.com/svn/proj4other/trunk

从现在开始,当您提交OurAppsMercurialRepo时,在提交时修改subversion checkout存储在mercurial中

感谢您的回复,但是这并没有改变任何事情,我不担心,它仍然没有下载/更新svn源拉拉主回购,我现在得到一个错误,我的路径名称
"中止:路径包含非法组件:".
我怀疑这是因为我们的路径名称中有" . "所以我要放弃并创建一个单独的svn repo并手动将我想要的文件复制到mercurial中.它不会失败,它不会让其他开发人员头疼,我不会再浪费时间了.

tam*_*eek 6

是的可能.请参阅mercurial Subrepos - > https://www.mercurial-scm.org/wiki/Subrepository