Visual Studio 2017 не может перемещать полки в другую ветку
Поскольку они предположительно интегрировали большинство функциональных возможностей Power Tools в VS2017, новая команда "tf unshelve" не работает так же, как и старая команда "tfpt unhelve", чтобы переместить полки в другую ветку, поскольку вы не можете добавить источник и цель используя новую команду. Мне действительно не нужно устанавливать VS2015 на моем ноутбуке, чтобы переместить полку. Кто-нибудь знает, как это сделать с VS2017? Я с трудом верю, что это уже невозможно.
Любая помощь очень ценится!
Ответы
Ответ 1
Еще одно временное...
- Проверьте изменения с существующего полки (Набор изменений 1)
- Слейте изменения в другую ветку и зайдите (Изменения 2)
- Отмените изменения из набора 1.
Это сохраняет изменения с набора изменений 2 и отбрасывает исходную ветвь.
Этот процесс может не работать для каждой компании и их политики, но она работает. Мне это не нравится, но иногда это необходимо.
Ответ 2
К сожалению, переместить Shelveset в другую ветку с помощью команды "tftp unshelve
" или "tf unshelve
" пока не поддерживается в VS 2017.
Уже есть отзыв, отправленный здесь, чтобы отслеживать это, так же как Юхана Насейм [MSFT] упоминается ниже (источник здесь):
Для VS 2017 года у нас нет выпуска электроинструментов. Мы постоянно оценка функций, которые все еще отсутствуют в продукте. Три наиболее заметных из них:
Поэтому в качестве обходного пути вы можете попробовать следующие способы:
Ответ 3
Я абсолютно согласен с тем, что это очень упущенная функция в 2017 году и выше. После слишком большого количества попыток сделать это вручную я решил добавить его в свое (бесплатное) расширение Visual Studio под названием "MultiMerge". Теперь вы можете щелкнуть правой кнопкой мыши набор полок и выбрать целевую ветвь. Существует версия VS2017 и VS2019. Или вы можете просто выбрать это расширение, используя меню "Инструменты и расширения" в Visual Studio.
Не стесняйтесь оценить расширение, и пусть другие найдут его быстрее :)
Ответ 4
Вот как я это делаю, когда знаю, что файлы веток могут быть перезаписаны непосредственно с помощью полки. Если вам нужно объединить, то используйте win-merge с каталогом сравнения, чтобы объединить вещи обратно.
- Закройте все экземпляры Visual Studio
- Переименуйте ваш локальный исходный каталог во временное имя
- Откройте Visual Studio
- Отменяйте ваши изменения в обычном режиме - VS воссоздает структуру каталогов с вашими изменениями.
- Скопируйте все ваши измененные файлы в каталог вашей ветки (перезаписывайте файлы только для чтения)
- Закрыть визуальную студию
- Переименуйте ваш локальный каталог с исходным именем (избавьтесь от воссозданного VS)
- Откройте свой филиал
- Теперь есть два варианта: вы можете перейти в автономный режим, а затем снова подключиться к сети, чтобы позволить VS выяснить, что изменилось, или просто проверить всю папку, а затем снова зарегистрироваться. Просто убедитесь, что у вас больше ничего не проверено, прежде чем вы это сделаете!
Жаль, что это еще не было включено в VS как нативную функцию, но если учесть сложность развертывания в слияние кода, сохранения истории и т.д., Задача становится сложной. Удачи!
Ответ 5
Поскольку до сих пор (май 2019 г.) TSPT недоступен в Visual Studio 2017.
Обходной путь, который я нашел, состоит в том, чтобы создать новую ветвь и использовать такой инструмент, как WinMerge (http://winmerge.org), чтобы сравнивать и объединять изменения из главной в новую ветвь, а затем, когда все в порядке, я отменяю изменения в основной ветке.
Ответ 6
Другой, возможно, более простой способ работы с VS2019 - скопировать/вставить исходную папку в целевую папку ветки и использовать
tf reconcile /promote
для обнаружения всех добавленных или измененных файлов.