git vs Subversion-長所と短所[非公開]


11

私は長年SVNのユーザーであり、それについて完全に満足しているとは言えません。数日前、私のパートナーからgitを見て、「パフォーマンスが向上し、マージと分岐が容易になった」と言われました。

私はgitとSVNの比較記事をいくつか読んでいますが、両方のバージョン管理システムを使用して賛否両論をまとめることができれば幸いです。

現在、あるシステムから別のシステムに切り替えて、主観的な意見を聞いている人々を調査しています。

私は、SVNの動作方法が本当に好きで、人々がチェックアウトできる1つの中央リポジトリを持ち、そこからライブ開発コピーとライブ本番コピーをデプロイできることを知っていますが、競合やその他のエラーをソートする頭痛の種があり、ファイルの履歴を比較したり調べたりする必要があるたびに、対処するネットワーク遅延があります。

一方、分散プラットフォームを持つことは頭痛の種のように聞こえますが、どのようにアクセスを制御できますか?プッシュおよび更新元の中央リポジトリが1つありますか?

問題についてもう少し光を当ててくれてありがとう。

回答:


15

システム管理者の知覚からの2つのツールとプログラマーとしての2つのツールを比較しようとしていますか?プログラマーの観点からこれを見ている場合、おそらくstackoverflowでこれを尋ねるべきです。または、さらに良いのは、「git svn」についてすでに尋ねられているものを調べる必要があるかもしれません。

gitとsvnについてのことは、それがどちらかまたは両方の命題ではないということです。SVNリポジトリを実行できます。開発者は、特定の場合にgitがより優れたツールであると考える場合、git-svnを使用して対話できます。


2

実際、gitを転覆するプロはいません。gitが配布されている間、誰でもリモートトラッキングブランチを使用して中央リポジトリから作業できます。gitはより速く、より柔軟で、実際にマージが機能します。さらに、現実的にはオフラインで作業できますが、subversionでは、持っていない場合は変更をコミットできません。svnのリポジトリの状態を表す単一のコミットIDを持つよりも、gitで個々のコミットを簡単に作業できます。

アクセスは、gitサーバーのユーザー/グループアカウント(権限を適切に設定するには、 'git init --bare --shared'で元のリポジトリを初期化する必要があります)またはsshキーを使用して制御されます。非常にきめ細かいアクセス制御は、サードパーティのアドオンである「gitosis」を使用して設定できます。

svnに慣れているときにgitの操作に慣れるには少し時間がかかります(私のオフィスでこれを試したばかりです)が、gitははるかに強力です。

すばらしいチュートリアルが必要な場合は、http://progit.orgをご覧ください。これは、オープンソースの書籍の完全なオンラインコピーです。


SVNはgitのより大きなファイルを扱うことができる
ジョシュア

gitのファイルサイズが最大であることを知りませんでした-制限は何ですか?
アーロンブラウン

2
ほとんどの場合、Gitはすべての作業コピーで履歴を保持しているため、大きく編集された大きなファイルは多くのスペースを占有します。大きなファイルは基本的に不変されている場合、それは大丈夫です
フィル・ミラー

ジョシュアのコメントは誤解を招くものだと思います。チェックアウトされたファイルは、SVNとgitの両方で同じサイズです。gitはレポジトリ情報のコピーをローカルに保持するため、ファイルを編集すると、すべてのファイルに必要な合計ディスク領域とレポジトリ履歴が増加しますが、SVNではこの領域は固定されます(レポジトリ履歴はローカルに保存)。
ウォルター

1

私のチームでは、コントロールバージョンシステムをsvnからgitに変更している最中です。Gitの学習曲線はやや厳しいため、私はそれを理解し始め、開発者にその使用方法を教え始めました。分散制御バージョンシステムのすべての利点(複数のブランチ、中央リポジトリなし、速度など)を知る必要があります。

あなたと同じように、サイトを展開するシステムがありました。そのため、変更が開発者のマシンとの間でやり取りされるgitセントラルサーバーのようなものを保持します。私たちのサイトはこの「中央サーバー」から変更をプルし、展開の残りのプロセスはsvnを使用するプロセスと似ています。

svnリポジトリとgitリポジトリを混在させないようにして、マイナーサイトを移行し、メインサイト用の新しいgitリポジトリを新しいバージョンのように作成し始めました。アクセスはsshキーで管理されます。また、gitwebをWebインターフェイスとして使用します(svnシステムはhttpベースです)

それは機能しており、ある日から他の日への変更ではなく、開発者がこの変更を迷惑としてではなく、最終的に私たちのシステムを改善するツールを習得する新しいスキルを試しています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.