$Date:: 2007-03-31 #$

SVN (Subversion)


◆ インストール

DAV svn 対応

1. /usr/local/etc/pkgtools.confの編集

  MAKE_ARGS = {
      :
    'devel/subversion' => [
        'WITH_MOD_DAV_SVN=yes',
        'WITH_APACHE2_APR=yes',
        'WITHOUT_BDB=yes',
    ],
      :
  }

2. portinstall実行

# portinstall devel/subversion

3. Apacheの設定

httpd-ssl.conf
<Location /svn>
  DAV svn
  SVNParentPath  /common/htdocs/svn

  AuthType       Basic
  AuthName       "Subversion repository"
  AuthUserFile   /common/htdocs/etc/htpasswd-svn
  AuthGroupFile  /common/htdocs/etc/htgroup-svn

  Require        valid-user
</Location>

◆ 基本ツリー構造

通常、下記のようなディレクトリ構造にする(必須ではない)。
project
  |
  +-- trunk ... current
  |
  +-- branches ... ブランチ用
  |
  +-- tags ... スナップショット
        |
        +-- Vxx.xx

(例)タグ付けする場合
% svn copy file:///path-to-repo/project/trunk file:///path-to-repo/project/tags/V01.23

◆ 属性管理

◎ 属性の操作

% svn proplist [-v] ファイルまたはディレクトリ名 ... 属性一覧
% svn propget 属性 ファイルまたはディレクトリ名 ... 属性値表示
% svn propset 属性 "値" ファイルまたはディレクトリ名 ... 属性値設定
% svn propedit 属性 ファイルまたはディレクトリ名 ... 属性値編集(エディタで)
% svn propdel 属性 ファイルまたはディレクトリ名 ... 属性削除

◎ ignore

ディレクトリ毎に「svn:ignore」属性を設定する。

(例)
% svn propedit svn:ignore bin
:(エディタで編集)
% svn commit -m ""

◎ キーワード置換

ファイル毎に「svn:keywords」属性を設定する。 設定できるキーワードは、以下のとおり。

(例)
% svn propset svn:keywords "Id" src/*.java
% svn commit -m ""
% svn propget svn:keywords src/foo.java

◆ 設定

~/.subversion/config」の例

◆ Tips

◎ Dateキーワードの曜日が文字化けする問題の回避方法

原因: UTF-8になってるから。

回避方法

fixed-length keywordを使って、曜日部分をカットする

(例) 日付だけ表示したい場合は、空白13個
$Date:: 2007-03-31 #$
(参考)

Valid HTML 4.01 Transitional