Как экспортировать файлы под меткой из TFS в сценарии, используя tf? - PullRequest
3 голосов
/ 11 августа 2011

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

Это то, что яудалось придумать:

tf workspace /new TemporaryWorkspace /noprompt

Это создаст новое рабочее пространство, но со следующей рабочей папкой: $ /: C: \ (учитывая, что я выполнил команду из C:)

Это не то, что я хочу, но «tf workspace / new», кажется, не позволяет указать отображение, поэтому я запустил его, чтобы удалить отображение по умолчанию:

tf workfold /unmap $/ /workspace:TemporaryWorkspace

затем этот, чтобы создатьмое желаемое отображение.

tf workfold /workspace:TemporaryWorkspace /map $/Project/Path C:\Temp\Path

Измените текущий каталог на локальную рабочую папку (я не знаю другого способа выбора текущего рабочего пространства)

PUSHD C:\Temp\Path

Теперь я наконец могувозьмите этикетку и делайте с ней мои вещи.

tf get /version:LMyBeautifulLabel

Теперь очистите.

tf workspace /delete TemporaryWorkspace /noprompt

Вернитесь

POPD

Все это, кажется, слишкомгромоздким для моей скромной цели.Есть ли более простой способ?

Спасибо.

1 Ответ

1 голос
/ 11 августа 2011

К сожалению, вам нужно будет создать рабочее пространство с правильными сопоставлениями рабочих папок, а затем запустить get. Там нет псевдонима одной строки, чтобы настроить это для вас.

Возможно, вам удастся создать долгоживущее рабочее пространство с соответствующими сопоставлениями рабочих папок, которые вам не нужно удалять, но, конечно, если вы часто используете этот рабочий процесс, но с разными метками или в разных местах, создавая новое временное рабочее пространство каждый раз, вероятно, имеет смысл.

Лучшее решение здесь - создать командный сценарий, который выполняет этот рабочий процесс, или использовать малоизвестные функции сценариев клиента командной строки tf. Вы можете запустить скрипт tf, используя:

tf @<filename>

или просто используя:

tf @

для чтения со стандартного ввода.

...