SCMコミットログはファイルのメタ情報
バージョン管理ツールがCVS、Subversion、MercurialやGitへ進化するに連れて、構成管理の意味合いが変化しているのに気付いた。
考えたことをメモ。
重要ファイルはSubversionで管理する - Basic
TortoiseSVNの差分機能は素晴らしい: プログラマの思索
TortoiseSVNからBTSと連携する: プログラマの思索
TortoiseHgはSVNクライアントとしても優秀: プログラマの思索
TortoiseHgからBTSチケットへリンクできるようになった: プログラマの思索
僕は、仕事ではなく、自分だけのプライベートPCでも、ファイルのバックアップ代わりにMercurialで履歴管理している。
他に、自分で書いたソース、ApacheやRedmineの設定ファイルなども履歴管理している。
特にコミュニティの講演資料や記事などの原稿は、書きながら試行錯誤して完成していくため、その過程の履歴を後で思い出したいから。
重要ファイルはSubversionで管理する - Basicにも書いてあるように、履歴管理が必要になってくる理由は、バックアップだけでなく、修正時のコメントや理由なども記録したいからだ。
つまり、修正理由や変更理由のような情報は、ファイルのメタ情報であることを示唆している。
ファイルのメタ情報は、SubversionやMercurialのコミットログとして記録しておけばいい。
これは、ファイルのメタ情報をどこに配置すべきなのか、という問題につながる。
従来は、ソース自身に「@history」のようなJavaDocで履歴を書いたりしていたが、履歴や変更理由のような情報はSCMコミットログなりITSチケットに記録して分離した方がいい。
その方がソースは綺麗になるし、外出ししたコミットログやチケットに情報を追記したり更新することも可能になる。
最近は、TortoiseHgやTortoiseSVNのようなクライアントツールがとても優れているので、どんどん使った方がいいと思う。
実際、ExcelやWord、Powerpointの差分表示、BTSへのリンクなどの機能もあるので、とても作業しやすくなった。
チケット駆動開発では、成果物のメタ情報は、SCMコミットログに書かれたチケットNoを経由して、ITSで一括して保持する。
その利点は、ITSの統合DBにメタ情報が一括管理されているために、全文検索や変更理由の追跡も楽になる点にある。
ITSというプロジェクト管理ツール、そして、TortoiseHgやTortoiseSVNという優れたSCMクライアントツールのおかげで、作業の生産性は確実に上がってきている。
ツールが作業の内容を本質的に変えているという重要性にいちはやく気づくべき。
それは、ITリテラシーの一部とも言える。
優れたソフトウェアを使いこなすことで、未だに手作業で頑張っている人達よりも格段にアウトプットを作れる時代になってきている。
バージョン管理ツールを使いこなすことも、現代の一般人のITリテラシーになってきているのだ。
| 固定リンク
「ソフトウェア工学」カテゴリの記事
- 「ソフトウェアアーキテクチャ・ハードパーツ」の情報リンク~マイクロサービスの設計技法の課題は何なのか(2023.11.12)
- パッケージ原則とクラス原則の違いは何なのか(2023.10.14)
- パッケージ設計の原則の意義は変化しているのか(2023.09.30)
- QAエンジニアの役割は開発チームのガードレールみたいなものという考え方(2023.08.21)
- テストアーキテクチャ設計モデルとJSTQB概念モデルの比較(2023.07.02)
「廃止Mercurial」カテゴリの記事
- GitHubはオープンソースのプロセスを標準化した(2015.06.11)
- 「反復型ソフトウェア開発」はソフトウェア工学の良書(2013.02.09)
- Mercurialに取り込まれたコミュニティ由来の機能一覧(2013.01.12)
- WordやExcelから直接Mercurialへコミットできるアドオンmsofficehg(2012.12.07)
- RedmineでSubversion リポジトリ表示を高速化する方法(2012.11.23)
「構成管理・Git」カテゴリの記事
- パッケージ設計の原則の意義は変化しているのか(2023.09.30)
- 小説活動にプルリクエスト駆動が必要になってきた(2022.05.08)
- 【資料公開】チケット駆動開発の解説~タスク管理からプロセス改善へ #redmine(2022.01.14)
- プログラミングしてる時はでっかいピタゴラ装置を作ってるみたいな感じ(2022.01.09)
- チケット駆動開発のプロセスとチケット管理システムの全体像 #Redmine(2021.12.28)
「チケット駆動開発」カテゴリの記事
- 小説活動にプルリクエスト駆動が必要になってきた(2022.05.08)
- 知識は経験よりも大切か、経験は知識よりも勝るのか、SECIモデルは相互作用を語る(2022.04.26)
- プロジェクト管理の基本はテーラリング、Redmineはプロセスをテーラリングするツール(2022.04.21)
- タスク分割は親子チケットにすべきか、それともチェックリストにすべきか #redmine(2022.03.04)
- Redmineにメンション機能が入るらしい(2022.01.15)
コメント