TF.exe эквивалентно поджогу TFPT.exe

Я искал командную строку TF.exe, эквивалентную git reset. Я нашел TFPT scorch, однако он предназначен для использования на сервере сборки (jenkins), и я не могу установить электроинструменты (стандартным образом) или работать (нестандартно, копировать).

Есть ли

  1. Способ установить tfpt.exe на сервер сборки (у которого нет и не должно быть визуальной студии)?
  2. Способ эмулировать эту команду с помощью набора команд TF.exe?

person major-mann    schedule 05.12.2013    source источник
comment
Я не понимаю -- откуда у вас tf, если вы не можете установить Visual Studio? Требования между tf и tfpt должны быть одинаковыми, не так ли?   -  person Edward Thomson    schedule 05.12.2013
comment
Вы можете скопировать tf (см. второй комментарий в stackoverflow.com/questions/5503858/), однако в этом случае я использую Team Explorer Everywhere (который в основном представляет собой java tf, поставляемый MS, который является кроссплатформенным ) microsoft.com/en-us/download/confirmation.aspx ?id=30661   -  person major-mann    schedule 06.12.2013
comment
Я вижу из вашего профиля, что вы знакомы с программным обеспечением: P   -  person major-mann    schedule 06.12.2013
comment
Понял. Я не думаю, что есть простой способ сделать эквивалент scorch только с клиентом командной строки tf.   -  person Edward Thomson    schedule 06.12.2013
comment
Черт... в любом случае спасибо за ваше время :)   -  person major-mann    schedule 06.12.2013
comment
Если вы готовы написать код и хотите использовать TEE SDK, можете ли вы создать свой собственный?   -  person Edward Thomson    schedule 06.12.2013
comment
Я посмотрю... моего босса нет на несколько дней... так что, может быть, я смогу прокрасться :) ... я думал что-то вроде folderdiff... отменить... ?? ??... выгода?   -  person major-mann    schedule 06.12.2013
comment
Я создал ответ о том, как управлять SDK. Вы можете сравнить свой рабочий каталог с версией рабочей области, чтобы получить список файлов, которые следует удалить. Это зависит от того, хотите ли вы писать пакетные сценарии или java...! Я отмечу, что мы должны включить scorch в качестве команды tf в TEE CLC.   -  person Edward Thomson    schedule 06.12.2013
comment
Вау! Какой результат... Обычно я бы ухватился за идею написать код... но на моей новой работе я настраиваю CI-сервер (в Windows), так что пакетные сценарии, вероятно, будут подходящим вариантом... это банк выходной здесь завтра, так что я посмотрю на это в понедельник... спасибо!   -  person major-mann    schedule 06.12.2013


Ответы (4)


Если вы готовы написать свою собственную функцию "выжигания", вы можете сделать это на основе SDK TFS Java, который не требует установки Visual Studio.

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

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

Вы можете собрать список элементов на сервере, используя Workspace.QueryItems в версии рабочей области.

person Edward Thomson    schedule 05.12.2013
comment
Я думаю, в этом случае я, вероятно, мог бы уйти, не наблюдая за ожидающими изменениями, поскольку я просто хочу отменить изменения, которые были сделаны на диске (ручное удаление только для чтения и изменение файлов AssemblyInfo.cs перед сборкой). Я собираюсь принять это ответ, потому что я думаю, что он адекватно описывает необходимые шаги. Спасибо за вашу помощь! - person major-mann; 06.12.2013

Вы не указываете, какую версию TFS вы используете. Однако есть эквивалент: tf reconcile /clean.

Согласно документации tf:

Microsoft (R) TF - Team Foundation Version Control Tool, Version 12.0.30501.0
Copyright (c) Microsoft Corporation.  All rights reserved.

Compares the current state of the workspace on disk with the server's view,
either to clean the workspace or to promote unpended local changes.

tf reconcile /clean [/diff] [/noprompt] [/preview] [/recursive] [/ignore]
             [/unmapped] [/exclude:itemspec1,itemspec2,...] [itemspec]

tf reconcile /promote [/adds] [/deletes] [/diff] [/noprompt] [/preview]
             [/recursive] [/noignore] [/exclude:itemspec1,itemspec2,...]
             [itemspec]

Выполняется: tf reconcile /clean /diff /noprompt /recursive *.*

Эквивалентно: tfpt scorch *.* /noprompt /recursive /deletes /diff

Интересно, что эта команда отсутствует в текущей документации по tf.exe.

Кроме того, как упоминает @Jonathan, теперь есть команда tf scorch, которая очень похожа на tf reconcile. Если есть различия, я не могу найти документацию, подтверждающую это. Очень возможно, что это как-то связано с работой с локальными и серверными рабочими пространствами, которые были добавлены в 2013 году, чтобы обеспечить настоящую «автономную» разработку.

person Sumo    schedule 15.06.2015
comment
Это было некоторое время назад, я обязательно проверю команду согласования. Спасибо! - person major-mann; 15.06.2015

Я автоматически устанавливаю TFPT в своем сценарии установки агента сборки:

msiexec /qb /i "tfpt.msi" ADDLOCAL=CLI /l*v tfpt-log.log

А затем легко найти его, используя TFSPowerToolDir env var. Обновление: для этого требуется Visual Studio — я устанавливаю его подмножество, только vs_teamExplorer.exe и vstf_testagent.exe.

Кроме того, tf.exe теперь также имеет опцию /scorch. Его не было в VS2013, но оно есть в VS2013 SP4.

person Jonathan    schedule 24.02.2015
comment
Извините за отрицательный голос ... Но я специально попросил эквивалент с использованием TF.exe, а НЕ TFPT. - person major-mann; 26.02.2015
comment
OP говорит: 1. Способ установки tfpt.exe на сервер сборки, который я предоставил. Как это не актуально? - person Jonathan; 28.02.2015
comment
Если вы перечитаете вопрос, вы заметите, что я упоминаю без Visual Studio, установленной на целевой машине. Поэтому вы не можете установить tfpt... - person major-mann; 01.03.2015
comment
Правильно, я устанавливаю подмножество VS. Я исправлю ответ. - person Jonathan; 01.03.2015
comment
Я удалил отрицательный голос с конкретным упоминанием, так как это может помочь другим достичь аналогичной цели. - person major-mann; 01.03.2015

Я только что добавил задачу «Удалить файлы» в конец процесса сборки с ** в качестве параметров. Таким образом, каждая сборка должна получать последнюю версию с нуля, без необходимости возиться с утилитами TFS, которые могут быть неправильно установлены на агенте заранее. Это решение показалось мне намного проще.

person Dan Csharpster    schedule 17.10.2017