如何在不丢失历史的情况下从一个Mercurial服务器迁移到另一个服务器?

时间:2010-11-19 21:07:14

标签: mercurial migration

我有一个项目,我使用Bitbucket作为我的HG服务器,但我最近发现,作为一个单独的开发人员,我可以免费使用Fogbugz / Kiln。我想把我的文件移到Kiln但是我不想丢失我的历史。我确信有一个死傻的简单方法,但我只是不知道。我该怎么做?

谢谢!

3 个答案:

答案 0 :(得分:11)

创建新的项目仓库,并使用原始仓库的当前副本执行以下操作:hg push new-repo-path

然后您将来使用新路径。你可以删除bitbucket repo。

使用Mercurial,所有历史记录都在存储库的每个副本中,包括您的本地副本。

答案 1 :(得分:3)

因为您已经在使用Mercurial。我只是很好奇,不应该在Fogbugz / Kiln上克隆你的存储库就足够了。

hg clone "BitBucket Repo ..."

当然,这不会复制每个存储库的hgrc文件。你需要单独完成。

另一种方法是使用bundle。

hg bundle --all bitbucket.bundle
hg clone bitbucket.bundle my_repo

第三种方法是将bitbucket repo推送或拉出到fogbugz repo。

  

设置默认值

请参阅:https://www.mercurial-scm.org/wiki/TipsAndTricks

在此处重现:

可以存储默认的推送URL,当您只键入'hg push'时将使用该URL。编辑hgrc并添加如下内容:

[paths]
default-push = ssh://hg@example.com/path

答案 2 :(得分:0)

其他答案已经解释过,在创建新的空存储库后,您可以使用hg push http://example.com/hg/newrepo将更改推送到其中。 (请注意,一旦您将一些更改推入其中,它将来只会接受来自相关存储库的更改。)

您似乎还想知道的是,如何配置本地存储库以默认推送到该位置,而无需每次都指定URL。您可以通过编辑存储库的.hg\hgrc文件中的default location来执行此操作。这是一个文本文件,您可以使用记事本或任何其他文本编辑器打开它。