Поделиться через


Использование команд управления версиями Team Foundation

Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019

Visual Studio 2019 | Visual Studio 2022

Команды управления версиями можно использовать для практически всех задач Управления версиями Team Foundation (TFVC), которые можно выполнять в Visual Studio. Вы также можете использовать команды управления версиями для выполнения нескольких задач, которые не могут выполняться в Visual Studio. Чтобы запустить команды управления версиями из командной строки или в скрипте, используйте средство tf.exe.

Выполнение команды

Чтобы запустить командную строку Visual Studio, в Windows Пусквыберите командную строку разработчика для VS2022 или более ранней версии.

Примечание.

Для Visual Studio 2019 и более поздних версий двоичный файл tf.exe больше не находится в фиксированном расположении в пути установки Visual Studio, как в некоторых предыдущих выпусках, например C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE. Если скрипт использует tf.exe, не кодируйте путь к файлу на основе пути установки Visual Studio.

В большинстве случаев вы запускаете команду управления версиями в контексте каталога, сопоставленного в рабочей области. Например, $/SiteApp/Main/ сопоставляется с c:\\code\\SiteApp\\Main\\. Чтобы получить последнюю версию всех элементов в рабочей области, используйте следующую команду:

c:\code\SiteApp\Main\SolutionA>tf get

Настройка компьютера разработки и управление рабочими областями

Рабочая область — это локальная копия базы кода вашей команды. Так как это локальная копия на компьютере разработки, вы можете разрабатывать и тестировать код в изоляции, пока не будете готовы к проверке работы. Ниже приведены некоторые команды для управления рабочей областью:

Дополнительные сведения см. в следующих ресурсах:

Разработка приложения

Используйте эти команды для разработки вашего приложения в системе контроля версий вместе с вашей командой:

  • Добавить команду: добавляет файлы и папки в управление версиями.
  • Команда "Чек-аут" (или "Редактирование") — проверяет файл и изменяет состояние ожидающего изменения на "редактировать".
  • команда Delete (Team Foundation Version Control): удаляет файлы и папки с сервера Azure DevOps и удаляет их с диска.
  • команда Get: возвращает (скачивает) последнюю версию или указанную версию одного или нескольких файлов или папок из Azure DevOps Server в рабочую область.
  • команда переименования (Team Foundation Version Control): изменяет имя или путь к файлу или папке.
  • команда состояния: отображает сведения о ожидающих изменениях в файлах и папках в рабочих областях или в наборе полок.
  • Команда отмены: отменяет указанные неизданные изменения в файлах или папках.
  • команда Undelete: восстанавливает элементы, которые ранее были удалены.

Для получения дополнительной информации см. Разработайте приложение в системе управления версиями Team Foundation.

Приостановка работы

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

Дополнительные сведения см. в статье Приостановка работы и управление наборами полок.

Внесите свою работу

Используйте команду checkin, чтобы внести ваш код в репозиторий кода команды.

  • команда checkin: проверяет ожидающие изменения файлов или папок на сервере.

Дополнительные сведения см. в разделе Оформление работы в базе кода команды.

Управление файлами и решение проблем

Используйте ресурсы в следующих разделах для управления файлами.

Просмотр файлов и папок управления версиями и управление ими

Дополнительные сведения см. в разделе Использование обозревателя системы управления версиями для управления файлами под управлением версии.

Просмотр прошлых версий и управление ими

Дополнительные сведения см. в разделе Просмотр и управление прошлыми версиями.

Сравнение папок и файлов

  • команда отличия: сравнивает различия между файлами и наборами полок.
  • команда Folderdiff: сравнивает различия между файлами в двух папках.

Дополнительные сведения см. в разделе Просмотр и управление прошлыми версиями.

Разрешение конфликтов файлов

Дополнительные сведения см. в статье Устранение конфликтов управления версиями Team Foundation.

Работа с блокировками в системе контроля версий

Дополнительные сведения см. в разделе Работа с блокировками управления версиями.

Изоляция риска

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

Дополнительные сведения см. в разделе Использование ветвей для изоляции риска в Team Foundation Version Control.

Администрирование управления версиями

Используйте следующие команды для управления системой управления версиями:

Дополнительные сведения см. в разделе Настройка параметров оформления заказа.

Получите помощь по командам управления версиями

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

Общие сведения о синтаксисе команд

Синтаксис каждой команды отображается в верхней части каждой справочной статьи.

Обязательные и необязательные аргументы

Аргументы без скобок являются обязательными. [скобки] указывать необязательные аргументы, которые не требуются для выполнения команды. Однако некоторые необязательные аргументы имеют значения по умолчанию, применяемые к команде, даже если этот параметр не указан.

Эксклюзивные аргументы

Если параметры разделены каналом (|), можно указать один из вариантов.

Дословные и заменяемые аргументы

Элементы, которые не заключены в квадратные скобки, следует включать дословно. Элементы, заключенные в угловые скобки (< и >) являются аргументами, которые необходимо заменить фактическими символами для выполнения команды.

Сочетания клавиш и псевдонимы команд

Некоторые команды поддерживают сочетания клавиш. Например, можно вызвать команду Delete с помощью tf delete или tf del.

Пример

Например, рассмотрим команду checkout:

tf checkout [/lock:( none|checkin|checkout)] [/recursive] <item-spec> [/login: <username>, [<password>]]

В этом примере приведены следующие аргументы:

  • <item-spec>. Этот аргумент необходимо заменить спецификацией элемента , которая указывает на элементы, которые вы оформляете на выдачу.
  • Следующие аргументы являются необязательными. Если вы не предоставляете их, ни один из их эффектов не применяется к команде:
    • /lock:(none|checkin|checkout). Если параметр /lock не указан, система использует /lock:none по умолчанию. В противном случае можно указать один из других параметров блокировки.
    • /recursive. Если вы хотите рекурсивно извлечь несколько элементов в папке, необходимо указать этот параметр подробно.
    • /login:<username>, <password>. Если вы хотите выполнить команду от имени другого пользователя, необходимо указать параметр /login и заменить <username> именем пользователя. При необходимости замените <password> паролем пользователя.

Указание элементов, затронутых командой

Спецификации элементов и спецификации версий можно использовать для указания элементов, затронутых командой.

Использование аргумента спецификации элементов для указания затронутых элементов

Спецификация элемента используется для указания элементов, затронутых командой. Элементы можно указать на клиентском компьютере или на сервере Azure DevOps. Можно использовать подстановочные знаки, такие как * и ?.

Аргументы спецификации элементов клиента

Аргумент спецификации клиентского элемента указывает путь к элементам на клиентском компьютере, например:

  • Например, папка c:\code\SiteApp\Main\SolutionA\.
  • Например, файл c:\code\SiteApp\Main\SolutionA\Project1\program.cs.
  • Например, несколько файлов c:\code\SiteApp\Main\SolutionA\*.cs.
  • Универсальный путь именования (UNC), например \\myshare\code\SiteApp\Main.

Аргументы спецификации элементов сервера

Аргумент спецификации элемента сервера указывает путь к элементам на сервере Azure DevOps, например:

  • Например, папка $/SiteApp/Main/SolutionA.
  • Например, файл $/SiteApp/Main/SolutionA/Project1/program.cs.
  • Несколько файлов, например, $/SiteApp/Main/SolutionA/*.cs.

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

c:\>tf history /collection:https://fabrikam-3:8080/tfs/DefaultCollection
$/SiteApp/Main/SolutionA/Project1/* /recursive  
/noprompt 

Аргументы спецификации нескольких элементов

Для некоторых команд можно указать несколько аргументов спецификации элементов, например:

c:\code\SiteApp\Main\SolutionA\Project1\>tf checkout program1.cs program2.c

Эта команда проверяет program.cs и program2.c.

Использование аргумента спецификации версии для указания затронутых версий элементов

Спецификация версии используется для указания версии элементов, затронутых командой. Чтобы предоставить спецификацию версии, можно:

  • Используйте параметр /version, например /version:C44.

  • Добавьте спецификацию версии в спецификацию элемента с запятой, например program1.cs;C44.

При использовании команды 'История' или команды 'Разница', можно указать диапазон версий, разделяя версии тильдой, например:

c:\code\SiteApp\Main\SolutionA>tf history /noprompt * /recursive /v:D4/12/2022~D4/24/2022

Используйте следующий синтаксис, чтобы указать спецификацию версии:

Тип Синтаксис Описание Примеры Результат
Набор изменений [C]<version-number> Задает элементы на основании номера набора изменений. Если элемент, который находится в области, не был изменен в указанном наборе изменений, система принимает последнюю версию элемента, который произошел до указанного набора изменений. Можно опустить C, если указать только число. tf get readme.txt /v:C8

tf get readme.txt /v:8

tf get readme.txt;8
Если readme.txt был изменен в восьмом наборе изменений, пример кода получает эту версию файла. В противном случае она получает последнюю версию readme.txt до версии 8.
Этикетка L<label> Указывает элементы, к которым применяется метка. tf get readme.txt;LJulyHotFix

tf get /version:LLastKnownGood
Первый пример получает версию readme.txt, помеченную JulyHotFix. Второй извлекает версию всех помеченных элементов (и удаляет те элементы, которые не помечены) в рабочей области в том виде, в каком они существовали на момент создания набора изменений с меткой LastKnownGood. Вы можете использовать код во втором примере как часть автоматизированного процесса сборки.
Дата и время D<yyyy-mm-ddTxx:xx>

или

D<mm/dd/yyyy>

или

Любой поддерживаемый .NET Framework формат.

или

Любой формат дат, поддерживаемый на локальном компьютере.
Указывает набор изменений, созданный на указанной дате в определенное время. tf get /version:D2022-03-22

tf get /version:D2022-03-22T09:00
Первый пример обновляет рабочую область, чтобы она соответствовала базе кода, как она существовала 22 марта 2022 года в полночь. Вторая обновляет рабочую область, чтобы она соответствовала базе кода, как она существовала 22 марта 2022 года в 9:00. Дополнительные сведения о поддерживаемых форматах даты и времени платформы .NET Framework см. в DateTime и стандартных строках формата даты и времени.
Текущая рабочая область W Указывает версию в рабочей области. - -
Указанная рабочая область W<workspace-name>; <workspace-owner> Указывает версию в указанной рабочей области. tf get /version:WResolveRIConflicts;PatW В примере указывается версия в рабочей области ResolveRIConflicts, принадлежащая PatW.
Подсказка T Указывает последнюю версию. - -

Используйте настройки для изменения того, как работает команда.

Для изменения функций команд можно использовать некоторые распространенные параметры.

Используйте параметр /noprompt для подавления запросов ввода данных и перенаправления выходных данных

Используйте параметр /noprompt для подавления запросов ввода данных и перенаправления выходных данных в окно командной строки. Этот параметр может быть полезен, если необходимо использовать команды управления версиями в скрипте, где:

  • Команда продолжается без вмешательства пользователя.
  • Данные доступны для выполнения операций с скриптом, например синтаксического анализа или записи.

При использовании этого параметра система:

  • Подавляет все запросы для ввода:

    • Вопросы не задаются в окне командной строки. Например, при использовании команды отмены с этим параметром система не запрашивает подтверждение отмены изменений.
    • Окна и диалоговые элементы не отображаются. Например, этот параметр можно использовать с командой Checkin. Система не показывает диалоговое окно "Проверка" для подтверждения элементов и рабочих элементов, связанных с ними. Вместо этого система проверяет элементы без подтверждения.
  • Перенаправляет выходные данные в командную строку. Например, этот параметр можно использовать с командой "История" . Данные отображаются в окне командной строки, а не в окне журнала .

Используйте параметр /login для указания учетных данных

Используйте параметр /login, чтобы указать учетную запись пользователя сервера Azure DevOps для выполнения команды. Этот параметр может быть полезен при работе на компьютере другого члена команды.

Например, предположим, что вы работаете на компьютере разработки члена команды. Команда блокировки используется для разблокировки файла, заблокированного ранее:

c:\code\SiteApp\Main> tf lock /lock:none program.cs /login:<username>,<password>

Если вы хотите избежать появления пароля в командной строке, можно ввести команду без пароля:

c:\code\SiteApp\Main> tf lock /lock:none program.cs /login:<username>

После ввода этой команды система предложит ввести пароль в диалоговом окне, которое маскирует входные данные.

Использование параметра /lock для применения или удаления блокировки

Это важно

Рекомендуется использовать вариант /lock по усмотрению. Сообщите членам команды, почему вы блокируете элемент и когда планируете удалить блокировку.

Используйте параметр /lock для применения или удаления блокировки в то же время, когда выполняется другая команда, например добавить или изменить.

/lock:(none|checkin|checkout)

Команда /lock использует следующие параметры:

  • None: Блокировка не установлена на предмет. Если замок уже установлен, он удаляется.

  • Checkin или Checkout: применяется блокировка. Дополнительные сведения см. в статье Общие сведения о типах блокировки.

Примечание.

В некоторых случаях операция блокировки может завершиться ошибкой:

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

Используйте сочетания клавиш для опций

Вы можете сократить следующие параметры.

Параметр

псевдоним опции

/comment

-C

/computer

-M

/delete

-D

/force

-P

/format

-F

/help

-?, -H

/lock

-K

/login

-Y

/newname

-N

/noprompt

-I

/owner

-O

/recursive

-R

/server

-S

/slotmode

-X

/template

-T

/user

-U

/version

-V

/workspace

-W

Общие сведения о кодах выхода

Команды управления версиями возвращают следующие коды выхода:

код выхода

Определение

0

Успех.

1

Частичный успех. По крайней мере, что-то, или, возможно, все, не удалось добиться успеха.

2

Нераспознанная команда.

100

Ничего не удалось.

Например, предположим, что выполните следующую команду:

c:\code\SiteApp\Main\SolutionA\Project1\>tf checkout program1.cs program2.c

Если один из файлов, которые вы пытаетесь извлечь, не существует на сервере, команда возвращает 1, чтобы указать частичный успех.