Home > 開発環境
開発環境 Archive
(仮)githubを使って開発する

- 2010-11-27 (土)
- Git
(仮)githubを使って開発する
そのうち整理します。
2008-10-23 – Hatena::Diary::Ubuntu
Help.GitHub – Managing multiple clients
EGitを使ってEclipseでGitリポジトリを操作する | ITEMAN Blog – アイテマンブログ
GAE/J + githubでどこでもプログラミング! – そうだ?Blogを書こう?
redmine + github – くまったうの日記
github のリポジトリを Redmine のリポジトリブラウザから参照する – mallowlabsの備忘録
Ubuntuにgitをインストールして公開用リポジトリを作る – devillikeaangelの日記
gitサーバーをubuntuに構築してgit://からアクセスできるようにする手順メモ – AorBorF
やる夫で学ぶ gitcore-tutorial – MOTEMEMO
- Comments: 0
- Trackbacks: 0
サーバの設定ファイルをsubversionで管理してみる

- 2010-09-25 (土)
- Subversion | バージョン管理
サーバを管理する上で、各種の設定ファイルを管理したくなり、簡単にshellを書いてみました。
スクリプトはとても単純で、自分で用意したsvnレポジトリに指定したファイル/ディレクトリをコミットする、というだけです。
色々やり方はありそうですが、
- 現時点では大量のサーバを管理するわけではなく、あくまで数台レベルでOK
- 自分で分かる技術の方がやりやすい
ということで、自分のsubversionレポジトリに適当にコミットして管理することにしました。
- ローカルにチェックアウトされたsvnレポジトリがあることが前提です。
- そのsvnレポジトリに対して、ファイルシステムのパス(/etc/httpd/など)を保ったまま、コミットします
- ディレクトリごとコミットもできるが、不要なディレクトリの削除はしない(不要なファイルの削除はできる)
- コミットの逆、古いバージョンから戻すコマンドは現時点ではない。実際問題として、戻すようなことは殆ど発生していないため。戻す場合は手動で戻します。
- 何かあったら、svnコマンド直叩きで解決。
使い方
パスの通った箇所に次のファイルを保存して置きます。
また管理するファイル群はroot(sudo)で扱うことが多いので、
実行の際にはsudo addscmしてます。
$ sudo addscm /etc/httpd/conf/httpd.conf ## httpd.confをバージョン管理する場合
$ sudo addscm /etc/httpd/conf.d/ ## conf.dディレクトリ全体をバージョン管理する場合
スクリプトの以下の箇所は環境に合わせて修正下さい。
MAX_SIZEとMAX_COUNTはどちらもディレクトリ全体をバージョン管理する場合のファイル数/ファイルサイズ(KB)の制限値です。
間違ってaddscm /としたときなどに困らないように、この設定を入れています。
REP_DIRはチェックアウトしたローカルのパスです。
複数のサーバの設定ファイルを管理する場合には、server01のところを適当なサーバ名(hostname)で置き換えています。
# edit setting MAX_SIZE=10000 # ディレクトリをバージョン管理する場合の、指定ディレクトリのサイズ制限値(KB)。これを超えると、addscmできない。 MAX_COUNT=100 # ディレクトリをバージョン管理する場合の、指定ディレクトリのファイル数制限値)。これを超えると、addscmできない。 REP_DIR=/home/kuboma/repos/trunk/server/server01/ROOT # レポジトリのコミットパス。予めこのパスにsvn checkoutしておいてください。
コード
見て分かる通り厳密なエラー処理はしてませんし、無茶なコードもあります(svn deleteしてるところとか)ので、くれぐれもご注意を!
またコード上一箇所 rm -iしている箇所があります。
これはディレクトリ単位のバージョン管理の場合に、削除済みファイルを一旦全てローカルの作業コピーから削除するためのものです。
問題なさそうならrm -iを rm -fに変更することをおすすめします。
#/bin/sh
# addscm
#
# TODO: wildcard
#
# $1: source files
# edit setting
MAX_SIZE=10000
MAX_COUNT=100
REP_DIR=/home/kuboma/repos/trunk/server/server01/ROOT
# check REP_DIR
if [ "x${REP_DIR}" = "x" ]; then
echo "REP_DIR is not set. Please set REP_DIR."
exit
fi
# don't edit
ABS_PATH=$(cd $(dirname "$1") && pwd)/$(basename "$1")
if [ -f $ABS_PATH ]; then
# target is file
echo "FILE PATH: ${ABS_PATH}"
elif [ -d $ABS_PATH ]; then
# target is dir(ex: /usr/local/bin )
echo "DIR PATH: ${ABS_PATH}"
DIR_SIZE=`du -sbk ${ABS_PATH} | cut -f 1`
FILE_COUNT=`find ${ABS_PATH} | wc -l`
# dir size check
if [ ${MAX_SIZE} -lt ${DIR_SIZE} ]; then
echo "DIR_SIZE : ${DIR_SIZE}(KB), over MAX_SIZE(${MAX_SIZE})"
exit;
else
echo "DIR_SIZE : ${DIR_SIZE}(KB)... OK"
fi
# file count check
if [ ${MAX_COUNT} -lt ${FILE_COUNT} ]; then
echo "FILE_COUNT: ${FILE_COUNT}(Files), over MAX_COUNT(${MAX_COUNT})"
exit;
else
echo "FILE_COUNT: ${FILE_COUNT}(Files).. OK"
fi
else
# target is not dir, file
echo "Sorry, target is file or dir only."
exit
fi
FILES=`basename "${ABS_PATH}"`
DIR=`dirname ${ABS_PATH}`
COMMIT_DIR=${REP_DIR}${DIR}
echo "mkdir -p ${COMMIT_DIR}"
mkdir -p ${COMMIT_DIR}
# files in repos deleted
if [ -d $ABS_PATH ]; then
echo "rm -i ${COMMIT_DIR}/${FILES}/*"
rm -i ${COMMIT_DIR}/${FILES}/*
fi
echo "cp -pi ${ABS_PATH} ${COMMIT_DIR}"
cp -r ${ABS_PATH} ${COMMIT_DIR}
cd ${REP_DIR}
svn add * --force
svn commit -m "committed by addscm command"
# files in repos deleted
if [ -d $ABS_PATH ]; then
cd ${REP_DIR}
for i in `svn status`; do
if [ "x!" != "x${i}" ]; then
# deleted file
svn delete ${i}
fi
done
fi
cd ${REP_DIR}
svn commit -m "delete committed by addscm command"
echo "success addscm."
関連URL
- Comments: 0
- Trackbacks: 0
サクッとCentOS 5.4にRedmine + Passenger環境をインストール

shirotterです。
約1年前にサクッとCentOS 5.3にRedmine + Passenger環境をインストールを書きましたが、ちょうどインストールし直す機会があったので若干の変更をしながら書き直してみました。
前回の記事の改訂版のような扱いですが、下記の点で前回の内容と大きく異なります。
- Redmineのバージョンを0.8.3から0.9.3に変更
- DBをMySQLからPostgreSQLに変更
- Apacheの設定を若干変更
※ 重要でない標準出力などは前記事のものをそのまま流用しているので一部差異があるかもです。
- Comments: 0
- Trackbacks: 1
Redmine 0.9.0 release candidate をCentOS 5.4にインストール

CentOS 5.4 に Redmine 0.9.0 release candidate を、サクッとCentOS 5.3にRedmine + Passenger環境をインストールの手順でインストールしてみたら、何点かハマったのでこちらに解決法を書いておきます。
- Comments: 0
- Trackbacks: 1
ホーム > 開発環境