The TFS server monitors that each workspace contains 1 . Any changes made locally using client commands other than TFS (be it tf.exe
, Team Explorer, or another client) will result in differences between the TFS server view and what actually exists.
Power parameters for different clients simply get everything, eliminating such inconsistencies (effectively dropping both what is on the client and what the server thinks).
When you make a call against a specified version (whether it is a date, a set of changes or a label), you get everything before and including this point in time, regardless of whether they have changed at the moment. Therefore getting
tf get /version:D2012-03-30
will receive changes made before or before this date.
To get only the items included in the change set, you will need to do some work yourself, using the command to get a list of the contents of the change set and analyze what to do the right thing (the change set may include more than just updating and adding files 2 ).
It seems to me that if you want to build in each set of changes that affect a specific TFS folder, you'd better look at using TFS Build, in which everything is done this way - avoid reinventing the wheel - and focus on (other continuous build solutions are available )
1 This will change with TFS11 local workspaces.
2 For example. passing a folder rename will require some non-trivial work.
source share