わさっきhb

大学(教育研究)とか ,親馬鹿とか,和歌山とか,とか,とか.

バージョン管理ソフトウェア

私の研究室*1では昨年1年間,こちらでファイルを「バージョン管理ソフトウェア」で管理し,みなさんにはWebブラウザを介して読めるようにしていました.
これからは,学生にも読み書きの両方ができるようにします.これにより,作成中のファイルを,研究室のサーバに寄託することになります.USBメモリなどとは別のバックアップ手段ともいえます*2
使用するソフトウェアは,Subversionです.
Windowsで使用する際には*3TortoiseSVNの最新版と,日本語のLanguage packをインストールするといいでしょう.
Subversionを使用するに当たり,必要な知識を挙げておきます.

  • クライアント/サーバモデルで利用します.
  • バージョン管理とは,「いつどんな変更をしたか」「いつファイルやディレクトリを作ったか」「いつファイルやディレクトリを削除したか」などを管理することです.
  • この意味でのバージョンを管理しているのは,サーバ側にあり,そのデータは「リポジトリ」と呼ばれます.
  • クライアントは,我々がふだん使用するPCです.こちら側に置くファイルは「作業コピー」と呼ばれます.
  • クライアント/サーバモデルのおかげで,クライアント側では,過去のファイルやディレクトリの管理をしなくて済みます.作業コピーとしては,基本的に「最新版」のみを持っていればよいということです.
  • Subversionでは,バージョンを通し番号で管理します.この通し番号を「リビジョン」と言います.
  • リポジトリの「最新版*4」または「特定のリビジョン*5」のファイル(群)をクライアント側にダウンロードして,作業コピーを設置するestablish a working copyことを,「チェックアウト」と言います.最初に1回だけします.
  • 作業コピーがすでにある状態で,その内容を,リポジトリの最新版のファイル(群)に変更することを「更新(アップデート)」と言います.これはよく使います.
  • 作業コピーのファイルをいろいろ変更して,その内容を,リポジトリに送ることを「コミット」または「チェックイン」と言います*6.1回のコミットで,リビジョンが1増えることになります.リビジョンが多ければ多いほど,それまでにたくさん変更してきたことを意味します.
  • 作業コピーのファイルをいろいろ変更して,コミットする前に,その変更を取りやめたければ,元に戻す処理ができます.「リバート」とも言います.リバートした後で,取りやめを取り消すことはできません.
  • 作業コピーに「.svn」というのができますが,削除しないように.ここには,更新・コミット・リバートをするために必要なファイルが入っています.

だれもが読み書きできてしまうのは管理上よくありませんので,ユーザ認証を行っています.研究室の学生には,ユーザごとにアカウントを発行してお知らせします.

*1:そろそろ忘れそうなので,改めて書いておきますが,ここでの「研究室」は,私とそのもとでの学生の集合です.「データエンジニアリング研究グループ」とは区別してください.

*2:だからといってUSBメモリなどのバックアップが不要というわけではありませんよ.

*3:Linuxでは,svnというコマンドを駆使します.

*4:Subversionでは「HEAD」とも言います.

*5:俗に言う「古いバージョン」です.

*6:この操作は「更新」と言ってはいけません.