重複の可能性:
マージ: hg/git と svn
Git と DVCS は一般的に Subversion や集中型バージョン管理システムよりも優れていると聞いたり読んだりしたことがあります。私が聞いた理由の 1 つは、集中型システムよりも DVCS の方がマージがはるかに優れているということです。
マージに関して、2つの違いは何ですか? たとえば、ブランチを再統合する場合、Git が Subversion よりも優れている理由は何ですか?
重複の可能性:
マージ: hg/git と svn
Git と DVCS は一般的に Subversion や集中型バージョン管理システムよりも優れていると聞いたり読んだりしたことがあります。私が聞いた理由の 1 つは、集中型システムよりも DVCS の方がマージがはるかに優れているということです。
マージに関して、2つの違いは何ですか? たとえば、ブランチを再統合する場合、Git が Subversion よりも優れている理由は何ですか?
それらが配布されているという事実ではなく、バージョンではなく変更セットを追跡しているという事実です。(ただし、分散システムは通常変更セットで動作しますが、集中型システムはバージョンを使用することがよくあります。これは、分散システムがバージョンベースのアプローチでは機能しないためです。一方、集中型システムはそれを回避できます)。
Subversion は、OK、最初にこのバージョンを持っていて、次にそのバージョンを持っていると言います。そして、マージの段階になると、2 つのバージョンを取得して比較し、それらを組み合わせる方法について知識に基づいた推測を行います。Git、mercurial、および同様の SCM では、たとえば、最初は何もありませんでしたが、次に誰かがこの変更を行い、次に他の誰かがその変更を行いました。順番、あちこちの行番号を修正し、ファイルの名前変更を考慮していますが、基本的にはそれだけです。
Subversion は、インテリジェントなマージを実行するのに十分な情報を実際には持っていません。相違点のみを認識し、それらがどこから来たのかを認識しません。
Linus torvalds が git に関する講演を行いました。これは youtubeで見ることができ、一見の価値があります。その中で、彼は git 以外のすべてのソース管理ソリューションを却下し、git が優れている理由を説明しています。
個人的に、私は git を使いこなすのにフラストレーションを感じており、専門的に毎日 SVN を使用しています。svn は十分に高速であり、分岐とマージは私のニーズに十分対応できると思います。
しかし、私はソース管理の専門家ではありません!