SVNはなぜ不自由なのか〜新人時代には分からなかったソース管理の3つの考え方〜

若手エンジニアのつまづき
記事内に広告が含まれています。

こんにちは。
文系卒×現役SIerの AiCas(アイキャス)です。

前回の記事では、
新人時代に僕が SVNをどう勘違いしていたか を書きました。

今回はその続きとして、

  • じゃあSVNって結局どんな仕組みなのか
  • どこが良くて、どこが限界なのか
  • なぜ今はGitが主流なのか

を、新人時代を抜けた今の視点で整理します。

操作説明ではなく、
「考え方の整理」が目的です。


1. SVNの特徴

1.1 SVNは「履歴を一本で管理する」仕組み

SVNの一番の特徴は、とてもシンプルです。

正解のソースは中央に1つだけ存在する

  • 中央リポジトリが絶対
  • 全員がそこを基準に作業する
  • 履歴は一本につながる

新人時代に理解できていなかったのは、
この「一本で管理する」という思想でした。

SVNは自由度よりも、
統制と管理を優先するツールです。


2. SVNのメリット

2.1 新人・業務システム向きだった理由

実務を経験して分かったSVNの強みは、次の3つです。

① 「どれが最新か」で迷わない

中央リポジトリが常に正解なので、

  • どのソースが正?
  • どれを修正すべき?

と悩むことがありません。

② 履歴と責任が明確

  • 誰が
  • いつ
  • どこを
  • なぜ変えたか

がはっきり残ります。

これは、業務システムでは以下の理由から非常に重要です。

  • 障害発生時の原因切り分けが容易
  • 変更履歴を見ればデグレが発生しない

③ チームのルールを守らせやすい

SVNは勝手な変更がしづらく、

  • レビュー
  • 承認
  • 手順

を前提にした開発と相性がいいです。

新人が多い現場では、
この「不自由さ」がむしろ安全でした。


3. SVNのデメリット

3.1 慣れるほど見えてくる限界

一方で、経験を積むとSVNの弱点も見えてきます。

① 中央依存が強い

  • サーバが落ちると作業できない
  • オフライン作業が厳しい

退勤時間が近づいてくると、「今、コミットしていいのかな?」
と不安になりながら、作業していました。

② ブランチ運用が重い

  • 気軽に分岐できない
  • 試行錯誤がしづらい

Gitでは、ブランチを切ってマージすることは容易にできますが、
SVNでは、マージの際に手作業になるのでとても大変です。

③ スピード感のある開発に向かない

  • 人数が増えるほど調整コストが増える
  • 小さく早く試す文化と相性が悪い

「堅いが、重い」
それがSVNの本質です。


4. SVNとGitの違い

ここでは深掘りしません。
一番大事な違いだけ書きます。

4.1 違いは「管理の考え方」

  • SVN
    → 中央集権型
    → 正解は1つ
  • Git
    → 分散型
    → 各自が履歴を持つ

SVNは
管理しやすく、事故に強い

Gitは
自由度が高く、スピードが出る

どちらが上、下ではありません。
前提と文化が違うだけです。

※SVNとGitの違いは、別記事でしっかり書きます。


5. 今なら新人にこう説明する

新人時代の自分に、今ならこう言います。

  • SVNは「保存場所」じゃない
  • SVNは「履歴を残すための仕組み」
  • 不自由なのは、事故を防ぐため
  • 管理を優先する現場では、今でも有効

これが分かっていれば、
SVNはそこまで怖い存在ではありません。


6. まとめ

6.1 SVNは「時代遅れ」ではなかった

SVNにつまずいた原因は、

  • 操作を覚えていなかったから
  • センスがなかったから

ではありません。

ソース管理の役割と思想を知らなかっただけでした。

このブログでは、
文系卒エンジニアが実務で迷ったポイントを、
後から一つずつ言語化していきます。

同じところで立ち止まっている人の
「地図」になれば嬉しいです。

最後までご覧いただきありがとうございました。

コメント

タイトルとURLをコピーしました