svn co リポジトリへのパス
svn up
svn commit もしくは svn ci
シンボリックリンクのようなもの。メインは別のリポジトリで開発していてそこを参照したい場合に設定する。参照オンリーではなくコミットまで出来てしまう点は注意。以前はフォルダ単位でしかできなかったが、1.6以降ファイル単位も可能になった。
属性の設定を選んで、属性名はsvn:externalsを選ぶ。
設定値はファイル単位で記述、絶対パスでも可能
../../../../../../../404.html 404.html ../../../../../../../500.html 500.html
サーバの情報が記述されているメタ情報(.svn)を書き換える必要がある。通常はsvnのコマンドで行う。GUI使ったほうが楽かも
svn switch --relocate
これはトップレベルフォルダを移動するだけで良い。一旦チェックアウト後そのディレクトリをプログラム実行場所まで移動してもメタ情報は相対パスで記述されているので大丈夫
svn diff リポジトリ1URL@1000 リポジトリ2URL@head
svn diff -r77771:head [ワーキングディレクトリ名]
移動しない場合は引数で指定可能
--summarizeオプションを付けるとファイル名のみ出力
svn diff -r77771:head --summarize [ワーキングディレクトリ名]
yum install mod_dav_svn.
<Location /mysvn> DAV svn SVNParentPath "/home/svn" SVNListParentPath on deny from all allow from xxx.xxx.xxx.xxx AuthType Basic AuthName "Rutake Repository" AuthUserFile /etc/httpd/conf/.htpasswd Require valid-user </Location>
mkdir /home/svn/repos svnadmin create /home/svn/repos chown -R apache:apache /home/svn/repos
Unix 系システムでは~/.subversion/auth/、 Windows であれば %APPDATA%/Subversion/auth/
一度認証に成功するとそのID/PASSWORS情報がキャッシュされる。別のユーザでコミットしたい場合はそのファイルを消さないと前回成功したユーザIDでコミットされてしまう。
コマンドラインオプション中で--username または--passwordを指定するとそちらが優先して利用される。
httpを使わない場合はsvnプロトコルを利用するのがシンプル。ローカルマシン以外はデーモン起動する必要がある。
svnserve -d -r リポジトリへのパス
/etc/rc.d/rc.localにでも記述しておけば自動起動になる。
# vi /etc/services svnserve 3690/tcp # Subversion svnserve 3690/udp # Subversion
# vi /etc/xined.d/svnserve service svnserve { disable = no socket_type = stream protocol = tcp wait = no user = root server = /usr/local/bin/svnserve server_args = -i }
# chkconfig --add svnserve # /etc/init.d/xinetd restart
エクスプローラーの拡張シェルとしてインストールされる。開発も活発なのでこれを選択しておけば安心。日本語パッケージをインストールしないとコミットコメントに日本語が使えないので注意。
デフォルトでは全てのドライブの更新を監視しているため、そりゃー重いだろう。設定でアイコンオーバーレイを無効にするか、監視ドライブを限定すること。
こちらはEclipseプラグイン。
svn list svn://ホスト名/svn/repos
リポジトリのルートのconf以下のファイルを変更
[general] password-db = passwd
[general] anon-access = write auth-access = write
認証に関しての情報が少なすぎ!!! httpの場合はmod_svn_authzというモジュールを組み込まないと素通りできる
svnadmin dump /usr/local/takeru > takeru.out
mkdir -p /usr/local/takeru_from_backup svnadmin create /usr/local/takeru_from_backup svnadmin load /usr/local/takeru_from_backup < takeru.out
SVNROOT/confディレクトリ以下をごっそりコピーすればよい。
svnadmin dump /home/svn/repos | svndumpfilter exclude 除外したいパス(/GPS) > /var/tmp/svnbackup
svnadmin dump /home/svn/repos > svn_rep_backup_`date +%Y%m%d`
svnadmin dump /home/svn/repos > /var/tmp/repos.out
mkdir -p /home/svn/repos svnadmin create /home/svn/repos/
ここまではリポジトリ作成と同じ手順
svnadmin load /home/svn/repos < /var/tmp/repos.out
流し込むのでそれなりに時間がかかる
リポジトリは/svn/repos
リポジトリ初期化(ディレクトリは作成しておく) | svnadmin create /svn/repos/ |
リポジトリを見る | svn list file:///svn/repos |
インポート | svn import [ローカルdir] http://localhost/svn/repos/[リポジトリdir] |
ローカルでインポート | svn import file:///svn/repos/newrepos |
チェックアウト(通信方式(file,svn,http)が.svn/entriesにかかれる) | svn co file:///svn/repos |
diffチェック | svn diff [ファイル名] |
ブランチ、トランク間のdiff | svn diff url@HEAD url@HEAD | grep "+++" |
プロンプトを出さない(マージの時に衝突のプロンプトを無視したいとか) | --non-interactive |
svn log --stop-on-copy
trunk | メインとなるリポジトリ |
branch | trunkから枝分かれしたもの(branchは枝の意味) |
commit | ローカルにある変更をリポジトリに反映すること |
ViewVCというのがある。
RPMインストールでさまざまな依存関係があるので公式サイトからごっそり関連RPMを持ってくるとよい。DebianやVineならaptが使えるので非常に楽
下記ソースインストールは2004年の情報で今はバイナリがあることがほとんどなのでこちらを推奨する。
RedHatES3GUIインストールサーバータイプで開発ツールのみ選択した。
# cd biuld_unix # ../dist/configure
# ./configure --enable-mods-shared=all --enable-shared=yes --with-berkeley-db=/usr/local/BerkeleyDB.4.2
# ./configure --with-apr=/usr/local/apache2 --with-apr-util=/usr/local/apache2 --with-berkeley-db=/usr/local/BerkeleyDB.4.2
ですべて問題なく。
http://c-brains.jp/blog/wsg/09/11/17-143618.php