svn日常管理
svnのバックアップリストアについて、とても役に立ちました.
svnリポジトリのバックアップ
圧縮バックアップ svnadmin dump /home/workhome/svn/repository | gzip > ~/repository-backup.gz #非圧縮バックアップ svnadmin dump /home/workhome/svn/repository > ~/repository-backup.svn
svnリポジトリのリカバリ
#新しいsvnリポジトリ を構築 svnadmin create /home/workhome/svn/newrepository #成功確認 ls -l /home/workhome/svn/newrepository #リポジトリデータのインポート svnadmin load /home/workhome/svn/newrepository < ~/repository-backup.svn
その他のsvnネーミング
svnadmin recover–バージョン・ライブラリ・データベースを安定した状態に復元
svnadmin recover /home/workhome/svn/newrepository
リポジトリから不要なログファイルを削除
svnadmin list-unused-dblogs /home/workhome/svn/newrepository/ | xargs rm -vf
リポジトリ内の残りの共有メモリファイルをすべて削除
rm -f /home/workhome/svn/newrepository/db/_db.0*
svnsyncの実装
svnsyncを実装する唯一の前提条件は、ミラーリングしたいバージョンライブラリを作成することです.作成すると、次の手順に従います.
Step 1:ミラーRepositoryを作成する(マスターRepositoryの名前と同じにする)
svnadmin create MIRROR_REPO_PATH
Step 2:ミラーバージョンライブラリの設定同期ユーザのみ書き込み可能
svnsync synchronize -h synchronize (sync): usage: svnsync synchronize DEST_URL Transfer all pending revisions to the destination from the source with which it was initialized. Valid options: --non-interactive : do no interactive prompting --no-auth-cache : do not cache authentication tokens --username ARG : specify a username ARG (deprecated; see --source-username and --sync-username) --password ARG : specify a password ARG (deprecated; see --source-password and --sync-password) --source-username ARG : connect to source repository with username ARG --source-password ARG : connect to source repository with password ARG --sync-username ARG : connect to sync repository with username ARG --sync-password ARG : connect to sync repository with password ARG --config-dir ARG : read user configuration files from directory ARG -q [--quiet] : print as little as possible
--username ARG : specify a username ARG (deprecated;
see --source-username and --sync-username)
--password ARG : specify a password ARG (deprecated;
see --source-password and --sync-password)
この意味は,同期ユーザがプライマリRepositoryとミラーRepositoryを同じにすることができるかどうかである.実践を待つ.
ミラー・バージョン・ライブラリが同期ユーザーのみによって書かれるように、私たちの例ではユーザー名は「svnsync」です.Subversionのライセンス機能を使用してデフォルトのアクセス・ルールを設定するオプションがあります.
[/] * = r svnsync = rw
もう1つのオプションはstart-commit(MIRROR_REPO_PATH/hooksの下)を使用してsvnsyncユーザーをチェックすることです.次の例はshellスクリプトです.
#!/bin/sh USER=”$2″ if [ “$USER” = “svnsync” ]; then exit 0 fi echo “Only the syncuser user may commit new revisions as this is a read-only, mirror repository.” >&2 exit 1
Step 3:同期ユーザによるリビジョン属性の変更をミラーバージョンライブラリに実行させる
そのためには、次の例と同様にshellスクリプトであるpre-revprop-change(MIRROR_REPO_PATH/hooksの下)フックを作成する必要があります.
#!/bin/sh USER=”$3″ if [ “$USER” = “svnsync” ]; then exit 0; fi echo “Only the syncuser user may change revision properties as this is a read-only, mirror repository.” >&2 exit 1
Step 4:同期したミラーバージョンライブラリを登録する
次のsvnsyncコマンドは、任意のプラットフォームで使用します.
svnsync initialize URL_TO_MIRROR_REPO URL_TO_MASTER_REPO --username=svnsync --password=svnsyncpassword
すべての構成が正しい場合は、次の出力が表示されます.
Copied properties for revision 0.
ミラー・バージョン・ライブラリとプライマリ・バージョン・ライブラリの同期を登録しました.ミラー・バージョン・ライブラリがプライマリ・バージョン・ライブラリと同じになるように、初期の同期を続行する必要があります.
Step 5:初期同期の実行
すべての準備ができていることを確認し、初期同期を実行するには、どのシステムでも実行する必要があります.
svnsync synchronize URL_TO_MIRROR_REPO --username=svnsync --password=svnsyncpassword
すべての同期が正しい場合、似たような出力が表示されます.
Committed revision 1.
Copied properties for revision 1.
Committed revision 2.
Copied properties for revision 2.
Committed revision 3.
Copied properties for revision 3.…
Step 6:post-commit(MASTER_REPO_PATH/hooks下)フックで自動同期する
初期同期の出力に基づいて、私たちが今しなければならないのは、ミラーバージョンライブラリを同期するためにタイミング実行またはpost-commitフックを書くことです.post-commitをお勧めします.これは、ミラーバージョンライブラリをできるだけ最新にするためです.次は、プライマリバージョンライブラリでミラーバージョンライブラリを同期できるpost-commitフック、shellスクリプトです.
# Example for synchronizing one repository from the post-commit hook #!/bin/sh svnsync synchronize URL_TO_MIRROR_REPO -username=svnsync -password=svnsyncpassword & exit 0
注意:上記フックスクリプトはchmod 755で実行可能にする必要があります.
原文住所:http://saplingidea.javaeye.com/blog/482924
svnリポジトリのバックアップ
#
svnadmin dump /home/workhome/svn/repository | gzip > ~/repository-backup.gz
#
svnadmin dump /home/workhome/svn/repository > ~/repository-backup.svn
svnリポジトリのリカバリ
# svn
svnadmin create /home/workhome/svn/newrepository
#
ls -l /home/workhome/svn/newrepository
#
svnadmin load /home/workhome/svn/newrepository < ~/repository-backup.svn
その他のsvnネーミング
svnadmin recover–バージョン・ライブラリ・データベースを安定した状態に復元
svnadmin recover /home/workhome/svn/newrepository
リポジトリから不要なログファイルを削除
svnadmin list-unused-dblogs /home/workhome/svn/newrepository/ | xargs rm -vf
リポジトリ内の残りの共有メモリファイルをすべて削除
rm -f /home/workhome/svn/newrepository/db/_db.0*
svnsyncの実装
svnsyncを実装する唯一の前提条件は、ミラーリングしたいバージョンライブラリを作成することです.作成すると、次の手順に従います.
Step 1:ミラーRepositoryを作成する(マスターRepositoryの名前と同じにする)
svnadmin create MIRROR_REPO_PATH
Step 2:ミラーバージョンライブラリの設定同期ユーザのみ書き込み可能
svnsync synchronize -h
synchronize (sync): usage: svnsync synchronize DEST_URL
Transfer all pending revisions to the destination from the source
with which it was initialized.
Valid options:
--non-interactive : do no interactive prompting
--no-auth-cache : do not cache authentication tokens
--username ARG : specify a username ARG (deprecated;
see --source-username and --sync-username)
--password ARG : specify a password ARG (deprecated;
see --source-password and --sync-password)
--source-username ARG : connect to source repository with username ARG
--source-password ARG : connect to source repository with password ARG
--sync-username ARG : connect to sync repository with username ARG
--sync-password ARG : connect to sync repository with password ARG
--config-dir ARG : read user configuration files from directory ARG
-q [--quiet] : print as little as possible
--username ARG : specify a username ARG (deprecated;
see --source-username and --sync-username)
--password ARG : specify a password ARG (deprecated;
see --source-password and --sync-password)
この意味は,同期ユーザがプライマリRepositoryとミラーRepositoryを同じにすることができるかどうかである.実践を待つ.
ミラー・バージョン・ライブラリが同期ユーザーのみによって書かれるように、私たちの例ではユーザー名は「svnsync」です.Subversionのライセンス機能を使用してデフォルトのアクセス・ルールを設定するオプションがあります.
[/]
* = r
svnsync = rw
もう1つのオプションはstart-commit(MIRROR_REPO_PATH/hooksの下)を使用してsvnsyncユーザーをチェックすることです.次の例はshellスクリプトです.
#!/bin/sh
USER=”$2″
if [ “$USER” = “svnsync” ];
then exit 0
fi
echo “Only the syncuser user may commit new revisions as this is a read-only, mirror repository.” >&2
exit 1
Step 3:同期ユーザによるリビジョン属性の変更をミラーバージョンライブラリに実行させる
そのためには、次の例と同様にshellスクリプトであるpre-revprop-change(MIRROR_REPO_PATH/hooksの下)フックを作成する必要があります.
#!/bin/sh
USER=”$3″
if [ “$USER” = “svnsync” ];
then exit 0;
fi
echo “Only the syncuser user may change revision properties as this is a read-only, mirror repository.” >&2
exit 1
Step 4:同期したミラーバージョンライブラリを登録する
次のsvnsyncコマンドは、任意のプラットフォームで使用します.
svnsync initialize URL_TO_MIRROR_REPO URL_TO_MASTER_REPO --username=svnsync --password=svnsyncpassword
すべての構成が正しい場合は、次の出力が表示されます.
Copied properties for revision 0.
ミラー・バージョン・ライブラリとプライマリ・バージョン・ライブラリの同期を登録しました.ミラー・バージョン・ライブラリがプライマリ・バージョン・ライブラリと同じになるように、初期の同期を続行する必要があります.
Step 5:初期同期の実行
すべての準備ができていることを確認し、初期同期を実行するには、どのシステムでも実行する必要があります.
svnsync synchronize URL_TO_MIRROR_REPO --username=svnsync --password=svnsyncpassword
すべての同期が正しい場合、似たような出力が表示されます.
Committed revision 1.
Copied properties for revision 1.
Committed revision 2.
Copied properties for revision 2.
Committed revision 3.
Copied properties for revision 3.…
Step 6:post-commit(MASTER_REPO_PATH/hooks下)フックで自動同期する
初期同期の出力に基づいて、私たちが今しなければならないのは、ミラーバージョンライブラリを同期するためにタイミング実行またはpost-commitフックを書くことです.post-commitをお勧めします.これは、ミラーバージョンライブラリをできるだけ最新にするためです.次は、プライマリバージョンライブラリでミラーバージョンライブラリを同期できるpost-commitフック、shellスクリプトです.
注意:上記フックスクリプトはchmod 755で実行可能にする必要があります.
原文住所:http://saplingidea.javaeye.com/blog/482924