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

Как объединить новые файлы в другую ветку в TFS?

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

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

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

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

4b9b3361

Ответ 1

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

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

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

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

Ответ 2

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

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

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

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

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

Ответ 3

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

Для этого щелкните правой кнопкой мыши файл в проводнике исходного кода и выберите "Разделить" вместо "Объединить". Затем появится диалоговое окно для указания цели.

Как правило, вам лучше слить сундук и вторичный, а не его фрагменты (проще поддерживать согласованность ветки с течением времени).

Ответ 4

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

Ответ 5

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