SVX日記

2004|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|

2005-11-21(Mon) USBメモリでモバイルcvs!!

  今日はちょっとメモ書き。ノートPCのHDDを慎重に新調して伸張したので、改めていろいろと環境を構築してみたいと思う。今日は、職場と家と、CygwinとcoLinuxとで、グッチャングッチャンになってしまっている、文書やプログラムを一括管理するため、cvsを導入するという話。

  cvsを導入するといっても、職場と家とを一括で管理する必要があるから、リポジトリはUSBメモリを活用することにする。先日、iPodシャッフル替わりに購入してはみたものの、電源を切る度に1曲目から演奏という恐るべき仕様のために、256Mという大容量がサッパリ活用できないスットボケアイテムを活用するのである。

  画像の説明

  コイツをCygwinからcvsリポジトリに使うならなんの工夫もいらないが、coLinuxから使うには、通常とは逆にWindows上のドライブをcoLinuxから読み書きできるようにする必要がある。確かsmbmountというLinux上からWindows上のドライブをマウントするアプリを利用すればできるであろう。さてトライ。

  まずは、USBドライブのドライブレターを決めておく必要がある。USBだから「U」にしよう(安直)。マイコンピュータ、管理、ディスクの管理、ドライブ文字とパスの変更から、ドライブレターを変更してやる。そしたら、マイコンピュータ上のリムーバブルディスク(U:)、共有、新しい共有から、共有名を「usb」にしてやる(さらに安直)。でもって、マイネットワーク、近くのコンピュータから自分のPC(オイラのPCの名前はJyokusyuだ)を開いてやる。「usb」という共有ドライブができていればオッケーだ。

  今度はcoLinux側からマウントする設定に移る。マウントポイント「/mnt/smbusb」を作り(究極に安直)、smbmountでマウントしてやる。ワークグループ名やユーザ名は適当に合わせること。

# mkdir /mnt/smbusb
# smbmount //Jyokusyu/usb /mnt/smbusb -o username=Administrator workgroup=MYGROUP
Password:

  cvsの初期設定をする。最近、使ってないからmanや/usr/shareの下のドキュメントをチラ見しながらの作業である(ってほどのことでもないけど)。

# export CVSROOT=/mnt/smbusb/cvs
# cvs init

  基本的な設定はコレだけだ。テストに移ろう。テスト用プロジェクトのディレクトリを作って、移動する。

# mkdir test
# cd test

  テスト用のドキュメントを作る。バージョン管理するファイルである。内容は「This is CVS test.」の1行だけ。

# vi test.txt
This is CVS test.

  プロジェクトをcvsに登録(import)する。適当なコメントをつける。このコメントがとっても悩ましいが、ちゃんとした名前を付けるクセを付けておくと有効だぞ。Rubyの人も「名前重要」と言っている。

# cvs import test itline initial
This is CVS test initial check in.
CVS: ----------------------------------------------------------------------
CVS: Enter Log.  Lines beginning with `CVS:' are removed automatically
CVS:
CVS: ----------------------------------------------------------------------

  この段階で、USBメモリのリポジトリの中にファイルは移動しているハズだ。プロジェクトの登録が終わったので、消してしまおう。

# cd ..
# rm -rf test

  改めてプロジェクトをチェックアウトする。ディレクトリの中を見てさっきのファイルが復活していることを確認しよう。

# cvs checkout test
# ls -lrt test
合計 8
-rwxr-xr-x    1 root     root           18 11月 22 10:56 test.txt
drwxr-xr-x    2 root     root         4096 11月 22 10:58 CVS

  今度はcvsの機能を活用してみる。cvsの真骨頂は常に差分を意識しながらプログラムが組めることだ。これにより、コミット直前に不要な修正が含まれていないか確認することができる。さっきのテスト用ドキュメントに修正、追加してみる。

# cd test
# vi test.txt
This is CVS change test.
This is CVS add test.

  状態を確認しよう。cvs updateはcvsの基本だ。cvsは複数人が同時にソースに触れられるから、暇さえあればcvs updateをして、リポジトリの状態を確認するといい。

# cvs update
cvs update: Updating .
M test.txt

  修正を加えたから「M」マークが出ている。どんな修正を加えたか確認してみる。cvs diffだ。

# cvs diff
cvs diff: Diffing .
Index: test.txt
===================================================================
RCS file: /mnt/smbusb/cvs/test/test.txt,v
retrieving revision 1.1.1.1
diff -r1.1.1.1 test.txt
1c1,2
< This is CVS test.
---
> This is CVS change test.
> This is CVS add test.

  行がどのように修正されたか一目瞭然だ。実際にはcvs diff -bcなんて使うことが多いかな。じゃ、最後にコミットだ。

# cvs commit
This is CVS commit test.
CVS: ----------------------------------------------------------------------
CVS: Enter Log.  Lines beginning with `CVS:' are removed automatically
CVS:
CVS: Committing in .
CVS:
CVS: Modified Files:
CVS:    test.txt
CVS: ----------------------------------------------------------------------

  これでUSBメモリ上に更新が反映された。反映されたことを確認してみよう。

# cvs update
cvs update: Updating .

  コミット後は「M」マークが消えていることで確認できる。これで、職場も家も、CygwinもcoLinuxも、ファイルを一元管理できるのだ。やっほー。

  ……などという作業を、1時間の帰りの電車の中で試して、この文章まで書き上げてしまった。というワケで、ちょっと雑なのは勘弁。ではまた。