Миграция TFS shelveset из одной ветви в другую - PullRequest
27 голосов
/ 31 августа 2011

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

команда, которую я использовал:

tfpt unshelve "shelveset name" /migrate /source:"$...development" /target:"$...Release"

это показывает эту ошибку:

невозможно определить рабочее пространство

Ответы [ 5 ]

12 голосов
/ 09 декабря 2011

Ваше местоположение, из которого вы запускаете команду, должно находиться внутри вашего рабочего пространства. Например. c:\workspaces\project\development если там находится ваш источник.

3 голосов
/ 14 сентября 2011

Я полагаю, ваш вопрос: Как я могу выполнить работу без этой ошибки? . В этом случае убедитесь, что обе ветви сопоставлены с вашей локальной системой, и последняя версия вашего исходного кода была выпущена get-latest-version.

Это должно предотвратить возникновение ошибки, поскольку оба пути содержат информацию о рабочем пространстве, используемом для сопоставления.

1 голос
/ 18 апреля 2014

Я столкнулся с той же проблемой сегодня. После проверки пунктов ниже у меня все заработало:

  • Установлен только один Powertools.
  • Запустите команду из командной строки разработчика
  • Запустите команду из папки, сопоставленной с вашей целевой рабочей областью.

Мне пришлось удалить v. 2010, поэтому осталась только v. 2012. Номера версий не соответствуют вашей версии TFS.
Чтобы проверить, что вы находитесь в правильной папке, вы можете запустить рабочую область tf.
В появившемся окне найдите рабочее пространство, на которое вы хотите настроить таргетинг, и отметьте в столбце «Локальная папка». Убедитесь, что вы находитесь в этой папке.

0 голосов
/ 09 мая 2018

Я потратил много времени, чтобы решить эту проблему, и мне пришлось преодолеть несколько проблем, и одна из них на самом деле была

, неспособной определить рабочее пространство

Эта конкретная проблема была решена путем запуска команды из корневой папки source .Это противоречит некоторым ответам здесь и на SO в целом, где говорят, что нужно использовать «целевую» ветку - нет, используйте «источник»:

cd [your !!source!! branch root]
tfpt unshelve /migrate /source:"$/MyCollection/Development/Maint1.1" /target:"$/MyCollection/Development/Maint1.2" "myShelveset;UserName"

Вторая проблема появилась после этого.Кажется, он не может подключиться к серверу TFS.Я понял, что у меня установлено несколько VS и они подключены к разным TFS-серверам.Я использовал VS12, и у меня было рабочее пространство и подключение к серверу.Но я не осознавал, что для работы TFPT2013 необходимо реплицировать то же соединение в VS13.Он подключается к тому же серверу и рабочему пространству.

Я также пытался сделать это с помощью TFPT2015, но я установил его, но он не установил TFPT.exe, поэтому он был бесполезен.Поэтому я попытался от TFPT2013 до TFS2015, и это работало для этой конкретной команды.Интересно, а почему бы и нет, если VS12 / 13 отлично работает с TFS2015?

Подводя итог

  • Используйте CMD или DevCMD - не имеет значения
  • запуск из исходная корневая папка филиала
  • проверка соединения с сервером Team Explorer
  • Работа TF Power Tools 2013 с TFS v15, не менее перенос вариант работает
0 голосов
/ 07 октября 2015

Я столкнулся с той же проблемой, что и Борис Калленс.Я установил электроинструменты TF для VS2012 и VS2013.При запуске команды tfpt.exe в командной строке у меня всегда было сообщение об ошибке « невозможно определить рабочее пространство ».Это потому, что я использовал электроинструменты VS 2012 с TFS 2013. Поэтому мне пришлось изменить путь к электроинструментам в переменной системной среды " TFSPowerToolDir ", чтобы указать на электроинструменты для VS2013.1005 *

Вы можете найти номер версии: tfpt.exe /? Версия TF Power Tools

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