tortoisehg和subrepos

adr*_*anm 9 mercurial tortoisehg subrepos

我无法让Tortoisehg(1.0)与subrepos合作

我有这样的目录结构:

root
  .hg
  .hgsub
  .hgsubstate
  Customer1
    Project1
      .hg
      foo.txt
    Project2
      .hg
  Customer2
    Project3
      .hg
Run Code Online (Sandbox Code Playgroud)

root下的.hgsub文件看起来像

Customer1\Project1=Customer1\Project1  
Customer1\Project2=Customer1\Project2  
Customer2\Project3=Customer2\Project3  
Run Code Online (Sandbox Code Playgroud)

如果修改文件Customer1\Project1\foo.txt并从根提交它可以工作

>hg ci -m "command line commit"
committing subrepository customer1\project1
Run Code Online (Sandbox Code Playgroud)

在Tortoisehg customer1\project1中显示状态S(subrepo)但在提交时我收到一条消息

abort: customer1/project1: no match under directory!
Run Code Online (Sandbox Code Playgroud)

是不支持这种情况还是我做错了什么?

该文档说:
"TortoiseHg 1.0引入了对子库的基本支持,并且仅在提交/状态工具中.当Mercurial认为subrepo为脏时,它将作为文件列表中的特殊条目出现在提交工具中,状态为S如果子提要包含在提交的文件列表中,则子提示与其他更改一起提交,更新主存储库根目录中的.hgsubstate文件.

小智 9

我有几乎相同的问题,并开始尝试一大堆变化,我终于通过在等号的两侧使用正斜杠(/)而不是任何地方的反斜杠(\)让它为我工作.

所以试试......

Customer1/Project1=Customer1/Project1  
Customer1/Project2=Customer1/Project2  
Customer2/Project3=Customer2/Project3 
Run Code Online (Sandbox Code Playgroud)

此外,当它不工作时,我的.hgsubstate文件中只有一堆零.当它开始工作时,它有一个真正的GUID.

  • 你搬到了什么地方? (8认同)

Ric*_*ide 7

通过使用命令行为主repo我能够解决这个问题.

hg commit -m 'Updated subrepo'
Run Code Online (Sandbox Code Playgroud)