Невозможно определить рабочую область, используя TF.exe
У меня есть этот script (bat файл)
tf workspaces /s:http://project02:8080
tf workspace /s:http://project02:8080 Team.descomp;MyDomain\Myuser
tf workfold /workspace:Team.descomp
tf get $/Team/Main/Projects /recursive /force /noprompt
Я получаю эту ошибку: невозможно определить рабочую область., когда я пытаюсь выполнить tf get.
Выход консоли аналогичен:
Сервер: project02
Рабочая область: DESCOMP
Владелец: MyUser
Компьютер: DESCOMP
Рабочая область: Team.descomp
Владелец: MyUser
Компьютер: DESCOMP
...
Рабочая область: Team.descomp(MyUser)
Сервер: http://project02:8080/
$/Команда: C:\Temp\Team2
...
Невозможно определить рабочую область.
Примечание. Для $/Team (командный проект) есть карта в двух машинах: MyUser и Descomp
Рабочее пространство: Владелец команды: MyUser Компьютер: MyUser
Рабочая область: Team.descomp Владелец: Компьютер MyUser: DESCOMP
Любые предложения?
Ответы
Ответ 1
Из форумов MSDN: Mr. Hofman
http://social.msdn.microsoft.com/Forums/en/tfsbuild/thread/82b13bfd-5fd7-45f7-a681-d84c9ea52765
Измените рабочую папку для доступа tf к папке, отображаемой рабочей областью.
Выполните команду из папки, в которой отображается рабочее пространство.
(например, если вы делаете это с консоли:
cd c:\sources\myteamproject
tf get ...
)
Ключ: измените рабочую папку для доступа tf к папке, отображаемой рабочей областью.
Я использую команду pushd C:\Temp\Team2 в файле script.
Обновление: комментарии Райана Кромвеля
Вы можете создать и отобразить рабочее пространство в script со следующим. Вторая команда работает, потому что первое рабочее пространство создается в папке "blah". "." во второй команде указывается map '$/' в текущем каталоге (blah). Вы можете изменить это как именованную папку или подпапку, если вы выберете.
Создать новое рабочее пространство
C:\projects\blah>tf workspace /new blah /noprompt /collection:http://<host>:<port>/tfs/<collection> /login:<username>,<pwd>
Отобразить путь в этой рабочей области
C:\projects\blah>tf workfold /map $/ . /login:<username>,<pwd>
Ответ 2
Это расширяет ответ @Kiquenet. Это было нелегко сделать в комментариях: (
Вы можете создать и отобразить рабочее пространство в script со следующим. Вторая команда работает, потому что первое рабочее пространство создается в папке "blah". "." во второй команде указывается map '$/' в текущем каталоге (blah). Вы можете изменить это как именованную папку или подпапку, если вы выберете.
Создать новое рабочее пространство
C:\projects\blah>tf workspace /new blah /noprompt /collection:http://<host>:<port>/tfs/<collection> /login:<username>,<pwd>
Отобразить путь в этой рабочей области
C:\projects\blah>tf workfold /map $/ . /login:<username>,<pwd>
Ответ 3
У меня была эта проблема в городе команды, выполняющем файл ps1 со следующим:
tf resolve FND.sql /auto:KeepYours
tf checkout FND.sql /noprompt
tf checkin FND.sql /noprompt
когда я выполнил его в окне PS, он работал нормально, но когда он был выполнен Team City, я получил следующий ответ для каждого вызова tf:
Unable to determine the workspace. ...
Пытаясь получить больше информации о том, что происходит, я вставил следующую инструкцию перед первым вызовом tf:
tf workfold
когда я запустил Team City в следующий раз, tf workfold показал сопоставление, которое ранее не было распознано, и уже начали работать существующие команды tf.
Он по-прежнему работал, когда я вынул команду tf workflold.
Я этого не понимаю, но, возможно, это сработает для других людей с этой проблемой.
Я ранее не пробовал несколько рекомендаций с этого и других сайтов без успеха.
Надеюсь, это поможет кому-то.