TFS: File Modified Timestamp Option Needed

April 27, 2011

ASP.NET, C#, TFS

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.

NEED:

In Surround SCM, we have the option to pull the files down to our local machine with 3 different date/time options:

  1. Current (files on your system get the date/time the file was actually pulled down from the branch)
  2. Check In (files on your system get the date/time the file was actually checked into the project)
  3. Modified (files keep their original timestamps) *****

clip_image002

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):

  1. http://stackoverflow.com/questions/2103057/is-there-an-easy-way-to-get-a-file-and-have-the-last-check-in-as-the-files-times
  2. http://connect.microsoft.com/VisualStudio/feedback/details/282419/team-foundation-version-control-needs-get-option-that-preserves-files-timestamp
  3. http://social.msdn.microsoft.com/Forums/en/tfsversioncontrol/thread/3071d0ef-f9c0-43b3-a720-6162e5870e25
  4. http://social.msdn.microsoft.com/Forums/hu-HU/tfsversioncontrol/thread/6d4f1100-f0c8-4581-93bc-b745cc61f681
  5. http://social.msdn.microsoft.com/Forums/en-US/tfsversioncontrol/thread/23d00185-ae8e-4d0e-9386-28269fd4f969

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.

  1. 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.
  2. 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.

    This window is a lot easier to pick & choose from, for example, than if this window showed ALL of this files when we know only a change was made to the App_Code.dll:
    image

    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.

2 Comments on “TFS: File Modified Timestamp Option Needed”

  1. Todd Rosvold Says:

    Excellent explanation of what is needed – you are not alone.
    That the TFS development team still have not yet implemented the feature after many years of requests like yours being posted. Its strange they would drop such a critical feature that was originally available as an option in Microsoft’s VSS.

    Reply

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: