Воспитание дочерней ветви к ее прародителю

У меня есть следующая структура филиала:

- Main
   |- Release 1
      |- Release 1.1
   |- Release 2

Я хочу переписать Release 1.1 в Main, чтобы он выглядел следующим образом

- Main
   |- Release 1
   |- Release 1.1
   |- Release 2

Причина, по которой я хочу это сделать, заключается в том, что многие наборы изменений необходимо будет объединить с Main до Release 1.1, но не до Release 1

Я пытался выполнить безосновательное слияние с Main до Release 1.1, используя следующую команду:

tf merge /recursive /baseless $/Main $/Releases/Release1.1

Это прекрасно работает, как только я вернусь, я смогу переписать Release 1.1 на Main.

Но дело в том, что эта команда объединяет все из Main, и я просто хочу создать отношения слияния. Я не хочу объединять все от Main до Release 1.1, поскольку за это время произошло много других изменений для других веток.

Есть ли способ достичь этого или все будущие ревизии должны быть безосновательно объединены каждый раз?

2 ответа

Основываясь на комментарии Джеймса Рида, самый простой способ создать отношения слияния между двумя ветвями - просто удалить /recursive параметр:

tf merge /baseless $/Main $/Releases/Release1.1

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

Чтобы просто создать взаимосвязь [и не объединять все], нам нужно будет выполнить необоснованное выборочное объединение из родительской ветви в потенциальную дочернюю ветвь путем передачи выбранных номеров наборов изменений. Это может быть достигнуто с помощью графического интерфейса, выполнив следующие шаги, указанные в блоге: http://roadtoalm.com/2012/09/19/reparent-of-a-source-controlled-branch-why-and-how/

Хотя в этом блоге рассказывается о родительском праве, в котором мы объединяем все изменения из потенциальной родительской ветви в дочернюю ветвь... но будут времена, когда нам не понадобятся все изменения из новой родительской ветки. Что мы будем делать тогда? Идея состоит в том, чтобы пойти дальше и выбрать все изменения и объединить их с дочерней ветвью, а затем отменить ожидающие изменения для изменений, которые не требуются. Как только все нежелательные изменения не будут выполнены, продолжайте и регистрируйтесь. Затем, согласно блогу, нам нужно установить параметр reparent для нового родителя. Я знаю, что это не чистый подход, но это работает!

Другие вопросы по тегам