mkdir /path/to/cvsroot chgrp mygroup /path/to/cvsroot chmod g+ws /path/to/cvsroot cvs -d /path/to/cvsroot init
野暮用でPowerEdge 2600が本社へしばらく出張。くそ重たい筐体を梱包してヤマト便で発送。こういう日に限ってスーツ出社日だったり。
CVS のリポジトリにチェックインしていなかったファイルが沢山あった。 コードの変更内容を確認しつつチェックイン。
WiKicker はRCSでバージョン管理をしているのだが、NaneyOrgWiki だと一部のページでかなりリビジョンが上がってきている。 それらはだいたいコメントフォームによる追記によるもの。
ということで以前から検討していた「追記だけの場合はチェックインしなようにする」オプションを追加する予定。
DiKicker の方も未実装のコードを実装しようとしたが、記憶が薄れてしまっているので今日はやめておく。
開発中のPerl モジュールの Windows での作業(動作確認、PPM パッケージ化など)は、CVSクライアントとして使いやすかったこともあって
という組み合わせだったのだが、CVS作業のために Eclipse を起動するのも面倒なので TortoiseCVS を入れてみた。
使い勝手はTortoiseSVNとほぼ同じ。アイコンオーバーレイ表示がちとしょぼい(管理下にあるファイルには緑色のもやがかかる)。 Pageant によるパスフレーズ入力省略方法もTortoiseSVNの方法と同じ (今回は Subversion リポジトリと CVS リポジトリが同じホストにあるので特に何も設定する必要なく成功)。
2.01 で POSIX プラットフォームで動くようになった NSIS であるが、2.02、2.03 は Linux上ではソースパッケージからのビルドでエラーになってしまっていた。
1月5日に 2.04 がリリースされたので、こちらも試してみる。お、ビルドできた。
tar jxvf nsis204.tar.bz2 cd NSIS/Source make USE_PRECOMPILED_EXEHEADS=1 cd .. su ./install.sh /usr/local/NSIS-2.04
インストール時に Menu ディレクトリが無くてエラーメッセージが出るのは前回と一緒。CVS リポジトリをみるとHTMLで書かれたドキュメントがあるだけのようなので、無くても問題なさそうである。 付属の install.sh も改行コードが CRLF から LF に修正されているためそのまま実行できるようになった。
[ Linux 上で NSIS ]
都合によってCVS リポジトリにアクセスできないところにいるチームメンバから、変更した作業ファイルを送ってもらった。
さて。
どうするか。
ファイルに $Id$ などが含まれていてどのリビジョンに対して変更したのかが簡単にわかるものは diff をとって patch をあてるか。 自分の作業ディレクトリとは別にもう一つ作業ディレクトリをチェックアウトして、そこに変更されている作業ファイルを上書きコピー。
cvs diff -r リビジョン -au ファイル名 | patch /path/to/my/working/dir/ファイル名
で自分の作業ファイルにマージ。
とりあえず HEAD と diff してみて問題なさそうならそのままマージ。
やっぱりリビジョン番号を埋め込んでおいた方が便利やね。
新しいCVS リポジトリを準備しようとして実験しているうちに、別の既存のCVS リポジトリを消してしまったアナタのために(そして将来の自分のために)。
#!/bin/sh /usr/local/bin/pdumpfs /home /var/local/pdumpfs >/var/local/pdumpfs/log \ 2>/var/local/pdumpfs/error-log /usr/local/bin/pdumpfs-clean --keep 2Y12M24W30D /var/local/pdumpfs
同じディスク上なのでもちろんディスク障害がおきたらパーであるが、それはまた別の話として。 pdumpfs-clean の keep 具合は、今後のディスク使用量をみて要調整。
しばらく放置していたこの nDiki のコード(DiKicker)に手を入れようと思うのだけれど、CVS で管理し続けるのもなぁと思い、これを機会に Git に移行させることにした。移行は cvs2git で。ローカルで自分だけでバージョン管理していたものだし、ブランチも切ってなくてタグを売ってあるだけなので一番ちょろいケースか。
Debian GNU/Linux sid 上に cvs2svn Debian パッケージをインストール。以下の手順でコンバートした。
Git リポジトリ上できちんとユーザ名とメールアドレスが入るようにしたいため、オプションファイルを使うようにする。
zcat /usr/share/doc/cvs2svn/examples/cvs2git-example.options.gz > cvs2git.options
でひな型をコピーして以下を書き換え。
以下のコマンドで。
cvs2git --options=cvs2git.options
mkdir <プロジェクト名> cd <プロジェクト名> git init cat ../cvs2svn-tmp/git-blob.dat ../cvs2svn-tmp/git-dump.dat | git fast-import
で QGit や git log などで、どのようにインポートされたかを確認。trunk のラインから、タグ毎に分岐したコミットができてそこに CVSROOT/ 以下が差分として入っているという形になっているのが特徴的。CVSROOT/ は特にいらないので、数が多くないし手でタグ打ち直すかなあという感じ。
git fast-import したままだと作業ツリーが空なので git checkout して master を checkout するなりすれば、後は普通に Git 上でバージョン管理をしていくことができる。
あっさり移行できたので一安心。
今年は1月4日が特別おやすみになったため年明け側が長いパターンの9連休となった。これだけ長く休んだのはゴールデンウィーク含め何年ぶりだったかなあ。
連休中は、ウィラ大井へ行って朝マックへ行って年末年始の買い出しして初詣行ってIKEA船橋行ったって感じ。
計算機系はここの Bootstrap 化したいなと思ってたんだけれど、その前の CVS リポジトリの Git リポジトリ化まで。こちらはちょっとずつ進めるかな。
あとはポモドーロテクニックのプライベートでやってみるのをちょっと始めてみたぐらい。それと冬休みに入ってから日記他1日1記事を復活。今のところ継続中。
それぞれ大きな事は無かったけれど充実した冬休みだったな。
Naney (なにい) です。株式会社MIXIで SNS 事業の部長をしています。
※本サイトの内容は個人的見解であり所属組織とは関係ありません。