2013-06-05 76 views
2

我们使用Mercurial并建立了一个repo服务器,所有本地/开发人员更改都被推送到该服务器。我从假期回来后发现我们的一个回购券已被取代。显然,开发人员在推动提交的过程中遇到了问题,并认为唯一的解决方案是在我们的服务器上删除回购,并以新名称从他的计算机中推出新回购。不知道如何,但在这样做的过程中,我们在项目被吹走之前丢失了项目的所有变更历史。Mercurial - 重命名/合并存储库

到目前为止,我的本地计算机上仍然有完整的回购历史记录,并希望将新回购与旧回购合并,并保留完整的更改历史记录。如果我失去了历史记录,我很犹豫是否要对我的机器进行更新/更新。

我也想更新服务器上repo目录的名称,因为现在我们的一些工具已经损坏了repo的路径,并希望恢复到更新我们所有工具引用的初始目录名称。

我想我可以用hg rename来做我想要的重命名,但是如何将两个repos合并为一个?

回答

0

我找到了一种方法通过以下(有点)合并在这里说明:https://www.mercurial-scm.org/wiki/MergingUnrelatedRepositories

  • 首先,我做了我的本地回购的副本,以防事情进展横盘
  • 我克隆服务器上的回购这个名字我想这是和它匹配我的本地回购
  • 我没有在服务器上回购拉我的地方之一,而不是做一个更新,做了合并
  • 解决合并比较和本地提交
  • 到新的服务器回购的推动变化,证实富于变化的历史已经到位
  • 删除旧的服务器回购
+0

你形容一个很奇怪的一组事务;因为如果您回访时找到的服务器上真正缺少回购的历史记录,则应该是无关的回购,并且您无法从它合并。所以目前还不清楚你在那里处理的是什么问题。 – alexis