2

SVNリポジトリをMercurialに変換しようとしていますが、問題が発生しています。これらは私が取ったステップです:(私はWindowsを使用しています)

拡張機能で「変換」をオンにしました

コマンドウィンドウを開き、次のように入力しました。

hg convert http://myversioncontrorepositoryhere

宛先フォルダを初期化していると表示され、次のように尋ねられます。

Enter username for Administration at http://myversioncontrorepositoryhere:

ユーザー名を入力してから

 in Administration at http://myversioncontrorepositoryhere:

これが私のパスワードだと思いますが、ループバックします

Enter username for Administration at http://myversioncontrorepositoryhere:

私は何が間違っているのですか?ユーザー名とパスワードを正しく入力していると確信しています。

4

4 に答える 4

7

何がうまくいかないのかわかりませんが、回避策を提案したいと思います(これは私がこのタスクに個人的に使用した唯一の方法です!):最初にsvnプロジェクトをsvnsyncしてローカルミラーを作成し、hg convert次にローカルミラー-それはO'Sullivanが彼の本で示唆していることです(このURLには、「本からのサンプル」として、他のVCSからhgにプロジェクトをインポートするための関連する付録があります-svnに特に重点を置いています!)提案は主に速度の考慮に触発されています。それに従うことで認証と承認の手間も​​省けたと思います。あなたにも同じことができるといいのですが!-)

于 2009-11-01T17:12:21.407 に答える
3

代わりにhgsubversionを試してください。それははるかに堅牢です。WindowsでSubversionのCLIを操作する際に多くの奇妙な問題が発生しました(ほとんどの場合、別のシェルの代わりにCMDを使用することで解決しました)。

于 2009-11-01T17:04:09.490 に答える
1

ローカルチェックアウトから変換するだけで、認証の問題を修正できました。

svn co http://myversioncontrorepositoryhere localrepo
hg convert localrepo
于 2012-06-20T12:57:35.390 に答える
0

私の経験では、たくさんのプロジェクトと長年の歴史を持つ実際のSubversionリポジトリの変換はもう少し複雑です。主な理由は、Subversionでは、すべてのものに対して1つの巨大なリポジトリを用意しても問題がないためです。それどころか、Mercurialリポジトリはもっと​​きめ細かいものにすることをお勧めします。

次のSubversionリポジトリレイアウトを想定しています。

├── project1
│   ├── branches
│   ├── tags
│   └── trunk
│       ├── package1
│       └── package2
└── project2

変換は、独自の履歴を持つ個別のMercurialリポジトリに変わる必要がpackage1あります。package2この回答では、シングルパスに興味がありますが、タグとブランチの変換も可能です。

準備

私は通常、高速接続のリモートサーバーで変換を行います。Debianファミリの場合、次のパッケージが必要です。

apt-get install mercurial subversion python-subversion

次に、拡張機能の変換を有効にする必要があります。

echo -e "[extensions]\nhgext.convert=" >> ~/.hgrc

Windowsでは、前提条件を満たしていることを確認してください。

実行

リモートのsubversionリポジトリから直接変換を実行しようとすると、数時間かかる可能性があるため、以下ではプロジェクトのパスのミラーを作成することに注意してください。その後、各変換は数秒から数分の問題です。

cd /tmp
svnadmin create svn-mirror

# on Windows you may need to look at comments to accepted answer
echo '#!/bin/sh' > svn-mirror/hooks/pre-revprop-change
chmod +x svn-mirror/hooks/pre-revprop-change

svnsync init file:///tmp/svn-mirror svn://subversion.repo/project1
svnsync sync file:///tmp/svn-mirror

echo 'include project1/trunk/package1' > package1-map
echo 'rename project1/trunk/package1 .' >> package1-map    
hg convert --filemap=package1-map svn-mirror package1

echo 'include project1/trunk/package2' > package2-map
echo 'rename project1/trunk/package2 .' >> package2-map    
hg convert --filemap=package2-map svn-mirror package2

次に、パッケージディレクトリ内で、RhodeCodeなどのMercurialクライアントまたはリポジトリマネージャを使用して実行hg serve -p 8080およびクローンを作成できます。http://your.host:8080

于 2015-06-22T18:20:16.710 に答える