最近はCVSよりもSubversionが人気らしいので使ってみます。

HP: http://subversion.tigris.org/

まずはさくっとSubversionをインストールします。
とその前にBerkeleyDBのインストールが完了してることが前提です。
neonてのも実は必要でした。
http://www.webdav.org/neon/

neonのインストール

cd /usr/local/src
wget http://www.webdav.org/neon/neon-0.29.3.tar.gz
tar zxvf neon-0.29.3.tar.gz
cd neon-0.29.3
./configure --enable-shared --with-libxml2 --with-expat --with-ssl=openssl
make
make install

Subversionのインストール

cd /usr/local/src
wget http://subversion.tigris.org/downloads/subversion-1.6.16.tar.bz2
tar jxfv subversion-1.6.16.tar.bz2
cd subversion-1.6.16
./configure \
--with-apxs=/usr/local/apache2/bin/apxs \
--with-ssl=/usr/local/ssl \
--with-zlib=/usr \
--with-swig=/usr \
--with-berkeley-db \
--with-neon=/usr/local \
PYTHON=/usr/bin/python make
make install
make swig-py
make install-swig-py
echo /usr/local/lib/svn-python > \ /usr/lib/python2.x/site-packages/subversion.pth
make swig-rb
make install-swig-rb

次にapacheと連携します。

/usr/local/apache2/conf/httpd.conf

LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
↑はたぶんインストール時に勝手に書いてくれます。
Serveradmin webmaster@svn.example.com
DocumentRoot /usr/local/apache2/htdocs
ServerName svn.momo-i.org
CustomLog /usr/local/apache2/logs/access_log_svn combined
ScriptAlias /viewvc /usr/local/viewvc/bin/cgi/viewvc.cgi
ScriptAlias /query /usr/local/viewvc/bin/cgi/query.cgi
AddDefaultCharset UTF-8
DAV svn
SVNPath /usr/local/svn/repos1
#閲覧以外制限をかけたい場合
DAV svn
SVNPath /usr/local/svn/repos2
AuthUserFile /usr/local/apache/conf/.htpasswd
AuthName "Basic attestation screen"
AuthType Basic Require valid-user

これでインストールは完了です。
次にレポジトリを作っておきます。

mkdir /usr/local/svn
svnadmin create /usr/local/svn/repos1
chown -R apache. /usr/local/svn

http://svn.example.org/test/にアクセスをして
きちんと表示できるかを確認します。

Revision 0: / ------------------- Powered by Subversion version xxxxxxxxxx
上記のようにアクセスが確認できたら次にソース管理の基本(?)を作成です。

svn mkdir http://svn.example.org/test/trunk -m "trunk"
svn mkdir http://svn.example.org/test/tags -m "tags"
svn mkdir http://svn.example.org/test/branches -m "branches"

これで再度アクセスをすると

Revision 3: / branches/ tags/ trunk/ ------------------- Powered by Subversion version xxxxxxxx
のように表示されてるはずです。
後はTortoiseSVNとかを使ってWindowsからウボァーとアクセスをするといいです。

コミットメール
コミットしたときにメールでお知らせしてくれるようにしてみます。
リポジトリのルートフォルダを$REPOSとして表記しますので、適宜置き換えてください。

$REPOS/hooks/post-commit

#!/bin/sh
export LANG=japanese
REPOS="$1"
REV="$2"
${REPOS}/hooks/commit-email.rb "$REPOS" "$REV"

$REPOS/hooks/commit-email.rb

#!/usr/bin/ruby -Ke
require 'net/smtp'
require 'kconv'
REPOS=ARGV[0]
REV=ARGV[1].to_i
svnauthor=%x{svnlook author #{REPOS} -r #{REV} }.chomp
svndate=%x{svnlook date #{REPOS} -r #{REV} }.chomp
svnchanged=%x{svnlook changed #{REPOS} -r #{REV} }.chomp
svnlog=%x{svnlook log #{REPOS} -r #{REV} }.chomp
svndiff=%x{svnlook diff #{REPOS} -r #{REV} }.chomp
toaddr =['to@example.com']
fromaddr=['from@example.com']
svnlog=svnlog.kconv(Kconv::UTF8, Kconv::ASCII) body = < To: Subversion committers:; Subject: [dgweb svn-#{REV}] commit MIME-Version: 1.0 Content-Type: text/plain; charset = ISO-2022-JP X-Mailer: Subversion email-send.rb #{body.tojis} END_OF_MESSAGE Net::SMTP.start('localhost', 25) { |smtp| smtp.send_mail(message, fromaddr, *toaddr) }

これでコミット時にたぶんメールが飛んできます。
rname・toaddr・fromaddrは適宜修正してください。

コメントを追加

制限付き HTML

  • 使用できるHTMLタグ: <a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 行と段落は自動的に折り返されます。
  • ウェブページのアドレスとメールアドレスは自動的にリンクに変換されます。
CAPTCHA
半角で
この質問はあなたが人間の訪問者であるかどうかをテストし、自動化されたスパム送信を防ぐためのものです。
ももーい に投稿