Did I get the syntax correct?
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.
Getting latest using the command line will report that all files are up to date when they are not! However, when I get latest using the TFS UI within Visual Studio, the latest code does actually download.
Until this gets resolves, my super fancy msbuild script can’t be used without opening visual studio to get latest first!!
<Target Name="GetLatestCoreLibraries" Condition="'$(GetLatest)' == 'true'">
<Exec Command='tf get /version:T "$(CoreLibPath)\Source\Libraries /recursive' ContinueOnError="false" />
</Target>
The $(CoreLibPath) is a relative path passed into the script. Something like…
<PropertyGroup>
<CoreLibraryPath>..\..\Core\Release\xx.xx.xx.xx</CoreLibraryPath>
</PropertyGroup
Is using relative paths to the local file system less reliable than using SCS paths? ie… $/Core/Release/xx.xx.xx.xx/Source/Libraries”?
Could it be that we’re sometimes using Dev Studio UI, and other times using the command line that is confusing the command line version of TFS?
So, I realized my mistake. It was very simple.
When you miss the closing double quote on a tf get, there is no error thrown. It simply reports that “All files are up to date.”
A: No, it doesn’t seem to be any less reliable.
A: No, this was a case of user confusion, not SCS confusion.