2010年3月22日月曜日

opengrok: SCMと連携

まず、リポジトリの場所について。リポジトリはリモートにあってもかまわないけど、 opengrok で使う場合はちょくちょくリポジトリにアクセスが発生するのでローカルにおいておいた方がよさげ。 svnsync なり cvsup なり rsync なりでミラーリングしておく。

で、このリポジトリから一旦チェックアウトしておく必要があって、 よく分からないけどそういうものらしい。ちょっと面倒。 そこにファイルがないとインデックスが作成されないようで、 svn co --depth=files ... みたいにしてもダメだった。

というわけで、仮に以下のようにチェックアウトしたとします:

~/src
     /linux
     /openbsd
     /opengrok

インデックスの作成はopengrok に付属の run.sh を編集して使うのが便利で、 run.sh は結局以下のようになりました。

#!/bin/sh

PROGDIR=`dirname $0`

# REQUIRED The root of your source tree SRC_ROOT=/home/yourname/src

# REQUIRED The directory where the data files like # Lucene index and hypertext cross-references are stored DATA_ROOT=/var/opengrok/data

# OPTIONAL A tab separated files that contains small # descriptions for paths in the source tree PATH_DESC=${PROGDIR}/paths.tsv

EXUB_CTAGS=/usr/bin/ctags

# You might want to add more available memory, and perhaps use a server jvm? JAVA_OPTS="-server -Xmx1024m"

LOGGER="-Djava.util.logging.config.file=conf/logging.properties"

java ${JAVA_OPTS} ${PROPERTIES} ${LOGGER} -jar ${PROGDIR}/opengrok.jar
${SCAN_FOR_REPOS} -c ${EXUB_CTAGS} -s ${SRC_ROOT} -d ${DATA_ROOT} -W configurat ion.xml -r on -H -S -v -P

# OPTIONAL java ${LOGGER} -classpath ${PROGDIR}/opengrok.jar org.opensolaris.opengrok.web.Efta rFile ${PATH_DESC} ${DATA_ROOT}/index/dtags.eftar

-P オプションを付けると複数のプロジェクトを個別にあつかうことができます。

あと、リポジトリ、それをチェックアウトしたもの、opengrok のインデックスで 結構な数のファイルが作成され、inode が足りなくなってハマリました。

0 件のコメント:

コメントを投稿