2013-02-15 2 views
12

Я ищу конкретные примеры слияния, которые будут работать в git, но приведет к конфликту в SVN. В дополнение к этому, образцы жестких/мучительных SVN сливаются с тем, что вы никогда не пробовали в Git.Конкретный образец объединяет git, который не будет работать в SVN

Есть в основном четыре категории слияний я мог определить по отношению к моему вопросу:

    связанных
  1. big bang merges
  2. переименования/перемещению Слияния
  3. созданных каталоги/одинаковые файлы в обеих ветвях
  4. criss cross merges

Я пропустил любые сценарии здесь?

Поиск образцов для 1-3 является тривиальным (найдите образец для 2 в комментариях, 3 как часть моего ответа и 1 - почти любая перебаза). Есть ли у кого-нибудь образец (что не выглядит академическим) за успешное крестовое слияние креста, которое не удастся в SVN?

+1

Будет http://stackoverflow.com/questions/2471606/how -and-or-why-is-merging-in-git-better-than-in-svn? rq = 1 help или быть хорошей отправной точкой? – VonC

+0

@ VonC Я думаю, что я прочитал «все» вопросы к этой теме здесь;) Я полностью осознаю теорию git и SVN. Но я ищу конкретный образец. Я не могу поверить, что я первый, кто должен таким образом убедить своих коллег. Кто-то определенно создал такие образцы уже. Образцы должны быть действительно такими: do x, do y, do z -> Conflict in SVN/Fine in git. Длинный разговор о DAG и деревьях - ничто для «высоты лифта» :) – mheinzerling

+0

http://stackoverflow.com/questions/2475831/merging-hg-git-vs-svn?lq=1 может иметь один или два – VonC

ответ

2

Найдено article с хорошим образцом. Филиал «team b» создается только для того, чтобы показать конфликт дерева с созданием того же каталога в двух ветвях. Вот обзор: Wall sample

+1

Пожалуйста, не обращайтесь к образцам «Обезьяна с гранатой»: Subversion имеет репрезентативный набор * реальных * слабостей, не нужно демонстрировать ** полностью вырожденные ** случаи –

+0

@LazyBadger Не стесняйтесь добавлять в качестве отдельного ответа! (Кстати, там много обезьян :)) – mheinzerling

+2

Только что пришел к моему монетному двору: обезьяна с SVN-гранатой умрет, обезьяна с гит-гранатой выживет. Это означает, что образец не выглядел так плохо ... – mheinzerling

6

Наверняка стоит упомянуть стратегию слияния octopus?

В общем, довольно сложно найти конкретные примеры осьминогов, слившихся с максимум 8 ветвями (минимум 3).

example octopus merge

Однако, чтобы ответить на ваш вопрос, возможно, немного более точно я не думаю, обеспечивая надуманный «это работает в Git, но не в SVN», например покорит Вас любые сражения с коллегами/управления.

Я думаю, что это сложно - и я говорю по собственному опыту, переходя от SVN к Git после переезда компании - чтобы оценить истинную силу Git, не зная об основных «гайках и болтах» обоих инструментов. Я не уверен, что сам Линус мог бы представить кому-то выигрышную «лифтовую высоту» (типичный человек на улице), не осведомленный о внутренней работе Git vs SVN.

Некоторые могут не согласиться с этим взглядом, но мое принятие Git произошло от уважаемых людей, говорящих, что это лучший инструмент для контроля источника; Я доверял им, и они доказали свою верность, поскольку я узнал больше о том, как Git работает внутренне и из его высокопроизводительного рабочего процесса.

Мои постоянные воспоминания об использовании SVN ежедневно разрешают конфликты слияния. Раньше я думал, что это нормальная часть разработки программного обеспечения, но это не обязательно.

+0

Большинство пользователей SVN, которых я знаю, предотвращают разветвление любой ценой. Говорить им, что вы можете объединить несколько не конфликтующих ветвей сразу, бесполезно :) Они счастливы, как есть. В качестве одного из моих последних аргументов мне просто нужен еще один хороший образец, который они могли бы запустить. (Конечно, я пропущу все другие аргументы в моем вопросе, но, пожалуйста, не предполагайте, что я просто хочу привести пример на свой стол и убедить их без других слов.) – mheinzerling

+0

Octopus merge является git-специфическим, а не слабостью SVN –

+0

Это слабость, если у нее ее нет, поэтому я не согласен. –

3

Ну, real sample of strange and bad merge пойманы и зарегистрирован в реальном мире добавил

  1. Файл в филиале
  2. Через два слияния (филиал -> стволу -> другой ветви) файл появился в другой ветви редактировал
  3. файла в отраслевом-мишени
  4. Merge ветви к стволу не удалось после этого с «Дерево конфликта» для файла в вопросе

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 
------------------------------------------------------------------------ 

Merge попытка от 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 
+0

Я могу что-то пропустить, но разве это не то, что реинтеграция сливается (после слияния ветки ->)? – maxim1000

+0

@ maxim1000 - 1. Не думаю, что так 2. Не помогает даже в 1.7, где -reintegrate не является последним действием в ветке –

Смежные вопросы