Как объединить новые файлы в другую ветку в TFS? - PullRequest
18 голосов
/ 19 октября 2011

Хорошо, в TFS у нас есть основная ветвь транк и другая ветвь, назовем ее вторичная . Мы создали новый файл в trunk , но при попытке объединить этот конкретный файл он не дает нам возможности объединиться с вторичной веткой. Мы предполагаем, что это потому, что аналогичный файл не существует во вторичном.

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

Здесь мы объединяем файл, который существует в Secondary . Как видите, в раскрывающемся списке перечислены все три ветви (на самом деле вторичная - средняя): enter image description here

Теперь, когда я пытаюсь объединить файл, созданный в trunk после того, как вторичный был разветвлен, вторичный больше не отображается в качестве целевой ветви. enter image description here

Ответы [ 5 ]

10 голосов
/ 19 октября 2011

пытается объединить этот конкретный файл

Чтобы понять TFS, полезно помнить, что единицей изменения является changeset , и это наборы изменений (а не файлы)), которые зарегистрированы и объединены.

Мы предполагаем, что это потому, что аналогичный файл не существует во вторичном

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

Как правило, вы ничего не получите, выбрав конкретный файл в диалоге источника слияния - как говорится, он просит вас выбрать источник и цель ответвления .Укажите ветви в их корне, выберите Selected changesets only, и TFS покажет вам список изменений, которые существуют в источнике, но не были объединены с целью.Если вам нужен только тот, который добавил этот новый файл, вы можете выбрать его в этом списке.

6 голосов
/ 19 октября 2011

Я думаю, что это должно быть возможно через графический интерфейс VS следующим образом:

Выберите папку, в которую был добавлен новый файл, и закажите слияние (всей папки) с вашим вторичным ветвь.
Теперь все измененные файлы папки появляются в вашем списке ожидающих + ваш новый файл.
Отмените все остальные файлы и продолжайте проверку только в одном важном файле.

Можно поспоритьчто это ограничение TFS на самом деле имеет смысл:

  • Если вы внесли дополнительные изменения в файлы, которые вы защищаете от взлома вашей вторичной ветви.
  • Если вы не внесли дополнительных изменений в какие-либо другие файлы, все равно имеет смысл объединить ваши, так как объединение будет содержать только ваш новый файл.
5 голосов
/ 19 октября 2011

"Теперь, когда я пытаюсь объединить файл, который был создан в транке после того, как вторичный был разветвлен, вторичный больше не перечислен как целевая ветвь."

Для этого щелкните правой кнопкой мыши файл в Source Control Explorer и выберите Branch вместо Merge. Затем откроется диалоговое окно для указания цели.

Как правило, вам лучше объединять магистраль и вторичную сеть, а не ее части (легче поддерживать согласованность веток во времени).

1 голос
/ 16 февраля 2016

Я думаю, причина в том, что вы не можете объединить то, что не было разветвлено. Обратите внимание, что если вы объединяете папку, содержащую новый файл, в ней говорится, что действие [merge, branch] указывает на то, что вы разветвляете новый файл в результате слияния родительской папки. Насколько я могу судить, выбор файла> Merging & Branching> Branch вместо Merge кажется решением. Единственное отличие, которое я вижу, состоит в том, что в списке истории есть [ветвь], а не [слияние, ветвь]. После того как вы создали ветвь файла в вашей вторичной ветке, вы можете объединить изменения в файл между ветвями.

0 голосов
/ 19 октября 2011

Вы можете попробовать использовать команду TF Merge

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