version-control - 人们如何管理对存储在多个 (Mercurial) 存储库中的公共(public)库文件的更改?

标签 version-control mercurial merge

这可能不是 Mercurial 独有的问题,但这是我最近使用最多的 SCM。

我从事多个项目,并且倾向于从以前的项目中复制库或实用程序的源代码,以便在开始新项目时占得先机。当我想将我在最新项目中所做的所有更改 merge 回那些共享库文件的“主”副本时,问题就来了。

由于存储在不相交的存储库中的文件将具有不同的版本历史记录,如果我只是将文件复制回主存储库(甚至在两个独立的项目之间),Mercurial 将无法执行智能 merge 。

我正在寻找一种简单的方法来保存更改历史记录,这样我就可以通过最少的外部记录保存将库文件 merge 回主文件(这是我较少使用 SVN 的原因之一,因为 merge 需要记住当跨分支机构进行复制时)。

也许我需要对我的存储库做更多的前期组织,以便为将来 merge 回一个共同的母版做好准备。

最佳答案

三种解决方案,选择你最喜欢的:

  1. 将所有项目放入一个存储库。
  2. 为共享代码创建一个单独的存储库,并为每个项目创建不同的存储库。
  3. 一个带有子存储库的存储库:https://www.mercurial-scm.org/wiki/subrepos ,将所有公共(public)代码保存在一个子库中,并为每个项目保留不同的子库。

在没有共同祖先的存储库之间复制实际文件永远不会是最优的,因为历史不会被保留。

关于version-control - 人们如何管理对存储在多个 (Mercurial) 存储库中的公共(public)库文件的更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1981457/

相关文章:

windows - GIT将资源共享到多个存储库

JavaScript 版本控制 : Managing versions from FE

Mercurial 存储库搜索/索引

file-io - TortoiseHg 中重命名文件的文件历史记录

c# - 将 3 个词典合并为一个词典

version-control - 删除了一些被 Mercurial 版本控制的文件,我该如何提交这些删除?

version-control - 我本地的 Mercurial 仓库中的 hgrc 在哪里?

mercurial - 更改 Mercurial "Default"父 URL

sql-server - 需要拆分 SQL Server 数据库以进行存档和报告的方法

version-control - 合并 IntelliJ IDEA .IPR 和 .IWS 文件