Mercurial-2.9 で TortoiseHG v2.11 をインストールしました
TortoiseSVN 1.8 で作成されたローカルの Subversion リポジトリを変換しようとしています。4、サブバージョン 1.8.5
古い Subversion リポジトリに奇妙な癖がないことを確認するために、デフォルトのフォルダー構造で test_repo という名前の新しい SVN リポジトリを作成し、test_repowc へのチェックアウトを実行してから、いくつかのテキスト ファイルをトランクに追加し、ファイルを変更してコミットしました。いくつかの歴史を提供するために数回。
次にcmd.exeを開き、フォルダーに移動して試しました
hg convert test_repo
そして以下を得ました:
assuming destination test_repo-hg
initializing destination test_repo-hg repository
test_repo does not look like a CVS checkout
test_repo does not look like a Git repository
file:///C:/Users/xxxxxx/Documents/Subversion/test_repo does not look like a Subversion repository
test_repo is not a local Mercurial repository
test_repo does not look like a darcs repository
test_repo does not look like a monotone repository
test_repo does not look like a GNU Arch repository
test_repo does not look like a Bazaar repository
cannot find required "p4" tool
abort: test_repo: missing or unsupported repository
ご覧のとおり、Mercurial は file:/// プロトコルを実行しましたが、Subversion リポジトリを認識できませんでした。file:/// プロトコルを自分で実行し、-s フラグでリポジトリ タイプを指定し、フォルダで Mongoose を実行し、URL としてリポジトリにアクセスしようとしましたが、どれも機能していないようです。また、リポジトリからではなく作業コピーから変換しようとしましたが、それもうまくいきません。
SVN 1.7 または 1.8 で導入された新しい SVN ファイル構造 (一部の SVN クライアントはしばらく互換性がありませんでした) と関係があるのでしょうか?
TortoiseSVN と TortoiseHG の現在のバージョンを使用して、これで運が良かった人はいますか?
私は、DVCS と Mercurial に夢中になって、これを超迅速に移行することを意図していましたが、すでに壁にぶつかっています。非常に単純であると多くの人が言っているのを読みましたが、奇妙なエッジケースを持っているか、噂が聞こえるほど簡単ではありません.
SVN を HG リポジトリとして複製できる HGSubversion などの他のツールについて読んだことがありますが、これらは単独のリポジトリであるため、SVN を変換し、すべてが機能することを確認してから、SVN を削除してアンインストールします。HG リポジトリがまだ SVN に「接続」されていない方がよいと思います (HGSubversion では、複製された HG リポジトリから親 SVN リポジトリへの「プッシュ」が可能ですよね?)。他のツールにはさまざまなレビューがあるため、変換拡張機能が機能することを望んでいました。
前もって感謝します - Mercurial を楽しみにしています!
編集:
Windows のソリューションの文書化:
- コマンドプロンプトを開く
- SVN リポジトリに移動します (作業コピーではありません)。
- 走る
svnserve -r .\ -d
- 別のコマンド プロンプトを開く
- Mercurial リポジトリが必要な場所に移動します
- オプション: 実行
where hg
... TortoiseHg バージョンが最初でない場合は、パスを編集して最初にします - このバージョンには、svn://
プロトコルを使用するために必要な SVN python バインディングが含まれています。パスを編集したら、コマンド プロンプトを再起動します。 走る
hg convert -s svn svn://localhost .\hg_repo_name
- localhost の代わりに computername.full.domain.name を実行しましたが、localhost も機能するはずです。
svn://
スラッシュの方向は似http://
ている、似てfile:///
いないC:\
- SVN リポジトリ コードにトランクがない場合、またはトランク フォルダーを使用していない場合 (何をしているのかわからなかったので、最初のリポジトリでは使用しませんでした)、mercurial に使用するように指示するこれが必要です。トランクとしてのルート ディレクトリ:
hg --config config.svn.trunk= convert -s svn svn:\\localhost .\hg_repo_name
- コードのフォルダーをルートにインポートしましたが、トランクにはインポートしなかったSVNリポジトリがありました...上記のコードを使用して、トランクをコードフォルダー名と同じに設定しようとしましたが、機能しませんでした...ただし、フォルダー名をsvn URLに追加すると、機能しました:
`hg convert svn://%computername%.domain.com/code_folder .\hg_repo_name
幸運を!