主にHgを使用してbitbucketでホストされているプロジェクトをgithubにミラーリングするための効率的なワークフローはありますか?
hg-git
のようなツールを使用して次のことができます。
- プッシュアクセスできる場所にGitリポジトリをセットアップします。
- 次に、プロジェクト内から
hg Push [path]
を実行します。例えば:
$ cd hg-git # (a Mercurial repository)
$ hg bookmark -r default master # make a bookmark of master for default, so a ref gets created
$ hg Push git+ssh://[email protected]/schacon/hg-git.git
$ hg Push
これにより、すべてのMercurialデータがGitオブジェクトに変換され、Gitサーバーにプッシュされます。
そのパスを[paths]
の.hg/hgrc
セクションに配置して、名前でプッシュすることもできます。
プロジェクトにMercurialを使用すると、プロジェクトのgitミラーをすばやく簡単に作成して、gitユーザーが貢献できるようになります。 hg-git
を使用してGitHubでMercurialミラーを管理する方法についてのチュートリアルを作成しました。
GitHubアカウントの使用を開始する方法、MercurialからGitHubにプロジェクトをプッシュする方法、GitHubからの投稿(プルリクエスト)を受け入れる方法について説明します。ブログ投稿へのリンクは次のとおりです。 http://hgtip.com/tips/advanced/2009-11-09-create-a-git-mirror/
git-remote-hg をbinパスに追加します。次に、 githubに記載 としてミラーリングできます。
git clone --mirror hg::https://bitbucket_repo
次に、クローンリポジトリに移動します
git remote set-url --Push Origin https://github.com/exampleuser/mirrored
最後に、ミラーを同期します
git fetch -p Origin
git Push --mirror
2013年7月の時点で、 BitSyncHub BitBucketの受信後フックを介してこのプロセスを自動化するためのWebサービスがあります。ただし、GitHubリポジトリにサービスの書き込み権限を付与する必要があります(寄稿者としてbitsynchubを追加します)。
私は2019年2月から報告しています。私はちょうどこの問題に遭遇し、 @ voncの提案 を使用して hg-git を使用し、それを機能させるためにいくつかの不足している手順を埋めました。ここでは、より詳細なガイドを提供します。
[extensions]
hggit = [path-to]/hg-git/hggit
ソースリポジトリで最新のインストール手順を見つけました: https://bitbucket.org/durin42/hg-git 。だから目を離さないでください。
インストール dulwich まだの場合:pip install dulwich
。
GitHubに新しい空のリポジトリを作成します(例: https://github.com/user/git-mirror )。
Hgソースリポジトリのクローンを作成し、それをgitミラーにプッシュします。
$ hg clone https://bitbucket.org/user/hg-source
$ cd hg-source
$ hg Push git+ssh://[email protected]/user/git-mirror.git
すばやく変換するためのもう1つの利用可能なソリューション: https://github.com/frej/fast-export
Git-hgミラーサービス を使用してこれを行うことができます(GitHubリポジトリをBitbucketにミラーリングすること、または双方向で同期することを含む)。