Подтвердить что ты не робот

Пересечение слияния в TFS?

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

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

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

4b9b3361

Ответ 1

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

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

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

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

Ответ 3

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

Ответ 4

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

  • багажник /
  • ветки / -/feature1 (разветвленный от ствола) -/feature2 (разветвленный от туловища)

Если вы это сделаете, вы также сможете объединиться между feature1 и feature2.

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

Ответ 5

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

Ответ 6

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

Из MSDN

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

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