mercurial - 如何在不再次拉取 subrepos 的情况下制作本地克隆?

标签 mercurial clone dvcs subrepos

我经常与 Mercurial 合作,在本地存储我的上游克隆,然后在本地再次为我的实际工作环境克隆:

$ cd /clones
$ hg clone ssh://external-repo.example.com/some/repo/path/foo
$ cd ~/Development
$ hg clone /clones/foo

这对我来说特别有用,因为我经常想在飞机上制作新的克隆,等等,在那里我无法访问互联网。但是,当原始克隆包含子存储库时,这不起作用 - .hgsubstate 的存在文件意味着 hg将始终上网,而不是获取本地克隆修订版(即使它们相同)。有没有办法让本地克隆复制文件而无需上网?

This question有一个可能有效的答案,但对于长期管理来说似乎非常不幸(删除 .hgsubstate 中克隆中的 /clones/ 文件,然后从中制作本地克隆)。

最佳答案

您可以在 .hgsub 中使用“平凡”的子存储库路径。像这样的文件:

foo = foo
bar = bar

这是recommended setup .设置布局的优点是克隆具有 相同结构作为您从中克隆的存储库。因此,您可以在飞机上克隆您的克隆。

或者,您可以使用 [subpaths] 设置将 URL 重新映射到本地路径。这让你添加
[subpaths]
http://server/(.*) = /clones/libs/\1

给您的 ~/.hgrc文件,然后你会看到路径被重新映射到 /clones/libs当你克隆。

关于mercurial - 如何在不再次拉取 subrepos 的情况下制作本地克隆?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9427988/

相关文章:

git - 我可以从另一个分支添加对暂存区的更改吗?

git - NuGet 和分布式版本控制 (DVCS)

version-control - 在 Windows Server 2008 上设置 Bazaar SmartServer(无需 ssh)

git - 使用 GIT 和 HG 是否有任何有害命令

version-control - 没有 merge 的情况下如何 merge Mercurial中的两个分支

java - 如何克隆ArrayList并克隆其内容?

java - 克隆 GregorianCalendar 的最快方法是什么?

svn - 使用 "abort: unable to cope with svn output"命令将 Mercurial 存储库转换为 SVN 存储库时出现错误 "hg.exe convert"

visual-studio - 为什么 mercurial (hg) 将我的 Visual Studio 解决方案 (.sln) 视为二进制文件?

c# - MemberwiseClone 与新对象