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

Subversionを使い始めた初心者のみなさんこんにちは。
(主にTortoiseSVNユーザを想定していますが、他のSVNツールにもあてはまると思います。)

1.ブランチ内では、どんどん失敗しよう

Subversionでは、あらゆる変更が蓄積され、あらゆるファイルのあらゆる過去の状態を再現することができます。
しがって、(あなたがブランチで作業している場合は)失敗をおそれる必要はありません。
ファイル追加・削除・変更など好きなだけバシバシやっちゃいましょう。

ブランチがない場合は今すぐtrunkをコピーして自分用のブランチを作りましょう。

失敗を恐れて、自分が知ってる使い方のみに限定して細々と使いつづける人は、上達が遅くなります。
失敗を恐れずにいろんなことを試す人の方が上達が速いです。

何かのテレビ番組で見たのですが、子供がiPadなどの使い方をすぐ覚えるのは、「まず使ってみるから」だそうです。
それに対して大人が新しい機器をなかなか使いこなせないのは、「使う前にマニュアルを見ようとしたり、説明を求めようとしたり」するからだそうです。

Just Do It.

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.
関連記事
カテゴリ:

人気記事