LoginSignup
21
19

More than 5 years have passed since last update.

gitとsvnの比較

Last updated at Posted at 2017-01-08

gitとsubversionについて比較の記事を見つけたので、それの拙訳です。
訳は適当なので、元記事のリンクもつけるので正確なのはそちらへどうぞ。

Subversion vs. Git: Myths and Facts」より

gitとsubversionにまつわる神話(都市伝説)と真実について、まとめられています。
[神話: 真偽]という形でそれらを以下に訳してみます。

1. Gitリポジトリは同じsubversionリポジトリに比べてデータ量はかなり小さい: ウソ

Git repositories are significantly smaller than equivalent Subversion ones

2. subversionのブランチのコストが高い: ウソ

Branches are expensive in Subversion

3. subversionで2つのブランチをマージするには、リビジョンの範囲を手動で設定しなければいけない: ウソ、昔の話である

It is required to manually specify the range of revisions when you merge two branches in Subversion

4. subversionのワーキングコピーでは、フォルダごとに.svnディレクトリがある: ウソ、昔の話である

There is an auxiliary .svn directory in each folder of Subversion working copy

5. subversionを使っている人などもはやいない: ウソ

Nobody uses Subversion anymore

6. 分散型バージョン管理システムは、subversionのような中央型のものより、本質的に優れている: ウソ。 あくまで部分的 

Distributed version control systems are inherently superior to centralized ones such as Subversion

7. Gitは大規模プロジェクトにも良く対応できる: ウソ。 いくつかのより小さいリポジトリに分割することで対応する

Git scales well for larger projects

8. Gitは大人数チームにも良く対応できる: ワークフローに一定の制限がある

Git scales well for larger teams

9. Subversionではマージ作業が常に辛い: 昔ながらの問題がある

Merge operation is always painful in Subversion

10. Gitは実装上の複雑さや制限が漏れているし、コマンドラインの形式がわかりづらい: 本当。 分散型VCSと、抽象化とコマンドの簡易化は相容れないため。

Git has leaky abstraction and crazy command line syntax

Leaky abstraction

11. Gitの履歴は安全ではない: 本当

Git history is not safe

12. Gitはリポジトリの一部へのリードアクセス権限を提供できない: 本当

Git does not provide granular read access control

13. Gitはバイナリファイルと相性は良くない: 本当

Git is not friendly to binary files


svnに勝ったのはgitではなく、GitHub

Git didn’t beat SVN, GitHub did. という記事を見つけました。gitだけではsubversionのシェアをひっくり返すことはなかっただろうと、CTOの意見がまとめられています。

Git自体はsubversionの完全な上位互換ではないので、この記事はしっくりきました。
Gitが複数人数の開発、特に開発者の所属する組織や所在がばらばらのケースに向いていることと、そのケースを効率化するGitHubは、オープンソースプロジェクトでは特に有効だったように思えます。

subversionからgitに切り替えるなら、GitHubのようなものも必要?

なんのために移行するかにもよるでしょうが、GitHubのようなものがないと、gitのメリットをいかしきれない可能性が高いです。開発フローも見直す必要があるでしょう。

移行の理由として

  • 現状の開発体制の問題を解決したい
  • 採用時にgitを使ってると言いたい
  • オープンソースプロジェクトに関われる人材を育成したい
  • CIなどの連携ツールを使えるようにしたい

などがあると思います。GitやGitHubの利用に切り替えることで、これらが達成できるかは見極めた方が良さそうです。

subversionからgitへの移行

移行そのものは、ツールや手法はすでにだいぶあります。主なものは下記にまとめています。

svnからgitへの移行関連の記事まとめ

GitHubとそのalternative

費用や社内ネットワークにとどめるなどの理由で、GitHubをそのまま使うことでできないかもしれません。(後者の場場合は、Github Enterpriseでいけるかもしれません)

そんなときは、「Github alternative」でググると、求めるものが見つかるかもしれません。

参考サイト

21
19
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
21
19