"TF Get" из командной строки не получает последний, UI делает - PullRequest
4 голосов
/ 06 марта 2012

Правильно ли я получил синтаксис?

  tf get .\Web\project.root /recursive
  All files are up to date.


  tf get /version:T .\Web\project.root /recursive
  All files are up to date.

При использовании последней версии командной строки будет сообщено, что все файлы обновлены, если они не обновлены!Однако, когда я получаю последнее использование интерфейса TFS в Visual Studio, последний код действительно загружается.

До тех пор, пока это не решится, мой супер-необычный сценарий msbuild не может быть использован без открытия Visual Studio, чтобы получить последнюю версию !!

  <Target Name="GetLatestCoreLibraries" Condition="'$(GetLatest)' == 'true'">
    <Exec Command='tf get /version:T "$(CoreLibPath)\Source\Libraries /recursive' ContinueOnError="false" />
  </Target>

$ (CoreLibPath) - это пройденный относительный путьв сценарий.Что-то вроде ...

  <PropertyGroup>
    <CoreLibraryPath>..\..\Core\Release\xx.xx.xx.xx</CoreLibraryPath>
  </PropertyGroup

Является ли использование относительных путей к локальной файловой системе менее надежным, чем использование путей SCS?то есть ... $ / Core / Release / xx.xx.xx.xx / Source / Libraries "?

Может быть, мы иногда используем пользовательский интерфейс Dev Studio, а иногда - командную строку, котораясбивает с толку версию командной строки TFS?

Ответы [ 3 ]

3 голосов
/ 08 марта 2012

Итак, я осознал свою ошибку. Это было очень просто.

Command = 

    'tf get
       /version:T 
       /recursive
       "$(CoreLibPath)\Source\Libraries <<<-- Missing closing quote.
     '

Когда вы пропускаете закрывающую двойную кавычку для tf get , ошибка не выдается. Он просто сообщает, что «Все файлы обновлены».

c:\Web\Release\x.x\x.x.xxxx>tf get /version:T "..\..\..\..\..\Core\Release\x.x\x.x.xxxx.xxxxx(xxxx xx xx - xxx)\Source\Libraries /recursive
All files are up to date.

Q: Является ли использование относительных путей к локальной файловой системе менее надежным, чем использование путей SCS? то есть ... $ / Core / Release / xx.xx.xx.xx / Источник / Библиотеки "?

A: Нет, это не кажется менее надежным.

Q: Может быть, мы иногда используем пользовательский интерфейс Dev Studio, а иногда - командную строку, которая сбивает с толку версию TFS для командной строки?

A: Нет, это был случай путаницы пользователей, а не путаницы SCS.

2 голосов
/ 06 марта 2012

Попробуйте использовать параметр /force.Это заставит получить все, что может быть вам не нужно.

В качестве альтернативы вы можете получить MSBuild Extension Pack от CodePlex - у них есть задачи MSBuild, которые обертывают эти вызовы и работаютс IntelliSense, если вы используете Visual Studio для управления своими сценариями сборки.

Ваш itemspec выглядит странно для меня, но я не могу предложить никаких конкретных исправлений.Я явно вызываю рабочее пространство при использовании вызовов командной строки, например tf get "$/<our product>/<branch>[/<project>]" /force /recursive.В противном случае путь зависит от текущего активного отображения рабочей области.

0 голосов
/ 16 марта 2016

Другой вариант заключается в том, что пользователь не имеет доступа к коллекции проектов. В моем случае я мог как-то видеть каталоги, но у меня не было доступа, чтобы свернуть код. Мне нужно было, чтобы администратор TFS добавил меня в качестве «разработчика».

...