2007年3月29日木曜日

Subversionのキーワード置換とかのクライアント設定全般

キーワード置換やらの設定をクライアント側で設定する。覚書。

クライアントの設定については、
configファイルとserversファイルにて管理されます。
この二つのファイルはテキストファイルで、テキストエディタにて書き換えることが可能。
(レジストリのHKEY_LOCAL_MACHINE\Software\Tigris.org\Subversion以下に格納することも可能です。)

Windowsをクライアントに使用している場合、一番初めにSVNをコマンドラインにて
実行した時に、ユーザーのホームディレクトリのApplication Data配下に、
Subversionというフォルダが作成され、
その配下に、configとserversのファイルが作成されます。
(C:\Documents and Settings\xxxx\Application Data\Subversionという感じ)
これらのファイルはINIファイル形式にて記述されます。

serversファイルですが、
ProxyやSSLを使用する場合の記述をこのファイルに書き込めます。
今回のさくらでSubversionを使用する場合は、SSLもProxyを使用していないので記述の変更なし。

次にconfigファイルの設定変更。
[miscellany]セクションの変更

  1. enable-auto-props
    最初にインポートしたときにSubversionとしての属性を自動的に変更するかの設定。
    初期値はnoです。
    enable-auto-props = yes
    に書き換える。
    キーワード置換などは、インポートしたファイルの属性となるので、yesにして自動的に変更されるようにする。
  2. global-ignores
    svnコマンドで無視するファイルを設定できる。
    ログファイルやEclipseの設定ファイルはバージョン管理する必要がないので、ここに加えて無視するようにする。
    *.o *.lo *.la #*# .*~ *~ .#* .DS_Store はデフォルトの設定
    global-ignores = *.o *.lo *.la #*# .*~ *~ .#* .DS_Store *.log .*.html .*.htm .project .includepath

    「.*.html」と「.*.htm」はAptanaの生成するファイル、
    「.project」と「.includepath」はEclipseの設定ファイル。
[auto-props]セクション
様々な属性(プロパティ)を設定するセクション
  1. キーワード置換用の設定値(svn:keywords)
    コミット、インポート時に、時間やファイル名、リビジョンなどの動的な情報についてを、指定のキーワードと置換してくれるようになります。
    *.cgi = svn:keywords=Id Date Author Rev URL
    *.pm = svn:keywords=Id Date Author Rev URL
    *.html = svn:keywords=Id Date Author Rev URL
    *.htm = svn:keywords=Id Date Author Rev URL
    *.txt = svn:keywords=Id Date Author Rev URL
    *.js = svn:keywords=Id Date Author Rev URL
    *.css = svn:keywords=Id Date Author Rev URL
    *.sql = svn:keywords=Id Date Author Rev URL

    該当のファイルに対してどのキーワードを置換するか設定する。
    Date Author Rev URL*.sql = svn:keywords=Id Date Author Rev URL
    だと、「$Id$」、「$Date$」、「$Author$」、「$Rev」、「$URL$」の5つのキーワードを
    該当する値へ置換してくれる。
    PerlのPMファイルだとこんな風に使ってます。

    package Logger;
    =head1 NAME Logger
       $Id$
    =head1 SYNOPSIS
       For test use module.
    =head1 DESCRIPTION
    Release Date : $Date$
    Revision : $Revision$
    Author : $Author$
     Description :
    =cut
    が一番最初にインポートしたときに↓のように展開され、今後、コミットする度に新しく置換キーワードが展開されるようになる。
    package Logger;
    =head1 NAME Logger
       $Id: Logger.pm 16 2007-03-12 01:59:39Z myways $
    =head1 SYNOPSIS
       For test use module.
    =head1 DESCRIPTION
    Release Date : $Date: 2007-03-12 10:59:39 +0900 (月, 12 3 2007) $
    Revision : $Revision: 16 $
    Author : $Author: myways $
     Description :
    =cut
    もし、HTMLなら開発中はファイルの末尾にでも、コメントアウトして、
    $Id$
    とか入れておけばOK。

  2. MIMEタイプの設定(svn:mime-type)
    Subversionで見るMIMEタイプの設定
    非テキスト系のMIMEタイプを設定しておくとバイナリファイルとして扱われるようになる。
    さくらのsvn+sshでは関係ないけど、ブラウザ上からリポジトリにアクセスする場合にも
    ここで設定した値からファイルを開くアプリ等を決定する。
    *.png = svn:mime-type=image/png
    *.jpg = svn:mime-type=image/jpeg
    *.xls = svn:mime-type=application/vnd.ms-excel
    *.xlsx = svn:mime-type=application/vnd.ms-excel
    *.ppt = svn:mime-type=application/vnd.ms-powerpoint
    *.pptx = svn:mime-type=application/vnd.ms-powerpoint
    *.zip = svn:mime-type=application/zip
    *.mp3 = svn:mime-type=audio/mpeg
    このような感じで設定。
  3. EOF、改行の設定(svn:eol-style)
    コミット後にEOF、改行の扱いが重要になる場合に設定が必要。
    複数のOSによって開発を行う場合、改行コード(EOLマーカ)の扱いが異なるために、
    そこの修正などによって、差分が発生してしまい面倒なことになってしまうことがあります。
    そこで、さくらのサーバにSSHでログインしていじってインポート、コミットするファイルについて
    設定を行います。

    *.sh = svn:eol-style=native;svn:executable

このような感じで設定すれば、クライアント側の設定がすべて完了。

0 件のコメント: