We’re currently transitioning from Surround SCM to TFS across our organization.
There is a preference we need that I have been unable to find in TFS.
In Surround SCM, we have the option to pull the files down to our local machine with 3 different date/time options:
- Current (files on your system get the date/time the file was actually pulled down from the branch)
- Check In (files on your system get the date/time the file was actually checked into the project)
- Modified (files keep their original timestamps) *****
The “Modified” option is the one most important to us, that we have been unable to find a way to do in TFS.
My searches on how to set this preference in TFS have returned results that say it currently can’t be done (like these):
Two Reasons This is VERY Important to our Workflow:
We do work on many projects for many accounts / clients. We have a team of about 40 developers who rotate on & off of projects as allocation allows.
- If my coworker starts on a project that has asset file changes, then is allocated to another project, I don’t have an easy way to search for updated assets that might have been checked into TFS before I pulled down the branch, since the timestamps on my machine reflect when I pulled down the file. We have projects with hundreds or thousands of support files (images, swfs, flvs, etc). Pushing all assets to all environments with every iteration can be both time-consuming and inefficient, especially when only one or two might have changed.
- We use a deployment tool called Repliweb to move files through our environments from Integration to Staging to Production. Filediffs are much more efficient than full pushes, since only files whose timestamp + size + checksum have changed in a deployment are backed up.The ability to keep the original timestamps on files can greatly reduce the size of the Repliweb backups.Original timestamps also enable us to see just those files in the Repliweb preview confirmation.
When every file has a new timestamp with every push, it’s very difficult for us to ensure we haven’t missed anything in our deployments.
We sometimes have multiple branches deployed to our integration for team review & need to do selective deployments like this to our staging server for QA before the other project is submitted to QA, which is another reason the ability to see exactly what files don’t match staging through the Repliweb interface important.
For most of our accounts, we don’t use a “Team Build” workflow (and for the ones that do, we most certainly don’t want those jobs to build all files but I saw workarounds for incremental gets about that).
All we need is an option, like the one in Surround SCM’s preferences above, to pull down the files by date modified to our local systems. Is there one available that we’ve missed?
p.s. If there’s a way to do a “Publish Web Site” from Visual Studio without updating every timestamp, we would really value that too, as we have been equally unable to find that option. Thanks!
p.p.s. You are welcome to flame me about process, but my intention in posting this is not to ask what the correct way might be, but to solve an existing, client-driven-therefore-currently-unchangeable situation. Solutions would be GREATLY appreciated.