Привет! Хочу поделиться парой трюков, которые помогли мне при работе с Team Foundation Server. Думаю, что они могут быть полезны и вам в повседневной жизни разработчика.
Но может возникнуть ситуация, когда изменения для исправления ошибки были внесены в ветке Main. И для того, чтобы перенести эти изменения на ветку stabVer без комитов и слияний в разные стороны, есть один трюк. Для этого нам понадобится Team Foundation Server Power Tools. Скачиваем и устанавливаем. Далее выполняем следующие действия:
После выполнения этой команды все изменения будут перенесены в ветку stabVer. Далее мы можем их фиксировать и сливать с веткой Main, как того требует процесс.
Перенос изменений на другую ветку
У нас на проекте используется две ветки: одна для стабилизации и внесения исправления (назовем ее stabVer), а вторая - ветвь Main, в которую вносятся новый функционал. При работе с ними есть четкое правило: все исправления ошибок должны вноситься в версию stabVer и потом сливаться с веткой Main.Но может возникнуть ситуация, когда изменения для исправления ошибки были внесены в ветке Main. И для того, чтобы перенести эти изменения на ветку stabVer без комитов и слияний в разные стороны, есть один трюк. Для этого нам понадобится Team Foundation Server Power Tools. Скачиваем и устанавливаем. Далее выполняем следующие действия:
- Кладем все изменения на полку с откатом изменений (для этого снимаем галочку Preserver pending changes locally в окне Shelve).
- Открываем командную строку и выполняем команду:
- где "ShelveName" - наименование сохраненных на полке изменений
- /migrate - указывает, что изменения нужно перенести на другу ветку.
- /source:"..." - ветка-источника
- /target:"..." - ветка-приемник.
После выполнения этой команды все изменения будут перенесены в ветку stabVer. Далее мы можем их фиксировать и сливать с веткой Main, как того требует процесс.
Фиктивные слияния
Иногда нет необходимости переносить изменения из stabVer в Main, но необходимо очистить историю коммитов для слияния. Для этого есть фиктивное слияние. Оно позволяет слить все ненужные изменения в веткой Main без реального переноса изменения. Для этого нужно в командной строке выполнить команду
tf merge /recursive /discard /version:C58542~58542 $/MyTeamProject/stabVer $/MyTeamProject/Main
- где /recursive - рекурсивный обход всех папок проекта
- /discard - указывает, что не нужно делать реальное слияние, а только нужно поправить историю изменений
- /version:C58542~58542 - диапазон изменений. Даже для одного changeset'а надо указывать диапазон, чтобы не порушить историю
- оставшиеся два параметра - откуда и куда делаем слияние.
Комментариев нет:
Отправить комментарий