Межотраслевое слияние в TFS? - PullRequest
20 голосов
/ 10 сентября 2008

Возможно ли слияние с веткой, которая не является прямым родителем или дочерним элементом в TFS? Я подозреваю, что ответ - нет, поскольку это то, что я испытал, используя его. Тем не менее, кажется, что в определенные моменты было бы действительно полезно, когда работали над различными функциями, которые могут иметь разные циклы утверждения (т. Е. Первая функция может быть утверждена до второй функции). Это становится чрезвычайно трудным, когда у нас есть производственные ветви, где мы должны объединить какую-то функцию в предыдущую ветку, чтобы мы могли выпустить ее до следующей полной версии.

Наша текущая стратегия ветвления состоит в том, чтобы развиваться в магистрали (или магистрали, как мы ее называем) и создавать ветвь для стабилизации и выпуска в производство. Эта ветвь может затем использоваться для создания исправлений и других вещей, в то время как основная линия может расходиться для будущих функций.

Какие методы можно использовать иначе для смягчения сценария, такого как сценарий, описанный выше?

Ответы [ 7 ]

19 голосов
/ 10 сентября 2008

Я согласен с Harpreet, что вы, возможно, захотите вернуться к тому, как вы настроили свою ветвящуюся структуру. Однако, если вы действительно хотите выполнить этот тип слияния, вы можете выполнить то, что называется безосновательным слиянием. Он запускается из командной строки tfs,

Tf merge /baseless <<source path>> <<target path>> /recursive

Дополнительную информацию о необоснованных слияниях можно найти здесь

Также я нашел этот документ неоценимым при построении нашей структуры ветвления TFS. Руководство по ветвлению на сервере Microsoft Team Foundation

8 голосов
/ 10 сентября 2008
tf.exe merge /recursive /baseless $/TeamProject/SourceBranch $/TeamProject/TargetBranch
2 голосов
/ 10 сентября 2008

Возможно, вы захотите пересмотреть свою стратегию ветвления. Как вы получаете производственные филиалы? Вы объединяете весь код из веток разработки, регрессионного тестирования и затем создаете производственную ветку для исправлений? Или вы разрабатываете на магистрали, а затем создаете производственные ветви для стабилизации и выпуска? Второй способ создает проблемы того типа, который вы описываете. Если вы используете первый подход - предполагается, что ствол предназначен только для вещей, которые были построены на проверенных ветвях, а затем объединены, и вы столкнетесь с этим гораздо реже. При таком подходе, если у вас все еще есть эта проблема, это может быть связано с тем, что ваши усилия по разработке очень велики, и вам может потребоваться относительно сложная стратегия ветвления со слоями ветвления и продвижения.

1 голос
/ 10 сентября 2008

TFS позволит вам объединяться с ветвью, которая не является родительской / дочерней - это называется необоснованным слиянием. Смотрите эти ссылки:

От MSDN

От команды TFS через CodePlex

Обычно мы вносим серьезные или дестабилизирующие изменения в ветку разработки. Если близко к основной версии одного из наших продуктов, почти все изменения будут внесены в ветку.

1 голос
/ 10 сентября 2008

Да, вы можете выполнить необоснованное слияние, но только из командной строки (tf.exe).

1 голос
/ 10 сентября 2008

AFAIK вы можете сделать это, если ветви были созданы из одной и той же исходной папки.

  • багажник /
  • филиалы / - / feature1 (ответвление от ствола) - / feature2 (ответвление от ствола)

Если вы сделаете это, то сможете объединить и Feature1 и Feature2.

Хотя мой опыт ветвления / слияния с TFS оставляет меня желать большего. Хотелось бы, чтобы у нас был только SVN.

0 голосов
/ 31 мая 2019

Я далеко не эксперт по TFS, но я думаю, что вы можете объединить братьев и сестер, и я думаю, что это не безосновательное слияние.

Мы разветвили нашу основную ветвь (имя ветви "main") для функции (имя ветки "feature"), затем мне понадобилась часть работы в ветке, которая также была разветвлена ​​от основной ветви (имя ветви "dev"). «). Я бы рассматривал ветки feature и dev как братьев и сестер, так как они оба принадлежат одному и тому же родителю. Я объединил функцию с dev, и все файлы (14000) были помечены как слияние, некоторые помечены как слияние, редактирование. Я не мог отменить (Visual Studio просто повесить), поэтому я принял слияние. Затем я слил dev с main, затем перетянул main на feature, и снова 14000 файлов были помечены для слияния. Я был очень расстроен и боялся, что это продолжится.

В этот момент мы сделали тестовый проект. Мы устанавливаем основной, затем разветвленный dev и feature из main. Мы повторили вышеупомянутые шаги с теми же результатами. После того, как мы завершили слияние с основной функцией, все будущие слияния показывали только отредактированные файлы.

После нашего небольшого теста я завершил слияние с основной функцией. И так же, как тест, наши слияния теперь показывают только отредактированные файлы. Мы можем перейти от dev к функции, функции к main, main к dev и т. Д.

Я заметил, что при ветвлении все даты файла были изменены. Может быть, это проблема?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...