0

クラスターからディレクトリをインポートして、ローカル トランクを作成しようとしています。これを行うためにsvn + sshを使用しようとしています。

svn import svn+ssh://user@cluster:/path/to/file file:///path/to/svn/repo/trunk -m "Initial import from cluster"
svn: 'svn+ssh://user@cluster:/path/to/file' does not exist

このコマンドに何か問題がありますか? 接続に関する最初の質問を明確にするために、問題なく ssh を使用してクラスターにログインでき、ファイルへのパスも正しいです。ローカル リポジトリは機能しており、その中に他のブランチがあり、ローカルでコミットしています。

4

1 に答える 1

0

まず、svn+ssh:// URL の user@cluster の後に : は必要ありません。

次に、インポートを使用して、あるリポジトリから別のリポジトリにコピーすることはできません。

このタスクには svnrdump または svnsync をお勧めします。

svnsync を使用するには、次のようにします。

svnadmin create repo
echo '#!/bin/sh' > repo/hooks/pre-revprop-change
echo 'exit 0' >> repo/hooks/pre-revprop-change
chmod a+x repo/hooks/pre-revprop-change
svnsync init file://`pwd`/repo svn+ssh://user@cluster/path/to/repo
svnsync sync file://`pwd`/repo

または svnrdump を使用:

svnadmin create repo
svnrdump svn+ssh://user@cluster/path/to/repo | svnadmin load repo

リポジトリのミラーをローカルに保持し続けたい場合は、おそらく svnsync が最善の方法です。将来的に sync コマンドを実行して、反対側に一致するようにリポジトリを更新できるからです。他の変更をローカル リポジトリにコミットすると、これを続行できなくなることに注意してください。ここで svnsync の詳細を読むことができます: http://svnbook.red-bean.com/en/1.7/svn.reposadmin.maint.html#svn.reposadmin.maint.replication

svnsync の説明は UNIX 環境を想定しています。Windows を使用している場合は、おそらく pre-revprop-change フックに関するビットをバット ファイルに置き換える必要があります。ここでいくつかの詳細を見つけることができます: What is a pre-revprop-change hook in SVN, and how do I create it?

リポジトリをフォークしてローカルで個別に作業したい場合は、svnrdump の方がおそらく優れています。ここで svnrdump の詳細を読むことができます: http://svnbook.red-bean.com/en/1.7/svn.reposadmin.maint.html#svn.reposadmin.maint.migrate.svnrdump

理想的には、クロス リポジトリ マージのサポートが向上することを望みます。これは、実際に探しているものに沿ったものになる可能性がありますが、それに対する適切な解決策はありません。ベンダーブランチを行うには、このかなり恐ろしい方法があります: http://svnbook.red-bean.com/en/1.7/svn.advanced.vendorbr.html

于 2013-08-23T07:06:23.483 に答える