0

オンライン svn リポジトリのミラー リポジトリを作成しようとしているので、オンライン リポジトリの変更を同期する機能を備えたソース コードを使用できます。ミラーレポからコードのチェックアウトを開始します。それに変更を加えます。

を使用して手順を実行しsvnsyncた後、実際に最初のsvnsync syncコマンドを実行した後、ソース コードはミラー リポジトリにコピーされていません。

の使用を誤解していますか、svnsyncそれともすべての svn ミラーリング メカニズムを誤解していますか? ミラー リポジトリからコードをチェックアウトするにはどうすればよいですか。それに取り組み始めますか?

ミラー svn リポジトリを作成するために次のことを行ったことに注意してください。

$ svnadmin create dest
$ cat <<'EOF' > dest/hooks/pre-revprop-change
#!/bin/sh
USER="$3"

if [ "$USER" = "svnsync" ]; then exit 0; fi

echo "Only the svnsync user can change revprops" >&2
exit 1
EOF

$ chmod +x dest/hooks/pre-revprop-change
$ svnsync init --username svnsync file://`pwd`/dest http://thesource/source/repos
$ svnsync sync file://`pwd`/dest
4

2 に答える 2

0

アーメド、

コミットを前後にプッシュ/プルできる git のような svn リポジトリを扱わないことをお勧めします。

ローカルのオフライン ミラーを扱う必要がある場合は、ここで git-svn が解決策になりますが、最初に注意深く学習してください。

于 2014-11-09T14:08:50.767 に答える
0

を使用してミラーを作成する手順で、不足している手順を見つけましたsvnsync。次のブログ投稿と投稿の 2 番目のコメントで説明されているように、次のコマンドを使用してパブリック リポジトリをダンプすることで問題が解決しました。

$ svnrdump dump http://sourceRepo/svn/repo > /tmp/sourceDump

-rXオプションでorを使用-rX:Yして、特定のリビジョンまたはリビジョン範囲をダンプできます。その後、次のコマンドを使用してミラー リポジトリの作成を開始します。

$ svnadmin create destRepo
$ cat <<'EOF' > /pathToCreatedRepo/destRepo/hooks/pre-revprop-change
#!/bin/sh
USER="$3"

if [ "$USER" = "svnsync" ]; then exit 0; fi

echo "Only the svnsync user can change revprops" >&2
exit 1
EOF

$ chmod +x /pathToCreatedRepo/destRepo/hooks/pre-revprop-change

その後destRepo、次のコマンドを使用して、ダンプ ファイルを新しいファイルにインポートする必要があります。

$ svnadmin load /pathToCreatedRepo/destRepo < /tmp/sourceDump

次のコマンドを使用して、同期の初期化を行います。

$ svnsync initialize --allow-non-empty file:///pathToCreatedRepo/destRepo http://sourceRepo/svn/repo

ここで引数--allow-non-emptyを追加して、SVN が以前にロードされた既存のダンプを同期できるようにする必要があることに注意してください。これsyncで、新しいdestRepo

$ svnsync sync file:///pathToCreatedRepo/destRepo

ミラー リポジトリからコードをチェックアウトできるようになりました :)

于 2014-11-10T16:27:52.317 に答える