11月 072011
 

Git リポジトリを Web 上で閲覧したい時は gitweb を用いているのですが,ベタに表示されるコードほど見づらいものはない,ということで,gitweb でソースコードを syntax highlight させます.

gitweb は highlight というアプリケーションと組み合わせることでコードを自動的にハイライト表示することが可能となっています.

まずは highlight をインストール.

$ sudo yum install highlight

次に gitweb の設定を変更.

# vi /etc/gitweb.conf

gitweb.conf 中の projectroot の設定よりも前に以下を記述する.

$feature{'highlight'}{'default'} =[1];

これだけでハイライト表示してくれるようになったはず.
テーマ(色)を変えたいときは theme_examples から選んで

$ echo "" | highlight -s テーマ名 > /dev/null

としてやれば highlight.css が生成されるのでこの内容を gitweb.css の最後の方にあるスタイルと入れ替えてやればいい.

参考ページ:
day one: gitwebでsyntax highlight
Gitで遊ぶ | ももーい鯖覚書

11月 072011
 

複数人で共有したい Git リポジトリを作成したいときは,まず新しくグループを作成し,ユーザを追加する.

# groupadd project1
# usermod -G project1 user1
# usermod -G project1 user2

次に Git リポジトリを作成する.

$ mkdir project1.git
$ chgrp -R project1 project1.git
$ cd project1.git
$ git init --bare --shared=group

–shared オプションのデフォルトは group になる.
group と all はほぼ同じだが,all にすると全員が read できるようになる.

あとはクライアントから

$ git pull user1@server:/home/git/repos/share/project1.git
$ cd project1
ごちゃごちゃ作業して
$ git commit -a -m "comment"
$ git push origin master
11月 072011
 

新しい環境で Git を使おうとするときは最低限以下の設定を行うようにしている.

$ git config --global user.name "Taro Kobe"
$ git config --global user.email taro.kobe@example.com
$ git config --global color.ui auto
11月 072011
 

Git で新しくリポジトリを作成するたびに

$ touch git-daemon-export-ok
$ mv hooks/post-update.sample hooks/post-update
$ chomd a+x hooks/post-update

とかやってられない.

Git リポジトリのディレクトリ構造のテンプレートはないかと探してみるとどうやら

/usr/share/git-core/templates

以下がテンプレートとなっているようだ(Git を CentOS で yum から入れた場合).

このディレクトリ以下の構成を変更することで新しくリポジトリを作成したときのデフォルトの構成を変更することができる.

$ cd /usr/share/git-core/templates
$ touch git-daemon-export-ok
$ mv hooks/post-update.sample hooks/post-update
$ chomd a+x hooks/post-update
9月 162011
 

Mac OS X Server で OpenLdap 用いてユーザ管理をしているとき,何かの拍子でログインができなくなってしまうことがあれば,まずはログを確認みましょう.

/var/log/system.log を確認したとき

May 30 14:23:42 hostname com.apple.launchd[1] (org.openldap.slapd[190]): Exited with exit code: 1
May 30 14:23:42 hostname com.apple.launchd[1] (org.openldap.slapd): Throttling respawn: Will start in 10 seconds

/var/log/slapd.log を確認したとき

May 30 15:20:40 hostname slapd[932]: bdb(dc=hostname,dc=example,dc=com): PANIC: fatal region error detected; run recovery
May 30 15:20:40 hostname slapd[932]: bdb_db_open: Database cannot be opened, err -30978. Restore from backup!
May 30 15:20:40 hostname slapd[932]: bdb(dc=hostname,dc=example,dc=com): DB_ENV->lock_id_free interface requires an environment configured for the locking subsystem
May 30 15:20:40 hostname slapd[932]: bdb(dc=hostname,dc=example,dc=com): txn_checkpoint interface requires an environment configured for the transaction subsystem
May 30 15:20:40 hostname slapd[932]: bdb_db_close: txn_checkpoint failed: Invalid argument (22)
May 30 15:20:40 hostname slapd[932]: backend_startup_one: bi_db_open failed! (-30978)
May 30 15:20:40 hostname slapd[932]: bdb_db_close: alock_close failed
May 30 15:20:40 hostname slapd[932]: slapd stopped.
May 30 15:20:40 hostname slapd[932]: connections_destroy: nothing to destroy.

このようなエラーがたくさん出力されている場合,何らかの原因で slapd が起動できていないことを表します.

次に,

# /usr/libexec/slapd -Tt

を実行したとき

overlay_config(): warning, overlay "dynid" already in list
bdb(dc=hostname,dc=example,dc=com): PANIC: fatal region error detected; run recovery
bdb_db_open: Database cannot be opened, err -30978. Restore from backup!
bdb(dc=hostname,dc=example,dc=com): DB_ENV->lock_id_free interface requires an environment configured for the locking subsystem
backend_startup_one: bi_db_open failed! (-30978)
slap_startup failed (test would succeed using the -u switch)

このようなエラーが出た場合は,OpenLdap のデータベースが壊れています.
この場合は,DB のバックアップをとってから

# cp -R /var/db/openladp /var/db/openladp.backup

DB の修復を行いましょう.

# db_recover -h /var/db/openldap/openldap-data/

これで以下のような結果が出れば DB は修復されました.
slapd が起動するようになるはずです.

# /usr/libexec/slapd -Tt
overlay_config(): warning, overlay "dynid" already in list
config file testing succeeded

参考ページ:
Mac OS X 10.5 Server OpenLdapのDBが壊れた・・