ラベル svn の投稿を表示しています。 すべての投稿を表示
ラベル svn の投稿を表示しています。 すべての投稿を表示

2013年7月9日火曜日

svn dump & load

SVNのダンプとロードについてのメモ。

DUMP
incrementalの有り無しの違いがちょっと分かりづらかったので、
いろいろ聞いてメモっておく。

すべてのダンプをダンプするコマンド
svnadmin dump /opt/svn/xxx > xxx.dump

リビジョン指定の差分ダンプのコマンドにはオプションを付ける。
リビジョン指定+incrementalオプションなし
(100から最新のHEADまで。HEAD以外にも適当なリビジョンの指定も可能)
svnadmin dump /opt/svn/xxx -r 100:HEAD" > diff.dump

リビジョン指定+incrementalオプションあり
svnadmin dump /opt/svn/xxx --incremental -r 100:HEAD" > diff.dump

incrementalありとなしの違いは、incrementalありの場合は、上記例で行くとrev99と100の差分からになる。
incrementalなしだと全ファイルが含まれるため、サイズも大きくなる。
incrementalなしだと、前revがロードされていなくても構築できる(はず)。

LOAD

最初から全部ロードする場合
svnadmin load /opt/svn/yyy < xxx.dump
 
特定のフォルダにロードする場合は、parent-dirのオプションを追加
svnadmin load /opt/svn/yyy --parent-dir /zzz < xxx.dump

2013年1月22日火曜日

プリコミットフックの設定方法

Subversionにて、Rubyのプリコミットフックを作成します。

pre_commit.rb ファイルの作成
例えば、testリポジトリ
$ cd /opt/svn/test/hooks

$ vi pre_commit.rb
 ごにょごにょ記載

適宜権限設定
どう階層にある他のファイルに合わせれば大丈夫。
$ sudo chown www-data:www-data pre_commit.rb
$ sudo chmod 777 pre_commit.rb
pre-commit.tmplからpre-commitの作成
$ cp pre-commit.tmpl pre-commit
$ sudo chown www-data:www-data pre-commit
$ sudo chmod 777 pre-commit
$ vi pre-commit
==
## 日本語を読み込む必要がある場合はこれが必要!
export LANG=ja_JP.UTF-8

REPOS="$1"
TXN="$2"

${REPOS}/hooks/pre_commit.rb "$REPOS" "$TXN"
==
apache再起動

2011年7月20日水曜日

svn switch コマンド

SVNのコマンド "svn switch" と "svn switch --relocate" の扱いで
ちょっとハマったのでメモ。

◆svn swtich
作業コピーが同じリポジトリ内の違うディレクトリに変更する場合に利用します。
例えば、trunkからbranchへ参照を変更する場合です。

※ 引数は変更先を指定

例) https://10.10.10.10/trunk/aaa/bbb から https://10.10.10.10/branch/aaa/bbb にしたい場合
正しい利用
% svn switch https://10.10.10.10/branch/aaa/bbb 

間違った利用①
% svn switch --relocate https://10.10.10.10/trunk/aaa/bbb https://10.10.10.10/branch/aaa/bbb
svn: Relocate can only change the repository part of an URL

間違った利用②
% svn switch https://10.10.10.10/trunk/aaa/bbb https://10.10.10.10/branch/aaa/bbb
svn: 'https://10.10.10.10/branch/aaa/bbb' is not a working copy

◆svn swith --relocate
作業コピーが異なるリポジトリに変更する場合に利用します。
例えば、リポジトリサーバーのIPが変わった時に利用します。

※ 引数は現状と変更先の2つを指定します。
例) https://10.10.10.10/trunk/aaa/bbb から https://1.2.3.4./trunk/aaa/bbb にしたい場合
% svn switch --relocate https://10.10.10.10/trunk/aaa/bbb https://10.10.10.10/branch/aaa/bbb
svn: Relocate can only change the repository part of an URL