こんにちは。
文系卒×現役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につまずいた原因は、
- 操作を覚えていなかったから
- センスがなかったから
ではありません。
ソース管理の役割と思想を知らなかっただけでした。
このブログでは、
文系卒エンジニアが実務で迷ったポイントを、
後から一つずつ言語化していきます。
同じところで立ち止まっている人の
「地図」になれば嬉しいです。
最後までご覧いただきありがとうございました。



コメント