矢崎です。
Kaoru Hosokawaさん wrote:
>
> 栗原さん、有り難うございます。
>
> www.wincvs.org を見たら、maccvs がありました。早速ダウンロードして試してみた
> ところ、うまくアクセスできました。ただ、Mac と文字コードが違うのでCR,TABなど
> がMacで対応しきれていません。取りあえずは、read-only mode で、使用します。と
> ころで、checkout したままですが、checkout をキャンセルするコマンドはなんなん
> でしょう?
私はCVS初心者ですし、Macおよびmaccvsについてもよく
知らないので、はずしているかもしれませんが、私の思う
ところを書きます。
CVSでcheckoutとは、サーバにあるファイルを、クライアント
側に複写転送することのようです。クライアント側に送られて
きたものをworking copyといいます。つまり、checkoutした
段階で、サーバと、クライアントの両方に同じものが存在す
ることになるのです。サーバはcheckout要求を受けて、クラ
イアントにファイルを転送します。しかし、その後はクライアント
側でそれらをどうしようと、預かり知らぬところだと思います。
また、クライアントは複数(例えば、ホソカワさん、栗原さん、
私など)になるのが普通で、ほぼ同時に3人がcheckoutした
場合、サーバをいれて4ヵ所に同じファイルが存在すること
になります。
普通は、クライアント側では、working copyはそのままにして
おけばよいでしょう。また、もしソースを修正したければ、working
copyに対して行います。もちろん、修正せずに参照のためだけ
にcheckoutしてもよいです。最新を見たければ、その都度checkout
すればよいのだと思います。checkoutすれば、working copy
にある旧バージョン(CVSではバージョンではなくリビジョンと
いいます)は最新バージョンで上書きされます。
また、もしworking copyがいらなくなったら、CVSコマンドではな
くて、普通のOSのファイル削除の方法で行えばよいようです。
先にも書いたとおり、woriking copyがどうなろうとサーバ側で
は関係ないので、クライアントからcommit(後述)しない限り、
クライアントでworking copyをどうしようが問題ないようです。
次にcommitについて簡単にご説明します(ご存知かもしれま
せんが)。
先にも書きましたが、ソースを修正するとは、サーバにある
ファイルを直接さわることではなくて、checkoutしてできた
working copyに修正をいれることです。ですから、ホソカワさ
んが、1つでも何かworking copyに修正を加えると、その段階
でサーバとホソカワさんのworking copyとの間に差ができます。
もし、私がcheckoutした後何もしていなければ、私のwoking copyは
まだ、サーバと同じ内容ですが、ホソカワさんのworking copy
だけ差ができています。ホソカワさんが、修正に一区切りつい
たところで、修正後の内容をサーバ側に送りたくなったとします。
これを行うコマンドがcommitです。ホソカワさんがcommitを行うと、
ホソカワさんのworking copyの内容がサーバに転送され、その
時点でサーバの内容はホソカワさんのworking copyと同じ内容
にアップデートされます。そしてその時各ソースのリビジョン番号
が増えます。なお、commitはwokingcopy全てを一括で行う方法
と、ファイル名を指定して指定ファイルだけ行う方法があります。
もしホソカワさんがcommitすれば、私のwoking copyの内容
はサーバと一致しなくなってしまいます。この段階で、私が
ソースの最新を見たければ、私はあらためてcheckoutしなけ
ればなりません。
では、ホソカワさんも、私も同時に、別々にそれぞれのworking
copyに変更を加えたらどうなるでしょう。。。。これについては、
また別の機会に。
--
矢崎 博英 <firo@....jp>