首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将汞库移动到另一个服务器

将汞库移动到另一个服务器
EN

Stack Overflow用户
提问于 2013-05-15 01:19:47
回答 3查看 7K关注 0票数 5

我们有一个生活在汞储存库中的项目。

我们的客户希望通过以下操作获得代码库的所有权:

  1. 在属于客户的服务器上设置一个mercurial存储库。
  2. 将现有代码导入新的汞存储库。

实现第二步的最佳方法是什么?

做以下几件事是否简单呢?

  1. 克隆现有的汞存储库: hg克隆
  2. 将克隆的存储库推入新的存储库: hg推

我有错过任何步骤吗?hgrc文件呢?在将项目推入新的存储库之前,是否必须以任何方式对其进行修改?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-05-15 15:14:59

是的,您可以做您声明的事情,但是值得注意的是,如果您对主存储库执行了一个简单的hg clone,那么这两者之间就会存在一个链接,这可能不是您想要的。您可以通过编辑.hg/hgrc文件和删除[paths]部分中的default = ...项来删除此链接。

我发现一个更好的方法是不进行克隆。这样,您就没有存储库之间的链接,这可能是您想要的结果,因为这是给客户的。

基本方法是建立一个没有变更集的新储存库,然后以三种方式之一引入所有变更集:

  1. 将更改从存储库推送到新存储库。
  2. 将更改从旧库中提取到新存储库。
  3. 如果您没有访问新存储库的权限,请创建一个可以提供给客户的包--然后可以将其解压缩或拖到空的回购包中。

推拉按通常的方式进行,但指定存储库的位置:

代码语言:javascript
运行
复制
// create the empty repository
hg init .
// pull in everything from the old repo
hg pull /projects/myOriginalRepo

或者推..。

代码语言:javascript
运行
复制
// create the empty repository
hg init /projects/myNewRepo
cd /projects/myOriginalRepo
hg push /projects/myNewRepo

创建一个包也许是一种更好的方法,因为您可以将这个包写到DVD上,然后将它送给您的客户,用一张漂亮的贺卡包在蝴蝶结中:

代码语言:javascript
运行
复制
cd /projects/myOriginalRepo
hg bundle --all ../repo.bundle

所有的东西都写到一个文件中,然后用hg unbundle repo.bundlehg pull repo.bundle将其提取到一个没有任何变更集的存储库中。

关于hgrc文件,正如在另一个答案中已经提到的,它不是一个受控文件,因此不会被复制。但是,任何内容都可能是执行自动生成的钩子,或者是在应用之前验证更改集。这是一种逻辑,可能只对你自己的组织有意义,我建议你不要把这个强加给你的客户--毕竟,他们拥有你的代码库,并且可能有他们自己的系统来处理类似的事情。

票数 8
EN

Stack Overflow用户

发布于 2013-05-15 01:23:44

在简单的情况下-仅此而已。

但是,如果已经修改了.hg/hgrc文件,则需要手动将其移动到远程服务器,并(如果有必要)相应地修改它以适应新的环境。

Ie:您可以在原始存储库中设置钩子。

对于客户端,只需更改default部分中存储库的路径(如果有多个指定部分,则更改任何其他部分)即可。

票数 3
EN

Stack Overflow用户

发布于 2013-05-16 11:01:39

要移动主存储库,您需要(a)创建新的主回购和(b)告知现有客户端。

  • 以任何你想要的方式创建新的主回购:克隆或init+pushing,这几乎没有什么区别。确保移动不受版本控制的旧回购文件的任何内容,包括.hgrc和任何不可丢弃的不版本文件或被忽略的文件。如果您克隆,编辑新的母版的.hgrc并删除default路径,这样它就不再试图与旧的主回购进行对话了。
  • 现有的克隆老主人回购仍然推/拉从老主人。每个人都必须编辑他们的.hgrc,更新default (和/或default-push)以便它指向新的位置。(当然,它们还可能需要更新身份验证凭据)。

只有这样,迁移才能完成。删除(或移动/隐藏)原始回购,以便如果有人忘记更新他们的回购路径,他们将得到一个错误的推/拉,而不是将数据倒进一个记忆孔。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16555278

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档