12

gitで機能するが、SVNで競合が発生する具体的なサンプルマージを探しています。それに加えて、Gitで試したことのないハード/痛みを伴うSVNマージのサンプルも問題ありません。

私の質問に関連して特定できるマージには、主に4つのカテゴリがあります。

  1. ビッグバンマージ
  2. 関連するマージの名前変更/移動
  3. 両方のブランチにディレクトリ/同一ファイルを作成しました
  4. クリスクロスマージ

ここでシナリオを見逃しましたか?

1〜3のサンプルを見つけるのは簡単です(コメントで2のサンプルを見つけ、私の答えの一部として3を見つけ、1はほぼすべてのリベースです)。SVNで失敗するクリスクロスマージを成功させるためのサンプル(アカデミックに見えない)はありますか?

4

3 に答える 3

6

octopus確かに、マージ戦略について言及する価値はありますか?

一般に、タコが最大8本の枝(最小は3本)と合流する具体的な例を見つけるのは非常に困難です。

タコのマージの例

ただし、あなたの質問にもう少し正確に答えるために、「これはGitで機能しますが、SVNでは機能しません」という不自然な例を提供しても、同僚や経営陣との戦いに勝つとは思いません。

両方のツールの根底にある「要点」についての十分な知識がなくても、Gitの真の力を理解することは難しいと思います。Linus自身が、Git vs SVNの内部動作を知らない誰か(通りの典型的な人)に勝利の「エレベーターピッチ」を提示できるかどうかはわかりません。

この見方に反対する人もいるかもしれませんが、私のGitの採用は、ソース管理に最適なツールであると尊敬されている人々からのものでした。私はそれらを信頼し、Gitが内部でどのように機能するか、そしてその生産性の高いワークフローからより多くを学んだので、それらが正しいことが証明されました。

SVNを使用したときの私の永続的な思い出は、マージの競合を日常的に解決することです。私はそれがソフトウェア開発の通常の部分だと思っていましたが、そうである必要はありません。

于 2013-02-19T15:08:22.680 に答える
4

素敵なサンプルの記事を見つけました。「チームb」ブランチは、2つのブランチで同じディレクトリを作成することとのツリーの競合を示すためにのみ作成されます。概要は次のとおりです。壁のサンプル

于 2013-02-15T09:43:33.093 に答える
3

さて、奇妙で悪いマージの実際のサンプルが実際の世界でキャッチされて登録されました

  1. ブランチに追加されたファイル
  2. 2つのマージ(ブランチ->トランク->別のブランチ)を介して、ファイルが別のブランチに表示されました
  3. 分岐ターゲットで編集されたファイル
  4. 問題のファイルの「ツリーの競合」が発生した後、ブランチをトランクにマージできませんでした

r9 | Badger | 2013-03-06 11:42:34 +0600 (Ср, 06 мар 2013) | 1 line Changed paths: M /branches/B2/src/add.txt

B2 changes in add.txt
------------------------------------------------------------------------
r8 | Badger | 2013-03-06 11:35:45 +0600 (Ср, 06 мар 2013) | 2 lines
Changed paths:
   M /branches/B2
   M /branches/B2/core.txt
   A /branches/B2/src/add.txt (from /trunk/src/add.txt:7)

Merge from trunk to B2
------------------------------------------------------------------------
r6 | Badger | 2013-03-06 11:31:36 +0600 (Ср, 06 мар 2013) | 1 line
Changed paths:
   M /trunk
   M /trunk/core.txt
   A /trunk/src/add.txt (from /branches/B1/src/add.txt:5)

Merge from B1 to trunk
------------------------------------------------------------------------
r5 | Badger | 2013-03-06 11:28:58 +0600 (Ср, 06 мар 2013) | 1 line
Changed paths:
   M /branches/B1/core.txt
   A /branches/B1/src/add.txt

B1 changes
------------------------------------------------------------------------

b2からトランクへのマージ試行(期待される結果-src/add.txt既存のファイルのトランクバージョンへの変更のマージ)

>svn merge --dry-run file:///Z:/Repo/branches/B2
--- Merging r4 through r9 into '.':
   C src\add.txt
 G   .
Summary of conflicts:
  Tree conflicts: 1
于 2013-03-06T06:17:40.297 に答える