2017-02-14 19 views
0

Настройка новых проектов и отраслевых проектов в TFS 2015. Эта деталь может быть значительной - я использую ее для проектов PowerBuilder, а не .NET. VS2015 используется для настройки ветвей и выполнять слияния, сами файлы будут проверяться и выходить в PowerBuilder. Насколько я могу видеть, что не следует делать различие, но упоминания о нем в случае, если я что-то пропустилНовый филиал в TFS 2015 полностью сливается в бесполезном слиянии

Используя следующую схему выборки:

enter image description here

Prod ветви к/от Mod, вниз к Dev. Новый филиал проектов CO от Prod (поэтому они всегда начинаются со свежего набора последнего живого кода), а затем объединяются (через беспочвенное слияние) в ветвь DEV и повторно регистрируются после установления соединения. Таким образом, пользователям не нужно было бы забывать о необоснованном слиянии; Дев станет мишенью слияния по умолчанию

Слияния бы им вернуться вверх от Dev к Mod, а затем обратно в Prod

Вопрос заключается в том, что в качестве теста, я попробовал беспочвенные слияния после отделения, не ожидая ни одного файла чтобы объединиться, поскольку в какой-либо отрасли ничего не изменилось. Но слияние из ветви CO ​​в Dev объединило ВСЕ файлы. Теперь не проблема, поскольку изменений нет, но это будет довольно проблематично, когда несколько проектов будут объединены с DEV.

После этого слияния я сделал небольшую замену в проекте и попытался слить; только один измененный файл объединен.

Моя лучшая догадка заключается в том, что, поскольку новая ветвь СО была создана после ветви Двена, это было видно, поскольку все в ней новее, чем ветвь Дева, поэтому она перевернула все. Не уверен, как он будет относиться к изменениям в Dev, которых не видел в ветке Prod, пока не проверил этот сценарий. СЛЕДУЕТ, по крайней мере, сказать мне, что есть изменения, которые мне нужно объединить, но я боюсь, что он может просто перевернуть их с помощью «новых» файлов в ветке CO.

Вопрос в том, как можно/сообщить системе, что эта новая ветка «не новее», чем ветвь Dev? Действительно ли тот факт, что эти файлы PowerBuilder каким-то образом ограничивают способность TFS распознавать управление версиями?

Или, что еще проще, это макет филиала. Я стараюсь не лучший метод?

EDIT - вот структура, которую я сейчас использую для своих проектов .NET. Я пытался использовать вышеописанный макет для нового кода.

enter image description here

Он использует «Main» филиал предложил ниже в комментариях, но так как я тяну «CO Ветвь» от Dev, я получаю код в настоящее время проходит испытания, а не нетронутый код Prod. Я предполагаю, что попытка разветвления и повторного родителя из Prod в этом макете приведет к такому же сценарию.

Так это лучший способ пойти в конце концов?

+0

Бесполезные слияния не имеют истории, поэтому вы, вероятно, получите значительные регрессии, поскольку вы перезаписываете вещи в Dev. –

+0

Я был под впечатлением, что это лучший способ установить структуру, чтобы я получил свежий, текущий код для новых изменений. Лучшие предложения, кто-нибудь? – VBartilucci

+0

Зачем вам MOD и Dev вообще? Почему бы просто не использовать MAIN/TRUNK/MASTER и всегда иметь рабочий код. –

ответ

0

Возможно, у вас есть ветвь Main, которая является ветвью соединения между ветвями разработки и выпуска, представляющими стабильный снимок продукта.

Вы можете разветвиться от Main до Dev, Mod и Prod, когда работа над веткой Dev завершена, слияние с Dev на главную, когда вы хотите выпустить продукт, объединить с Main на Prod. Поэтому, когда вы хотите перейти от последнего живого кода, вы можете разветвиться от Main. Таким образом, вы можете объединиться с CO на Main, затем с Main на Dev или Main на Prod. Все изменения будут зарезервированы.

+0

Просто убедитесь, что вы строите каждую ветку и проверяете, проверяете, тестируете ... –

+0

На самом деле я использую сейчас проект «Главный филиал», и я пытался отойти от него, так как я думал, что лучше вытащить из Прода. Я обновил вопрос с диаграммой этого макета, в надежде, что это будет полезно. Возможно, это не совсем макет, о котором вы думаете. – VBartilucci

+0

Вы можете разветвиться от Main до Dev, Mod и Prod и объединиться с Dev, Mod и Prod to Main, а затем, когда вы хотите перейти от последнего живого кода, вы можете филиал от Main. Таким образом, вы можете объединиться с CO на Main, затем с Main на Dev или Main на Prod. Нет необходимости перераспределять ветви CO. –