このブログの更新は Twitterアカウント @m_hiyama で通知されます。
Follow @m_hiyama

メールでのご連絡は hiyama{at}chimaira{dot}org まで。

はじめてのメールはスパムと判定されることがあります。最初は、信頼されているドメインから差し障りのない文面を送っていただけると、スパムと判定されにくいと思います。

参照用 記事

さらにリビジョン(バージョン)管理システムの話を少し

10日ほど前に、リビジョン(バージョン)管理システムに関するエントリーを書きました。そのキッカケとなったブログエントリー「いっしょに仕事をしたいプログラマ 5つの特徴 - たごもりすメモ」のコメント欄がすごいことになってますね。tagomorisさんが言った事がそんなにシャクにさわるのかな? 「随分とゼイタクなこと言ってるな」とは感じますけどね。

んで、またリビジョン(バージョン)管理システムのことなんですが、RCSCVSの時代だと、キーワード置換(キーワード展開)がよく使われていました。最近では、キーワード置換なんて使う人がいないので知らない人もいるでしょうね。くだんのtagomorisさんの記事の「2. バージョン管理システムを適切に使っている」から引用すると:

ちなみに最悪なのはzipだけで置かれてるコードを見てみたら中身にコメントで「ここは〜(その人の名前)が修正 何月何日」みたいに書いてあるとか、そういう感じのやつ。業界によってはかなりの割合でいるのがおそろしい。

キーワード置換とは、「ここは〜(その人の名前)が修正 何月何日」のようなことをリビジョン管理システムが自動的に書いてくれる機能です。僕も、RCSのときに $Author$ と $Id$ は使っていました。コミットメッセージ一覧のようなものは $Log$ で書き出せるのですが、$Log$ が具合が悪い(弊害がある)のはCVSのときには既に指摘されていたと思います。ログを見たいなら cvs log を使え、と。

Subversionでは $Log$ は廃止されたんじゃないのかな(たぶん)。それより新しい世代のリビジョン(バージョン)管理システムではキーワード置換機能がないか強く非推奨でしょう。

ファイルに変更記録を手で記録しておかないと不安になってしまう心情も分からなくもないのですが、何もいいことはないですよ。不安感の原因はツールなしだと記録を参照できないのがイヤだということでしょうが、ツールを使うと決めたら、そんなことはツールにゆだねるしかないのです。

最後にちょと実例を。Catyの起動ファイルであるstdcaty.pyのログを見てみます。


$ hg log stdcaty.py
changeset: 1524:9a997abe5dfe
user: ckuwata
date: Wed Oct 13 16:42:36 2010 +0900
summary: ファイル名を変更。

$

ん? あ、そうか、2010年12月にリネームしたのか。リネーム前も追いかけるには -f (--follow)オプションを付けます。


$ hg log -f stdcaty.py
changeset: 1524:9a997abe5dfe
user: ckuwata
date: Wed Oct 13 16:42:36 2010 +0900
summary: ファイル名を変更。

changeset: 1381:0a4d939dbb22
user: ckuwata
date: Thu Aug 05 16:42:04 2010 +0900
summary: libの扱いを修正(lib配下に.pyを置けるように)

changeset: 1287:cb439af4fa2e
parent: 1279:504ca9c011f9
user: ckuwata
date: Thu Jun 10 14:25:47 2010 +0900
summary: Issue 90 に対応

changeset: 1199:1bcf914ccdd9
user: ckuwata
date: Thu May 20 13:37:44 2010 +0900
summary: 大規模なバグ修正(Issue 63 にも対応)

changeset: 1102:b754c14227ef
parent: 1091:90935f89341a
user: ckuwata
date: Wed Apr 28 10:21:01 2010 +0900
summary: Issue 25 に対応

changeset: 987:8780ae04cf5a
branch: issue7
user: ckuwata
date: Mon Feb 08 18:31:41 2010 +0900
summary: インタープリタが起動するようになった。

changeset: 985:108a276a4f2e
branch: issue7
user: ckuwata
date: Thu Feb 04 15:10:22 2010 +0900
summary: caty の起動を単一の caty.py から行うように修正

$

これが、caty.py と stdcaty.py の全履歴です。

去年(2010年)の6月のログを見たいなら:


$ hg log -f -d 2010-6 stdcaty.py
changeset: 1287:cb439af4fa2e
parent: 1279:504ca9c011f9
user: ckuwata
date: Thu Jun 10 14:25:47 2010 +0900
summary: Issue 90 に対応

$

今年になってからはどうでしょう?


$ hg log -f -d 2011 stdcaty.py

$

何もないや。

と、こんな感じでログを参照できます。もう少し詳しい内容はイシュー・トラッカーに残っています。ファイル自体にはコード以外の余計なことは何も書いてありませんが困ったことはありませんよ。