我经常使用 Mercurial,在本地存储我的上游克隆,然后在本地再次克隆以适应我的实际工作环境:
$ cd /clones
$ hg clone ssh://external-repo.example.com/some/repo/path/foo
$ cd ~/Development
$ hg clone /clones/foo
这对我来说特别有用,因为我经常想在飞机等无法访问互联网的地方进行新的克隆。但是,当原始克隆包含子存储库时,这不起作用 - 存在.hgsubstate
文件意味着hg
将始终访问互联网,而不是获取本地克隆版本(即使它们是same)。有没有办法让本地克隆复制文件而无需访问互联网?
这个问题 https://stackoverflow.com/questions/3436549/mercurial-hg-clone-but-ignoring-all-subrepos有一个可能有效的答案,但对于长期管理来说似乎非常不幸(删除.hgsubstate
文件在克隆中/clones/
,然后从中制作本地克隆)。
您可以在您的目录中使用“简单”的子存储库路径.hgsub
像这样的文件:
foo = foo
bar = bar
这是推荐设置 https://www.mercurial-scm.org/wiki/Subrepository#Recommendations。设置布局的优点是克隆具有结构相同作为您克隆的存储库。因此,您可以在飞机上克隆您的克隆体。
或者,您可以使用[subpaths] http://www.selenic.com/mercurial/hgrc.5.html#subpaths设置将 URL 重新映射到本地路径。这可以让你添加
[subpaths]
http://server/(.*) = /clones/libs/\1
to your ~/.hgrc
文件,然后你会看到路径被重新映射到/clones/libs
当你克隆时。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)