这可能不是Mercurial特有的问题,但那是我最近一直在使用的SCM。
我在多个项目上工作,并倾向于复制先前项目中的库或实用程序的源代码,以便开始一个新项目。当我想将我在最新项目中所做的所有更改合并到这些共享库文件的“主”副本中时,问题就出现了。
由于存储在不相连的存储库中的文件将具有不同的版本历史记录,如果我只是将文件复制回主存储库(甚至两个独立项目之间),Mercurial将无法执行智能合并。
我正在寻找一种简单的方法来保存更改历史记录,这样我就可以将库文件合并到主服务器上并保留最少的外部记录(这是我使用SVN的原因之一,因为合并需要记住当副本跨越分支时。)
也许我需要对我的存储库进行一些更多的预先组织,以便为将来的合并做准备回到公共主人。
答案 0 :(得分:5)
三种解决方案,选择你最喜欢的:
在没有共同祖先的存储库之间复制实际文件将永远不会是最佳的,因为历史记录不会被保留。
答案 1 :(得分:1)
我建议不要使用“复制源代码”练习,而是使用二进制分发代替自定义库。这些二进制文件沿源代码签入。
编辑:对于“普通”或“工具箱”库的问题,请阅读ayende的this post。
答案 2 :(得分:-2)
使用移植扩展