Конкретный образец объединяет git, который не будет работать в SVN

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

В основном есть четыре категории слияний, которые я мог бы определить по моему вопросу:

Пропустили ли я какие-либо сценарии здесь?

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

Ответ 1

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

Ответ 2

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

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

example octopus merge

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

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

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

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

Ответ 3

Хорошо, реальный образец странного и плохого слияния, пойманный и зарегистрированный в реальном мире

  • Файл добавлен в ветку
  • Через два слияния (ветвь → соединительная линия → другая ветвь) файл появился в другой ветке
  • Файл, отредактированный в ветке target
  • Объединить ветку с соединительной магистралью после нее с "конфликтом дерева" для рассматриваемого файла

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