Warning, this is a bit of a rant…
Today I was trying to add a new unit test project to one of
our solutions through the Visual Studio VSS plugin. Everything seemed fine until I realized I had
named the project folder incorrectly. I
thought “no big deal” I’ll just rename the project folder, but of course there
is no way to do this through Visual Studio, you have to remove the project,
rename the folder through Explorer, then re-add the project. But since this was already checked in I would
need to go through the VSS client and rename the project folder. That’s why I hate source control integration
with Visual Studio, it doesn’t support all scenarios (especially renaming
things correctly to preserve history) and it tends to add an extra layer of
complexity. In addition to renaming the
folder I needed to edit the solution to point to the correct location. The one problem was that I forgot to change
the stupid source control bindings so when you went to open the solution it
wouldn’t find the project. Apparently I
needed to “rebind” the project – at this point I just hand edited the sln file
to rebind it to the proper location.
After that everything seemed
to be OK.
Just to make sure, I decided to open up my SourceOffsite
client (SourceOffsite is basically a 3rd party client/server product
to allow access to SS over TCP/IP) to verify things would look OK to the remote
devs; but where’s the stuff I just checked in?
After some searching through the SOS forums I found out I needed to “Refresh
Project Tree.” That showed me the new
files, but now I noticed the versions were incorrect. I then had to get latest and overwrite local
changes (even though I already had the latest) to update SOS on my client. So now I have three possible points of
contact with the source control database, and they seem to all have their own
view of what’s going on. This just
scares the hell out of me, and makes integration painful. Integration should be easy! After all, we want everyone to integrate
their changes as quickly as possible.
As per our current team rules, I then needed to send an email to
everyone with a list of my changes. Of
course SS doesn’t have change lists so I have no way to know what the hell I
just checked in. We also don’t have a
CC.NET server yet, so I couldn’t check there either. Argh!
What a bunch of crap.
Something that should have taken me 10 minutes took me over an hour. I think its time to setup an internal Subversion
server to show everyone the way towards the light.