[TortoiseSVN]初心者がSubversionを理解するために絶対必要なこと

1ヶ月前までSubversionのことを「スーパービジョン」と読み間違えていた私ですが、ようやく更新・コミット以外の便利機能を使えるようになってきました。

SVN、Subversionを理解するためのカギ

SVNというシステムは、次の3者で成り立っている。
  • ユーザ
  • SVNクライアント(=TortoiseSVN)
  • レポジトリを保持しているSVNサーバ

この概念を理解したとたん、すっと霧が晴れたような感じがしました。
それからは、新しい機能を覚えたり、マニュアルを読んで理解したりできるようになりました。

SVN初心者が覚える恐怖

SVNシステムを使いはじめた当初、私の脳裏には次の2者しかいませんでした。

  • ローカルPCのファイル・フォルダ群
  • サーバのレポジトリ

そして、
  • コミット = アップロード
  • 更新 = ダウンロード
という認識でした。

ソースコードをFTPでアップするのと同じようなイメージ。
社内LANの共有フォルダに保存するのと同じようなイメージ。
ただし、バックアップをこまめに取ってくれて、いつでも好きな時点のバージョンに戻せるという便利機能がついている、そんな認識でした。

コミット時によく見かける下記の用語がさっぱり理解できませんでした。
  • 追加
  • 紛失
  • 無視
  • 管理外

「紛失」「管理外」をあまりにも頻繁に見かけるので、だんだんストレスを感じるようになりました。 TortoiseSVNが嫌いになりました。

他にも意味不明なメッセージが私を苦しめます。
  • クリーンアップしてください。
  • ロックされています。
  • コミットできません
  • 入れ子
などなど。

エクスプローラのアイコンに現れるあの変な色のアイコンを見るの苦痛でした。
Overlays.png
赤いびっくりマークがどうやっても消えません。
本当にSVNというのは、初心者に優しくないシステムだと思いました。


しかしあるときふと思いました。

「紛失とか管理外とか言うのは、誰にとっての紛失、誰にとっての管理外なんだろう?」

そう考えたとき、SVNクライアント(=TortoiseSVN)の存在が浮かび上がってきました。

私は気がつきました。

バージョン管理システムには3つの層がある

1つめは、ローカルPC上で自分がみているファイル・フォルダ群。
2つめは、SVNクライアント(=TortoiseSVN)が認識しているファイル・フォルダ群
3つめが、離れたSVNサーバマシン上のあるファイル・フォルダ群(=レポジトリ)

1つめの層と2つめの層は、常に内容が同じというわけではない。
ユーザがファイルを作ったり削除したり編集したりすると、1つめの層と2つめの層に「ズレ」が生じる。
このズレが、「管理外」とか「紛失」とか呼ばれるもの。

「紛失」というのは、1つめの層でファイル・フォルダが削除されたことが、2つめの層に伝わっていない状態。
「管理外」というのは、1つめの層でファイル・フォルダ作られたことが、2つめの層に伝わっていない状態。

つまり、「紛失」「管理外」とは、2つめの層が1つめの層を観察して、自己と比較したときの差異のこと。

そしてこの差異を埋める作業が、
「右クリック→ TortoiseSVN → 追加」であり、
「右クリック→ TortoiseSVN → 削除」である。
この作業を怠ると、2番目の層が「管理外」「紛失」とうるさく騒ぎ立てる。


また、2つめの層と3つめの層も、内容が同じでないときがある。
この差異を埋める作業が、 「右クリック → SVN 更新」であり、 「右クリック → SVN コミット」である。 そして、「無視リストに追加」されたファイル・フォルダ群は、1層目と2層目にとどまり、3層目には伝わらない。


まとめ

1層目と2層目の違いを意識することが、初心者がSubversionシステムを理解する第一歩である x
カテゴリ: