I am using TFS 2010 and writing a script to enable a simple get of specific version label of our software. Since this is only a simple get, is there anyway to just perform a get without having to use the current workspace settings or change the workspace settings to the desired path? There is no reason to link the files to CM after the get, so I have no reason to preserve this 'workspace'. I just want to be able to create a directory anywhere I want and get TFS to give me a copy of the current version labeled files at the current directory, or to a directory I supply 'on the fly'. There seems to be no way to seperate a simple get from the project workspace settings. Am I missing something or am I forced to cloak or change workspace settings before the get?
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
You'll need a workspace to do a get
, but it need not be the same workspace that you're using for Visual Studio. In fact, you can just create a simple throwaway workspace, for example:
tf workspace /new temp_workspace /collection:http://server:8080/tfs/DefaultCollection /noprompt
tf workfold /map $/Project/Project C:\Build\Project
tf get C:\Build\Project /recursive /noprompt
tf workspace /delete temp_workspace /collection:http://server:8080/tfs/DefaultCollection /noprompt
Note that the TFS SDK does provide mechanisms to do a download of an Item
without needing to create a workspace, so you could write a program to do this, but it would be a fair amount of code to avoid creating a workspace which is, ultimately, a fairly inexpensive operation.
回答2:
Neno Loje created a small utility that offers this functionality in one command from the commandline.