Subversion Merge - возможно игнорировать историю слияния? - PullRequest
1 голос
/ 28 июля 2011

Моя основная проблема заключается в том, что я пытаюсь повторно объединить ствол и ветвь в Subversion 1.6, игнорируя любую предыдущую историю слияния. Мой сценарий выглядит следующим образом:

  1. У меня есть проект в багажник .
  2. Я создал ветвь в branch / branch-A
  3. Работа продолжается на trunk и на branch-A
  4. Поскольку branch-A было довольно большим изменением, я использовал TortoiseSVN, чтобы " Объединить диапазон ревизий " от trunk до Branch-A каждую неделю или около того.Были конфликты, и я вручную разрешал их по мере их возникновения.

На этом этапе branch-A должно содержать все в соединительной линии плюс новую функцию.В основном это работает, но я вижу проблему, которая работает в trunk и не работает в branch-A .Это заставляет меня думать, что я неправильно разрешил конфликт в более раннем слиянии.

Я хотел бы сделать слияние, которое игнорирует мою предыдущую историю слияний и просто выполняет прямую магистраль против branch-A diff.Когда я пытаюсь выполнить какое-либо слияние сейчас, оно учитывает историю слияния и не показывает никаких различий для конфликтов, которые я разрешил ранее. Возможно ли игнорировать всю предыдущую историю слияния и просто получить разность слияний "ветвь А против ствола"?Я говорю об этом неправильно?

Примечания:

  • Я пытался «объединить серию ревизий» и «игнорировать происхождение», но безуспешно.
  • Меня не волнует отслеживание изменений в ветке.Когда он будет реинтегрирован, я планирую сделать это как одну большую ревизию слияния для новой функции.
  • В данный момент я пытаюсь "реинтегрировать" вместо "слияния ревизий", но для запуска потребуется некоторое время, поэтому я не уверен, что это волшебная пуля.

ОБНОВЛЕНИЕ: Похоже, консенсус заключается в том, что варианты «слить ревизии» и «игнорировать происхождение» должны были дать мне то, о чем я просил.Я снова запустил слияние, и у меня возник конфликт с бессмысленным деревом и ничего больше, поэтому я собираюсь предположить, что попал в крайний случай где-то, где слияние не делало того, что должно было произойти.Я приблизительно знал, где должна быть ошибка, поэтому я в итоге просто дифференцировал весь ствол и ветку, используя DiffMerge, а затем обнаружил и исправил ошибку вручную.Не чисто, но это сработало.

1 Ответ

1 голос
/ 28 июля 2011

Вы можете использовать флаг

--ignore-ancestry

, который «заставляет логику объединения бездумно генерировать различия так же, как это делает svn diff, игнорируя любые исторические отношения».От http://svnbook.red -bean.com / ru / 1.5 / svn.branchmerge.advanced.html

...