stMind

about Tech, Computer vision and Machine learning

 バージョン管理システムとチェックアウト


以前、svn を使ったことがあって、svn coでローカルにファイルがコピーされるので
co はチェックアウトと言っても動作は単なるコピーなんだな、と
勝手に思い込んでいました。
それからしばらくして、仕事でvssを使う機会があって、チェックアウトをしようとして
ファイルを右クリックしてみたら、項目がグレーアウトしていてできなかった。
「あれ?」と思って聞いたところ、誰かがチェックアウト中だからもう少し待ってね、という回答。
チェックアウトって単なるコピーでは無いんだ、という思いと同時に
「前にどっかのサイトからチェックアウトしたことあったけど、もしかして編集できなくて困ってる?」
「でも、そんなことが問題になっている様子はないよな〜」
と一瞬ドキッとしましたが、調べてみると同じチェックアウトでもvssとsvncvsでは定義が異なることがわかりました。

Wikipediaチェックアウトによると、

  • vssで「チェックアウト」は、リポジトリからローカルにファイルをコピーし、かつリポジトリのファイルをロックして他の人が編集できないようにすること
  • svncvsで「チェックアウト」は、リポジトリからローカルにファイルをコピーするが、ファイルのロックはしない

なので、svn co してドキッとする必要はないし、ましてや問題になるはずがないという当たり前の結論が得られました。

勉強になりました。