2

私はバージョン管理システムに不慣れで、どちらを使用するかを決定しようとしています。たくさんの情報がありますが、誰かの専門家が次の質問に答えることですでに私を助けてくれるかもしれません。私の要件に非常によく似たバージョン管理/分岐モデルを見つけました。

http://nvie.com/posts/a-successful-git-branching-model/

理論的には、SVNでも同じように簡単に実現できますか?それぞれが複数の異なるブランチにマージされるHotfixおよびBugfixブランチのように?そして、なぜ「マージ」はGitで簡単になるはずなのですか?

4

4 に答える 4

5

リンクしたワークフローは、かなりの数のStackOverflowの回答で推奨されています。ただし、一般的に言えば、主なアイデアは、「優れたコード」と「開発コード」を別々masterに、そしてdevelopment分岐させることです。さらに、developmentブランチにマージする準備ができるまで、機能を分離しておいてください。つまり、featureshotfixブランチです。

そのワークフロー、または非常に類似したワークフローがSVNで完全に可能であることは間違いありません。SVNブランチを使用します。

周りにはたくさんのリビジョン管理システムがあり、Nvie Gitワークフローはかなり一般的です-一般的なワークフローは、おそらくほとんどのリビジョン管理システムで利用できます。

理論的には、SVNでも同じように簡単に実現できますか?それぞれが複数の異なるブランチにマージされるHotfixおよびBugfixブランチのように?

個人的には、SVNでの分岐はGitでの分岐ほど簡単ではないと思います。Linus Torvaldsも同意します。そのため、彼は分岐のアイデアに基づいてGitを設計しました。

そして、なぜ「マージ」はGitで簡単になるはずなのですか?

Gitは、分岐のアイデアに基づいて設計されています。ブランチの作成、ブランチの使用、2つのブランチのマージ、3つのブランチのマージ、ローカルリポジトリとリモートリポジトリのブランチのマージ-Gitはブランチが得意です。SVNはブランチ中心ではありません。私の(限られた)SVNの経験では、2つのブランチをマージすることは必ずしも楽しいとは限りません。

バージョン管理システムを使い始めたばかりの場合は、Gitをお勧めします。GitとSVNの適切な比較については、このリンクを確認してください。ただし、Gitは少し頭脳を曲げる要素であり、特にGitを初めて使用する場合は、概念的にはSVNの方がはるかに理解しやすいことに注意してください。ProGitの本は非常に役に立ちました。

于 2012-05-07T22:21:44.093 に答える
3

あなたが提供したリンクから:


私が生まれた古典的なCVS/Subversionの世界から、マージ/ブランチは常に少し怖いと考えられてきました(「マージの競合に注意してください、彼らはあなたを噛みます!」)そしてあなたがたまにしかやらないことです。

しかし、Gitを使用すると、これらのアクションは非常に安価でシンプルになり、実際には、日常のワークフローのコア部分の1つと見なされます。


私はSVNに関する限り、その声明に同意します(私は実際にGITの経験がありません)。SVNでは、マージには時間がかかり、率直に言って怖いです。軽く枝分かれしません。したがって、答えは「いいえ」だと思います。多くの分岐とマージを行う必要があることが事前にわかっている場合は、SVNを使用しないでください。

于 2012-05-07T22:15:49.410 に答える
2

理論的には-はい、SVNはそれを実現できます。しかし、SVNには、マージおよび分岐ツールが不足しており、不十分です。そのため、SVNとのマージ/分岐は少し不便で恐ろしいものです(主な問題-複雑なツリーやその他の競合)。

GITは、ブランチのマージの達人です。彼は、非常に困難な競合を解決できます。また、すべてのブランチバージョンを簡単に追跡できます。

SVNとGITの主な違い:

  • SVNは集中型バージョン管理(CVCS)です
  • GITは分散バージョン管理(DVCS)です

比較を理解するには、この記事をご覧ください

于 2012-05-07T22:18:58.117 に答える
1

Subversionには、特定のリビジョンの特定のブランチ/トランクが(svn:mergeinfoによって)ブランチにマージされているかどうかを常に把握できるという利点があります。これは、チェリーピッキングコミットの場合に重要です。Gitは、より効果的に機能すると評判のマージツールを提供します。

SubGit(subgit.com)をSVNリポジトリにインストールすると、両方のアプローチの利点が得られます。インストール後、SubGitはそのSVNリポジトリにリンクされたGitリポジトリを作成し、そのGitリポジトリへのプッシュがSVNに変換されるようにします。変換はオンザフライで実行されます。

于 2012-05-12T12:54:02.117 に答える