Source control problems

Jun 11, 2007 at 11:58 PM

I'm extremely frustrated with TFS source control. I'd like to make the problems that I'm having known to whomever can help, but I don't think that the issues are related to CodePlex, so I don't want to waste anyone's time here if it's not the right place to ask.

Should I post my gripes with TFS source control here or is there somewhere else that's more appropriate?


- Dave
Jun 12, 2007 at 5:23 AM
The right place would be in the Visual Studio Team System forums:

Though I would still be interested in hearing about your frustrations because even though they aren't with CodePlex directly, it is still affecting your experience in using CodePlex so we like to understand those cases. Is it specifically with Team Explorer? We offer alternative clients to Team Explorer that you can use with CodePlex that perhaps you could try.
Jun 12, 2007 at 6:30 AM

Thanks very much for your response and the link.

I haven't tried any other client yet, but I'm using Team Explorer because I liked the fact that it was integrated into Visual Studio.

Anyway, it's probably worth acknowledging that these issues might just be my lack of experience with TFS. I'm used to Visual Source Safe but I haven't experienced any of these problems with that software.

Since my first deployment of DocProject here on CodePlex I've made it a habit to stabilize each release before checking in any of the changes so that end-users would not be presented with changesets that contain broken or untested code. This makes for one large update to the source control instead of many little updates. (I work alone on the project so I can get away with this ;)

The steps leading up to the creation of the latest changeset, as far as source-control is concerened, are as follows:

  1. All files were previously checked-in.
  2. I deleted SOME projects in source control (they now have an X on them)
  3. I renamed those projects on my local machine and included them into the solution again - they were added into source control as new projects
  4. I began the development cycle, eventually making modifications to almost every file in the solution
  5. I added some brand new projects
  6. When I was done developing, I opened the Pending Changes window, added my comments and clicked Check-In.
Some of the problems during development and during the Check-In process:

  1. when checking in a large changeset I usually get many dialogs warning me about items that cannot be found probably because I added them at one point but then changed my mind and removed them later, all before checking in the changeset. I have to handle the dialogs one at a time and the check-in is canceled between each of them. Visual Studio should just ignore those files that do not exist on disc if they were never added to source control in the first place - just remove the "Add" action quietly.
  2. clicking Refresh on a project in Solution Explorer sometimes causes some or many project items to be removed from source control (the lock disappears) and checking in the project does not add them back. I've had to clean source control several times to fix problems like this. Unfortunately I cannot predict the project items to which this will occur so I end up just coming across them randomly as I develop the project when I see an item without a lock icon. If anything I would at least expect Visual Studio to warn me about project items that have changes and are about to be refreshed (actually, removed?) by the refresh operation, and allow me to cancel it.
  3. most recently and importantly, one (some, or many - I don't know exactly) of the source controlled files that I can browse to using CodePlex's web interface are not the same as the versions on my local machine. All of the project items have the lock icons and source control shows the items as being in-sync (not grayed out, for example); however, my end-users will see the incorrect versions of files. Unfortunately, I have no idea which files this occurs on and since my project is over 3 MB in size, I consider myself lucky to have even stumbled across one of them.
More detail about #3:
The file that I came across is DocSiteScript.js. The javascript file on my local machine was updated before the last changeset was made and contains several additional functions and a copyright notice at the top, which is not present in the source controlled version as it appears in CodePlex's web interface. The project item for that file has a lock icon next to it in Solution Explorer and the Source Control Explorer shows that it has no pending change and Latest=Yes; however, using the Compare... context menu item it's obvious that the files are different. How can I trust that all of the other source-controlled items are up-to-date? Why didn't Visual Studio warn me or stop the operation if there was a problem instead of marking the file as checked-in without actually uploading it? - this, of all of the issues, is the one with which I'm most concerened.

This is probably not an exhaustive list though. But these problems have occured since I started using source control on CodePlex and I always add a comment to each changeset asking users to use the source code that is provided by the DocProject installer instead, which I test before deployment.


- Dave