現在、リモート Subversion リポジトリのクローンを実行しようとしています。リモート リポジトリは非常に低速なリンクでしか利用できないsvnsync
ため、ローカルの Subversion リポジトリを作成することにしました。約 30 時間後、Subversion リポジトリのローカル コピーができました。
これを新しいmercurialリポジトリにクローンするにはどうすればよいですか? 問題は、使用している次のフォームのどちらも機能していないfile:///
ように見えることです。
$ hg clone svn+file:///home/user/repo repo.hg
abort: repository svn+file:///home/user/repo not found!
$ hg clone file+svn:///home/user/repo repo.hg
abort: repository file+svn:///home/user/repo not found!
$ hg clone file:///home/user/repo repo.hg
abort: repository /home/user/repo not found!
逆に、情報を提供し、その場所に適切なサブバージョン リポジトリがあることを証明しますsvn info file:///home/user/repo
。svn://
サーバーをローカルで実行していないため、明らかに意味がありません。
私も試しました:
$ hgimportsvn file:///home/user/repo repo.hg
SVN branch isn't a copy
Finished! You can now pull all SVN history with 'hgpullsvn'.
しかし、hgpullsvn
最初の半ダースのリビジョンでのみ成功し、その後エラーになります:
Interrupted, please wait for cleanup!
External program failed (return code 1): hg '--encoding' 'utf-8' 'remove' '-A' 'branches/Company/CVSROOT'
branches/Company/CVSROOT: No such file or directory
(これは、CVSからSubversionへCVSROOT
の以前の変換に起因しているようです。これは私の時代よりも前のことです。)
で強制しようとしてもhgsvn
、プロトコル指定子を理解できませんか?file:///
svn+file:///
注意: 以前に via を複製しようとしhg
ましhgsvn
たが、しばらくしてから via を同期するときにエラーが発生しましたhgsvn
。履歴全体のクローンを作成するには非常に時間がかかるためhgsvn
、以前にリモートで行ったように、ローカルの Subversion リポジトリのコピーを使用してクローンを作成しました。