Подтвердить что ты не робот

Командная строка "получить последние" из TFS без рабочих областей отображения и т.д.

Я предполагаю, что это:

tf.exe get $/project /recursive

... нуждается в этом странном сопоставлении рабочего пространства, известном сервере TFS и т.д.

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

4b9b3361

Ответ 1

Во-первых, хотите ли вы копировать контролируемые файлы, которые больше не находятся под контролем источника (например, экспорт SVN), или вы все еще надеетесь работать с файлами и TFS?

Вариант 1: Нет привязки вообще

Если вам просто нужна копия последних файлов и нет привязки к TFS, вам придется немного поработать самостоятельно. Оставляя в стороне учетные данные (параметр [/login:username,[password]] для многих методов командной строки).

  • Используйте команду TF, чтобы получить список файлов: tf dir "$/YourSolution" /Recursive > files.txt
  • Процесс files.txt с помощью некоторого умного командного файла (или использования языка сценариев):
  • Прочитайте строки, начинающиеся с $/, и это каталог, создайте каталог в пункте назначения (удалите первые три символа и последний символ, двоеточие).
  • Прочитайте следующие строки (до пустого или конца файла), каждый из которых представляет файл в каталоге, обнаруженном на шаге 3. Предполагая, что у вас есть файл в переменной %file% и в каталоге %dir%, затем выполните следующая команда (для каждого файла в этом каталоге):

tf view "$/%DIR%/%FILE%" "/output:Your-Target-Path/%DIR%/%FILE%"

или если вы довольны текущей директорией в качестве цели:

tf view "$/%DIR%/%FILE%" "/output:%DIR%/%FILE%"

Обратите внимание: вам нужна %DIR%/%FILE% в выходной части, или все файлы будут сброшены в один каталог.

ПРИМЕЧАНИЕ: это, скорее всего, будет ОЧЕНЬ высокая пропускная способность и медленная работа!

Вариант 2: временное сопоставление

  • Создайте временную рабочую область: tf workspace /new /collection:<URL_TO_SERVER> /permission:Private (обратите внимание, что это подскажет, есть опция без подсказки, но определение имени для рабочей области остается как упражнение)
  • Сделать каталог для файлов, например. LOCALDIR
  • Создайте сопоставление для ваших папок: tf workfold /map "$/SERVER_DIR" "LOCALDIR"
  • Перейдите в LOCALDIR
  • Получить файлы tf get . /Recursive

На этом этапе у вас должны быть все файлы, и если вы хотите, чтобы у вас также была привязка к TFS, чтобы вы могли вносить изменения. Кроме того, теперь вы можете скопировать содержимое в другое место и разбить отображение/рабочее пространство. Использование правильных вариантов командной строки tf workfold /unmap и tf workspace /delete приведет к отключению вашей рабочей папки и удалению рабочей области.

Ответ 2

Экспортировать любую папку из TFS? Наконец, я нашел блестящее решение.

Я не собираюсь полностью исследовать это для вас сейчас, но намерен заменить мою невероятно беспорядочную рабочую зону сервера сборки script с этим позже, когда я получу время.

Решение:

Используйте Microsoft Git -TF, чтобы получить исходный код на диске без необходимости настройки рабочего пространства или чего-либо еще. Я попробовал команду, и она отлично работала. Подумайте, что он будет работать для TFS 2010 и 2012. Из того, что я могу понять, не будет никаких привязок или рабочих пространств или чего-то еще, что может вызвать проблемы позже. Я думаю, что все, что вам нужно установить, это GIT и Git -TF.

http://www.microsoft.com/en-us/download/details.aspx?id=30474

Фактически вы получите файлы в репозиторий GIT, который не является проблемой вообще. Вы получите (скрытую?) Папку с именем .git внутри экспортируемой вами папки, и я думаю, вы можете просто удалить ее, чтобы избавиться от любого следа GIT.

Если кто-то реализует это, что должно быть легко, пожалуйста, подтвердите, что оно работает как ожидалось.

Ответ 3

В командной строке TFS нет "простой" опции - они почти всегда связаны с большим количеством ввода (например, если вы не можете просто настроить по умолчанию, поэтому вам не нужно указывать коллекцию URL для каждой команды)

Обычный способ сделать командные строки TFS "простыми" - это писать командные файлы, чтобы скрыть все детали, которые нужно указывать каждый раз (URL-адреса серверов и флаги-рекурсии и т.д.).

TF.exe действительно позволяет вам делать почти что угодно, так что это довольно простая последовательность вызовов tf для создания временного сопоставления, повторите Get и и удалите сопоставление.

Ответ 4

Быстрое решение
Основываясь на ответе Ray Hayes на вариант 2, я собрал фактический script, который должен быть прямым для использования для тех, кто просто хочет быстрое и грязное решение. Вы должны прочитать его aswer для получения дополнительной информации.

Чтобы использовать его:

  • Установите четыре переменные в рабочую среду.
  • помните, что ваш tf.exe может не находиться в той же самой директории, в которой я ее использую, особенно если вы читаете это из будущего:)

.

SET COLLECTION_URL="http://localhost:8080/tfs/<collection>"
SET SERVER_DIR="$/<REMOTE_SOLUTION_DIR>"
SET LOCAL_DIR="X:\<YourLocalDir>"
SET TF_DIR="C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE"

%TF_DIR%\tf workspace /new /collection:%COLLECTION_URL% /permission:Private /noprompt tmp_batchws
%TF_DIR%\tf workfold /map %SERVER_DIR% %LOCAL_DIR%
cd /d %LOCAL_DIR%
%TF_DIR%\tf get . /Recursive
%TF_DIR%\tf workspace /delete tmp_batchws /noprompt

Ответ 5

http://johannblais.blogspot.com/2014/07/tfs-equivalent-of-svn-export.html

http://tfs-server:port/tfs/Collection/TeamProject/Team/_api/_versioncontrol/itemContentZipped?repositoryId=&path=url-encoded-source-control-path

  • tfs-server - это имя хоста сервера TFS
  • порт - это порт TFS (обычно 8080).
  • Коллекция - это название вашей коллективной коллекции проекта.
  • TeamProject - это название проекта вашей команды.
  • Команда - это название команды.
  • URL-адрес с кодировкой url-source-source - это источник, закодированный URL-адресом путь управления (например, $/Project1/Main/Sources/Folder/SubFolder становится% 24% 2FProject1% 2FMain% 2FSources% 2FFolder% 2FSubFolder