2

「Git vs SVN」というテーマについて多くの引用を見てきましたが、通常、答えは次のとおりです。

  1. どこでもコミットできます
  2. スペースを節約
  3. 分岐高速

...

しかし、ここで、Continuous Delivery に適しているかどうかについて議論したいと思いますか? Git は私たちに頻繁に分岐することを奨励しているように思えますが、それはメインラインに頻繁にマージし、フィーチャーではなくリリース時に分岐することを提唱する継続的デリバリーの概念に反しています。

では、Continous Delivery、Git、または SVN のバージョン管理システムを選択するときに、少し戸惑いますか?

あなたの意見は何ですか?

4

4 に答える 4

0

あなたの懸念は有効です。http://martinfowler.com/bliki/FeatureBranch.htmlから

多くの人がDVCSを機能の分岐と関連付けていますが、CIで使用できます。あなたがする必要があるのは、メインラインとして1つのリポジトリ上の1つのブランチをマークすることです。誰もが毎日それを引っ張ってプッシュするなら、あなたはCIメインラインを持っています。実際、規律のあるチームでは、私は通常、集中型プロジェクトよりもCIプロジェクトでDVCSを使用することを好みます。規律の低いチームでは、DVCSが人々を長寿命のブランチに近づけるのではないかと心配しますが、集中型のVCSとブランチへの抵抗は、頻繁なメインラインのコミットに向けて人々をナッジします。

于 2012-06-21T05:53:06.810 に答える
0

最初に、 git と SVNの違いを理解する必要があると思います このリンクを見てください。なぜ Git は Subversion より優れているのですか?

この後、どちらを選択する必要があるかがわかると思います..

于 2012-06-20T10:26:23.697 に答える
0

Subversion や Git に関係なく、ワークフローが正しければ問題ありません。各バージョン管理システムはブランチをサポートしており、一部の人々はどちらかといえば緑の方が良いと考えていますが、実際にはバージョン管理はコモディティです。

通常、アプリケーション ライフサイクル管理 (継続的インテグレーションなど) と呼ばれるバージョン管理システム周辺のインフラストラクチャの場合、より重要な目標は、バージョン管理システムをパズルの他のピースと統合するために使用されるツールの成熟度です。緊密な IDE 統合も、開発者の時間を可能な限り生産的にするのに役立ちます。

フォーラムでは多くの Git 熱狂者が活発に活動していますが、Subversion が最も人気のあるバージョン管理システムを持っている (そして現在もそうである) のには理由があります。私は不可知論者になろうとしますが、これを読みたいかもしれない「svnは吸う」レトリックのいくつかに対抗するために: http://steveko.wordpress.com/2012/02/24/10-things-i-hate-about-git /

于 2012-06-20T19:39:34.023 に答える
0

まず第一に、私は決してsvnを選びません。いくつかのケースがあるかもしれませんが、一般的に git ははるかに柔軟です。

とはいえ、Continous Delivery (CD) について見てみましょう。私の見解では、これは頻繁に展開することを意味します。また、テストを実行し、バージョンが出荷されるかどうかを決定する、ある種の継続的インテグレーション (CI) が必要であることも意味します。また、どのバージョンをテストして出荷するかを決定する方法について、何らかのワークフローが必要であることも意味します。

svn の時代には、面倒だったのでブランチはありませんでした。全員がリポジトリにコミットし、出荷の責任者がすべて問題がないかどうかを確認し、自分のバージョンのリポジトリを使用して出荷します。

少なくとも 1 つの安定版ブランチが必要なため、これは明らかに CD では機能しません。このブランチには、本番環境に入るソフトウェアの安定したリリースのみを入力する必要があります。また、テストしてデプロイする準備が整った機能がマージされるテスト ブランチも必要です。そして、まだ準備ができていない機能が配置されている開発ブランチがいくつでも必要です。

間違いなく、svn で CD を実行できます。svn は誰もがコミットできる単一のリポジトリとして機能するように設計されているのに対し、git はさまざまなサーバー上の多くのブランチやリモート リポジトリでうまく機能するように設計されているだけです。

また、ユーザー管理で問題が発生する場合もあります。svnについてはわかりませんが、ブランチごとに異なる権限を持つことはできないと思います。これは、リポジトリへの書き込みアクセス権を持つすべての人がアプリケーションを壊して、このようなものをデプロイできることを意味します。一方、上級開発者のみが書き込みアクセス権を持ち、デプロイされるリポジトリをセットアップするのは簡単です。他のすべての開発者は、別のリモート リポジトリで作業します。担当者はすべてのものをプルし、それらを他のサーバーにプッシュして展開します。

これはすべて、git が、定期的にマージ、分岐、フォーク、パッチ適用される多くのリポジトリを持つように設計されているという事実に由来しています (オープンソース プロジェクト)。一方、svn は、ファイルのバージョン管理が必要な企業向けソフトウェアであり、ソフトウェアの異なるバージョン用に 1 つまたは 2 つのブランチを用意する必要がありますが、それ以上のものは必要ありません。

最後に: 私は毎日 svn よりも git を選びます。

于 2012-06-20T10:53:57.763 に答える