このページは過去に掲載していたものをそのまま使用しています。
自分専用の覚え書きです。cvs serverにファイルを登録する 方法から、どう使えば良いのかを書いてくつもりです。
CVS-1.10に附属のinfoをhtmlに変換したので見てください。 コマンドの検索などは'Index'の方が便利です。
tcpserverを使って次のようにしています。これはuser権限で動作します。 プロジェクトなどで複数人で利用する場合には適切なuserを作成して管理を 行うと良いでしょう。
tcpserver -x/etc/tcpsrever-local.cdb 0 2401 /usr/local/bin/cvs \ --allow-root=/home/yasu/lib/CVS -b /usr/local/bin/ pserver
tcpserverを使う事の利点はIPによるアクセス制御を行う必要があったためです。
まず/etc/servicesに"cvspserver 2401/tcp"という記述がなければ追加します。 NetBSD-1.4.2やVineにはあったのですが、OpenBSD-2.7にはそのような記述は 存在しませんでした。そうしたら/etc/inetd.confに次のように追加します。
cvspserver stream tcp nowait cvs /usr/bin/cvs \ cvs --allow-root=/var/cvs -b /usr/bin pserver '\'で折り返しているが、実際には一行で書かれている/etc/hosts.{allow,deny}の両ファイルで適当なアクセス制限をすることを 忘れないようにしたい。tcpdを使っている場合には
/usr/bin/cvs
の
部分を/usr/sbin/tcdp
のようにinetd.confの他の個所を参考にして
変更してください。
サーバーが動いたらそこにファイルを置かなくてはいけません。 そのためにはimportという方法を使います。
cvs -d :pserver:cvs@hoge:/home/yasu/lib/CVS \ import -m <comment> <repository> yasu initial最後の二つは<vendor-tag>と<release-tag>なので 適当に自分のlogin名をつけておきました。<repository>には htmlな文書は"cvs/cvs-html"などとして、後でプログラムに"cvs/cvs-source" などとすると、repositoryを階層化することができるので便利かもしれません。
"checkout"によってserverからsource filesを取得して編集するための 準備を行ないます。
cvs -d :pserver:cvs@hoge:/home/yasu/lib/CVS \ checkout <repository>
updateはserverにあるfilesが変更されていると、その変更点をlocalに すべて反映しようとします。またcommitはlocalで行なった変更をserverに 反映させるために使います。
serverとlocalのどちらのfilesが変更されるのか に注目すると比較的楽に覚える事ができるでしょう。
まず最初にバイナリファイルは最初に加えずに、後から付け足すようにしましょう。 addコマンドを使うときに、'-kb'を指定することでバイナリファイルであることを 指示する事ができます。
cvs -d :pserver:cvs@hoge:/home/yasu/lib/CVS \ add -kb <file_name> cvs -d :pserver:cvs@hoge:/home/yasu/lib/CVS \ commit <file_name>
fileを明示的に指定してaddとcommitを行う方が安全です。
ある程度の作業が終ったら、tagでラベリングをしておくようにします。 そうしてラベル"rel-1"と"rel-3"の間の差分を作成したいと思ったときには
cvs rdiff -u -r rel-1 -r rel-3 <module_name>のようにすると良いでしょう。
分岐(branch)を使う事で作業を独立して進める事ができるようになります。 これはtag付けを行なう際に"-b"を加えることで行なえます。 もし"rel-4"というタグを"-b"を加えて作成されているとします。
cvs checkout -r rel-4 <module_name>
分岐(branch)を作成して作業を進めていって完成した場合には 幹(main)を更新するようにします。rel-3を幹に反映させたい場合には 幹にrel-3の変更を反映させてからcommitします。
cvs checkout -j rel-3 <module_name> cvs commit -m "merging rel-3 release"