What happens when you change files outside Team System?

Developers used to the CVS or Subversion source control model typically install the Tortoise shell extension that integrates source control directly into Windows Explorer:

 

While I fully expect that a similar shell extension will be available for Team System eventually, right now it doesn't work this way. If you want your changes to be tracked, you really need to make your edits inside the Visual Studio IDE.

What happens when you disregard this advice and change files under Team System source control outside the Visual Studio IDE?

  1. You'll have to remove the read-only flag on the files to change them at all.
  2. Once you make the change, the source control icons in the IDE show no visual indication that the file has changed. Nor does the Source Control Explorer. If you have the IDE open, it may prompt you to re-load the file, but the files aren't checked out*.
  3. Further edits to these files do not trigger automatic check out, which is a little strange to me.
  4. You must manually check out the modified files. But don't worry, your manual changes will NOT be overwritten by the latest version in source control.
  5. Once you perform a check in*, your modified files are finally committed to source control.

It would be nice if the IDE could at least mark changed files as edited and initiate the check out process for you on those edited files. But it doesn't. As it stands right now, if you edit files outside the IDE, it's a completely manual process

I recommend sticking to editing within the IDE. If you must edit files outside the IDE, do a global check-out of all files when you return; that way, when you check everything in, only the truly modified files will be committed to the repository anyway.

* By check-out and check-in, I do not mean the traditional Visual SourceSafe Lock-Modify-Unlock, but the first step of Copy-Modify-Merge. CVS and Subversion also use the check-out terminology this way, and it's confusing there, too.

posted on Wednesday, January 25, 2006 2:57 PM by jatwood

Comments

# VSTS Links - 01/27/2006

Eric Jarvi gives us his latest VSTS Tip: C++ and Team System.

Rob Caron points us to some information...
Friday, January 27, 2006 6:10 AM by Team System News

# "Check Out" doesn't mean Check Out

One thing that confused me quite a bit with Subversion and Team System is that check out doesn't really...
Friday, January 27, 2006 4:15 PM by Team System

# re: What happens when you change files outside Team System?

As I mentioned to Jeff offline, you don't necessarily have to edit your files in the IDE (Visual Studio 2005). Team Foundation Client tools is just a plugin to the VS2005 IDE. All that means is you HAVE to use the IDE to check in/check out your files. Once you've checked out your files, then you can feel free to use any editor of your choosing. For those who are using Eclipse for Java work or VS.NET 2003 for .NET 1.1 work can use this method. The good news is that plugins to TFS in both these environments are currently being worked on, but the point is you're not locked to VS 2005 to edit your files.
Monday, January 30, 2006 10:02 AM by Eric Cherng

# re: What happens when you change files outside Team System?

There is also the TF power toy, tfpt.exe. It has an online command that will find writable files and pend edits on them. You can learn more at http://blogs.msdn.com/buckh/archive/2005/11/16/493401.aspx.

At some point, we'd like to have the tfpt commands also available in a VS power toy, but there's no timeline (or promise) for that.

Buck
Sunday, February 05, 2006 6:26 PM by Buck Hodges