«前の日記(2006年07月20日) 最新 次の日記(2006年07月22日)» 編集

Matzにっき


2006年07月21日 [長年日記]

_ 分散バージョン管理

昨日、Rubyに対して行った修正を「変更毎にコミットしてください」というリクエストに応えて、別々に分解しようと思ったら、失敗して妙なものまで混じってしまった。

こういう失敗は、私がうっかりものだからで、珍しくもなんともないのだが、 それはそれとして「繰り返される失敗には手を打つ必要がある」ものだ。 ここは運用なりツールなりでカバーしたい。

で、その前に「なぜ失敗するか」を分析する必要がある。 なぜ繰り返し失敗するかというと、 つまり細かくコミットすることが求められているのに、 コミットできないことがあるからだ。

なぜコミットできないかというと、その理由は以下のいずれかだ

  • オフラインである (CVSにコミットできない)
  • 大きめの作業中である

前者については、私の開発サイクルが

  • バグ同定
  • バグ修正
  • ChangeLog記録
  • コミット

となっているのだが、ここでオフラインだとコミットができないまま、 次のサイクルに突入してしまう。となると、次回オンラインになったときに これまでの修正が一気にコミットされてしまう。

後者は「ブランチを切れ」と言われそうだが、CVSではブランチを切るのが非常に面倒な上、 正直どうやって扱ったものだかよくわからない。 ま、要するに、オフラインでリポジトリを操作できなかったり、 ブランチの扱いが難しすぎるCVSがいけないのだ。そうだ、そうに違いない。

分散バージョン管理システムがあれば問題(の一部)は解決しそうだ。

とはいえ、そう簡単にCVSから乗り換えられない。 数十人いるコミッタ全員が他のツールが使えるかどうか確認するのも大変だし(メジャーなものなら大丈夫だと思うけど)、 バグトラッカとの連携など周辺ツールも新しいバージョン管理ツールで用意するのも面倒だ。

考えるに、中央にCVSを置く現在の運用を維持したまま、 手元に別のバージョン管理システムを置き、 それらを双方向に同期させることができれば、 問題は解決するということではないだろうか。

開発は今まで通り、上記のサイクルで行い、 オンラインになった時点でCVSと同期すればよい。

ちょっと調べた範囲内では、

  • svk
  • tailor
  • git

などがCVSとの双方向同期ができそうである。

_ 月刊ASCII 2006年8月号

ようやっと入手。この号で今まで慣れ親しんできた「月刊ASCII」は休刊。 近日再刊予定だそうだが、それは今までのASCIIではない。

なんて、ちょっと感傷的な書き出しではあるが、 実際問題として「現在のASCII」と、「私が慣れ親しんだASCII(1980年代のもの)」が 連続しているとは「同じASCII」であるかについては、やや疑問がないでもない。 事実、ここ数年月刊ASCIIを購入していないし、立ち読みで眺めてみることさえしていなかったのだから。それは私自身が変わってしまったこともあろうが、主に「より一般向け」になってしまった雑誌が私から遠くなってしまったということであろう。

以前、「SuperASCII」という非常に通好みの雑誌があって、 それが休刊するときには非常に残念であったが、 間接的に聞いた(元)編集長の話によれば、 「あなたたち(私の同類)が喜ぶ雑誌では商売が成り立たない」のだそうだ。 それはそれでもっともなことであるし、文句のつけようもない 出版業界の現実なのであろう。

それはそれとして、最終号、完全保存版である今号は かつての懐かしい記録がたくさん載っていて懐かしいやらうれしいやら。 これらの雑誌の一部は今でも実家の倉庫に埃まみれになって埋もれているに違いない。


«前の日記(2006年07月20日) 最新 次の日記(2006年07月22日)» 編集