2010-11-19 15 views
11

私はHGサーバーとしてBitbucketを使用しているプロジェクトを持っていますが、最近、孤独な開発者としてFogbugz/Kilnを無料で使用できることがわかりました。私はキルンにファイルを移動したいが、私は自分の歴史を失いたくない。私はそれを行うために死ぬばかげた簡単な方法があると確信していますが、私は知らない。これはどうすればいいですか?履歴を失うことなく、Mercurialサーバーから別のMercurialサーバーに移行するにはどうすればよいですか?

ありがとうございます!

答えて

11

新しいプロジェクトレポを作成し、オリジナルのレポのあなたの現在のコピーで次の手順を実行しますhg push new-repo-path

その後、新しいパスを使用します。ビットバケットレポを削除することができます。

Mercurialでは、すべての履歴がローカルコピーを含むリポジトリのすべてのコピーにあります。

+0

ok cool ... then pushした後、新しいRepoパスからクローンを作成して、将来、そこにリダイレクトされるようにしますか? – Jason

+0

@ Jason no - '.hg/hgrc'を編集して、デフォルトリポジトリのパスを更新することができます。 Mercurialリポジトリは問題なく同じリポジトリの他のコピーにプッシュ/プルすることができます。リポジトリと元のソースを結ぶ '.hg/hgrc '以外は何もありません。 –

3

すでにMercurialを使用しているためです。私はちょうど興味があったので、Fogbugz/Kilnのリポジトリを十分に複製するべきではありません。

hg clone "BitBucket Repo ..." 

もちろん、これはあなたのリポジトリ毎のhgrcファイルをコピーしません。あなたはそれを別々に行う必要があります。

もう1つの方法は、bundleを使用することです。

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

第3のアプローチは、bitbucket repoからfogbugz repoにプッシュまたはプルすることです。

設定デフォルト

参照:https://www.mercurial-scm.org/wiki/TipsAndTricks。ここでそれを再現

あなただけの「HGプッシュ」と入力するときに使用されるデフォルトのプッシュURLを格納することが可能です。編集hgrcと同じようなものを追加します。

[paths] 
default-push = ssh://[email protected]/path 
+0

私はレポを複製することを考えましたが、私は 'hg push 'をしたら、ビットバケットの代わりに新しいfogbugzリポジトリに行くことを確認したいと思います。 – Jason

+0

@Jason:デフォルトを設定することですべきです。私の編集された答えを見てください。 – pyfunc

0

その他の回答では、新しい空のリポジトリを作成した直後に、変更内容をhg push http://example.com/hg/newrepoでプッシュできます。 (一部の変更をプッシュすると、今後は関連するリポジトリからの変更のみが受け入れられることに注意してください)。

また、ローカルリポジトリを設定して場所を指定する必要はありません。毎回URLを指定する必要はありません。リポジトリの.hg\hgrcファイルのdefault locationを編集することでそれを行うことができます。メモ帳などのテキストエディタで開くことができるテキストファイルです。

関連する問題