Команда TFS get ошибочно возвращает «Все файлы обновлены». - PullRequest
22 голосов
/ 10 января 2011

Мы только что перешли на репозиторий TFS в Mercurial, так как нам достаточно TFS.К сожалению, TFS бросил нам последний изогнутый мяч, прежде чем он отпустил нас.Мы написали сценарий, который намереваются «получать» каждый набор изменений (включая отметку времени, комментарии о регистрации и т. Д.), А затем добавлять их в репозиторий Mercurial и регистрировать его.странно, когда мы выполняем команду tf get * /version:C111 /overwrite.Он немедленно возвращает «Все файлы обновлены».Но это невозможно.Папка рабочего пространства пуста!И просмотр сведений о наборе изменений 111 довольно ясно показывает, что набор изменений содержит «материал», т. Е. Хранилище, конечно, не пустое.

Ответы [ 12 ]

0 голосов
/ 21 декабря 2012

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

На самом деле вы хотели бы, чтобы tfs возвратил «Файл не найден» вместо «Все файлы обновлены».

В дополнение к другим предложениям, сделанным здесь, также дважды проверьте, что вы передаете tf.exe, переписав команду с помощью echo. Если вы работаете с фоном Unix / Linux, сборка строк на win32 кажется просто сломанной.

broken.bat

SET PARAM1=%1
SET CMD_PATH="c:\path\to\%PARAM1%"
echo %CMD_PATH%

Результат: broken.bat "tool.exe" => "c: \ path \ to \" tool.exe ""

fixed.bat

SET PARAM1=%1
REM Strip quotes: http://www.dostips.com/DtTipsStringManipulation.php
for /f "useback tokens=*" %%x in ('%PARAM1%') do set PARAM1=%%~x
SET CMD_PATH="c:\path\to\%PARAM1%"
echo %CMD_PATH%

Результат: fixed.bat "tool.exe" => "c: \ path \ to \ tool.exe"

0 голосов
/ 10 января 2011

Вы всегда можете добавить параметр «/ force» в TF GET, чтобы заставить его получать все файлы независимо от того, что, по его мнению, у вас есть в вашей локальной рабочей области (он поддерживает версии всех ваших файлов рабочей области на сервере).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...