Subversion初心者への3つのアドバイス

2.ただしチーム開発の場合、絶対やってはいけないことが2つある。

  • 巨大なデータをコミットする
  • 個人情報や、違法なファイルをコミットする
Subversionでは、あらゆるコミットが蓄積され、レポジトリ内に半永久的に残ります。
そして、いったん蓄積されたものを完全に削除するのは困難です。

例えば100GBの動画ファイルをコミットしてしまうと、レポジトリが一気に肥大化します。
その後あわてて削除→コミットしたとしても、「リビジョン123でファイル追加、リビジョン124で削除」という風に世代が1つ進むだけで、肥大化したレポジトリはそのままです。

同じ理由で、個人情報や違法ファイルをコミットしてしまうと、レポジトリ上にずっと残ります。
「あのコミットだけレポジトリから永続的に消す」ということはできません。(非常に困難です)

3.TortoiseSVNは英語版を使いましょう。

日本語版を使っていると、コマンドの日本語名に引きずられて正しい理解を妨げます。
「更新」という単語から、何を連想するでしょうか?
普通「ブログを更新する」「ホームページを更新する」というと、「サーバ上に情報を書き込む、追加する」を意味します。アップロードに近い意味です。
ところが、SVNの「更新」は逆なのです。「サーバで起こった変化を手元のローカルに持ってくる」つまりダウンロードのことです。
「追加」から何を連想するでしょうか?
普通の感覚では、「新しいものをレポジトリに追加する」ことだと思うはずです。
ところがTortoiseSVNの「追加」は実は「追加予約」のことです。「削除」も「削除予約」のことです。

どうですか?紛らわしいでしょう?

英語版だと、「更新」は"Update"です。
Windows UpdateやブラウザのUpdateは誰でも経験したことがありますよね。
"Windows Update"と言えば、「マイクロソフトが提供する最新のセキュリティ修正を自分のPCに取り込むこと」ですね。
日本語の「更新」に比べたら"Update"の方が、余計な誤解を生じる余地が少ないです。

もう一つ重要なことがあります。
SVNのいろいろなコマンド("Update","Commit","Add","Delete"など)は、あなたが今までに経験したどのようなアクションにも似ていません。

つまり、"SVN Add"というのは、「あなたがかつて経験したことのない、わけのわからない体験」なのです。
「わけのわからない新しい体験」に対して"SVN Add"というわけのわからない名前がついてることは、バランスがよいと思いませんか?(笑)
「わけのわからない新しい体験」に対して「追加」などという、いかにも身近な名前がついているから、余計な混乱を生むのです。

"SVN Add"がなんであるかは、実際に"SVN Add"してみるまでは絶対にわかりません。
Just Do It.
関連記事
カテゴリ: