LinuxベースのAMIでの時間設定(localtime,clock)をJSTにする
EC2インスタンス上であるアプリケーションを稼動させた時に、時間の部分がUTCで処理されているということがありました。アプリケーション的には、JSTであることが前提に処理しているため少々問題(ログ集計の時間が9時間ズレてるとか)が発生しました。確かに、時間関連の設定はまったくおこなっていませんでした。設定を整えましたので、以下はその時のメモです。
/etc/localtimeを変更する
localtimeが何かは別のサイトで参照するとして、このファイルのをAsia/Tokyoのものに置き換えます。実際には、シンボリックリンクを作成して置き換える感じです。
sudo mv /etc/localtime /etc/localtime.org sudo ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
/etc/sysconfig/clockを変更する
clockが何かは別のサイトで参照するとして、このファイルの内容をJSTになるように変更します。
sudo vi /etc/sysconfig/clock ZONE="Asia/Tokyo" UTC=false ARC=false
以上、簡単ですね。今後環境構築をする際にはこの辺りも忘れないように気をつけたいと思います。
svnのマージ作業にsvnmarge.pyを使ってみました
ソースの管理がsvnでおこなわれているのですが、マージ作業をすることになりました。そこで、いつもはeclipseのsubversive上でおこなっているところをツールを使ってみることにしました。
svnmarge.py
"http://www.asahi-net.or.jp/~iu9m-tcym/svnmerge/svnmerge_py_ja.html"
これは、ざっくり言うとsvnのマージ作業を簡単にしてくれるものですかね。
所感
やり方を覚えると確かに楽できました。ただ、まだsvnmarge.pyを信用しきれていないのでどこまでできるのか不明です。また、マージ対象が複雑なコミット状態にあると簡単にはいかないと聞いています。ただ、svnmarge.pyを使用している限り重複したマージはおこなわれないようなのでそれは助かると思いまいた。あと、マージもとのコミットメッセージが一気にマージ先にコミットされるので、これはこれでいいのかもと思いました。
まずはダウンロードして配置
pyファイルをダウンロードしてパスが通っているディレクトリに配置しておきます。また、そのまま実行するので実行権限も与えておきます。
cd ~/opt/bin wget http://svn.apache.org/repos/asf/subversion/trunk/contrib/client-side/svnmerge/svnmerge.py chmod +x svnmerge.py
svnの認証でつまづく
svnの認証部分でエラーが発生しました。svn --non-interactiveという部分が問題のようであったため、--non-interactiveを外してすり抜けました。
# line:319 # cmd = ' '.join(filter(None, [opts["svn"], "--non-interactive", # username, password, configdir, s])) cmd = ' '.join(filter(None, [opts["svn"], username, password, configdir, s]))
マージ作業の開始
今回は、ブランチをトランクへマージしました。
作業の流れ
- trunkを用意する
- svnmarge.pyの初期化
- プロパティ&メッセージのコミット
- 使用済みメッセージファイルの削除
- svnmarge.pyのマージの実行
- プロパティ&メッセージのコミット
- 使用済みメッセージファイルの削除
実際のコマンドはこんな感じ
svn co <trunk url> svnmerge.py init <branches url> svn ci -F svnmerge-commit-message.txt rm svnmerge-commit-message.txt svnmerge.py merge -b svn ci -F svnmerge-commit-message.txt rm svnmerge-commit-message.txt
svnmarge.pyでマージライフが幸せになることを祈ります。以上です。