从另一个mercurial存储库中提取单个文件
可能重复:
Mercurial:将一个文件及其历史记录复制到另一个存储库
我在本地机器上有几个存储库。 一个是我的主要代码,另一个是各种有用的代码/工具。 这是两个根本不同的回购。 建立一个新的回购协议并将其作为次回购协议可能是有意义的,但是我希望等到Mercurial开始将sub-repos标记为非实验之后再执行此操作。
其中一个有用的代码文件已经变得非常有用,我想把它放到我的主代码区域......但我想保持它的历史。 这当然会导致一些分支的变体,但这是可以接受的。 (最好的情况是能够来回推拉它并不断更新它的历史记录)。
我只是使用1.3版中的online子功能。 它可能会稍微变化,但不会太高,并且干燥后向兼容性明智。
如果你不能如此,那么你需要做的是:
hg convert
和一个filemap,删除除了你想要的文件之外的所有文件,并从单个有用文件的repo转换为仅包含该文件及其所有历史记录的新repo hg pull
从新的单一文件全历史仓库中回收到目标仓库 hg merge
到目标回购中,并且您将拥有该文件及其所有历史记录 另一个选择是将hg export
整个工具repo,使用grepdiff
( grepdiff
一部分)限制为只有一个文件,然后导入到目标repo中,但这太疯狂了。
简短的回答是,您无法简单地复制文件及其历史记录,如本主题中所述:
https://www.mercurial-scm.org/pipermail/mercurial/2009-April/025105.html
我对DVCS比较陌生,你真的必须将每个回购视为一个独立包装。 不像svn或p4,您可以在根目录下挂载不同的项目,并配置它的喜欢方式并执行部分回购签出。 (也就是说,我非常喜欢能够快速克隆回购的灵活性,并能够在本地机器上进行提交。)
我只是在看类似的问题。 我已经分支回购进行更改,我只想从一个变更集中取出一个文件。 有历史感觉真好。
你可以看看:
hg cat
这可能会涉及编写一个脚本来传输历史记录,即在目标回购库中提交N个变更集与来自源代码的hg cat结果。 不知道是否有扩展来做到这一点?
您可以获取要复制的文件的日志,并将其粘贴到提交注释中。 它不在元数据中,但你有一个记录和所有的哈希值等。
也许
hg export
也可以帮助你。
链接地址: http://www.djcxy.com/p/37627.html上一篇: Fetching a single file from another mercurial repository