Having the pleasure to have inherited an interesting codebase from a former colleague, I recently discovered first hand that source control can be a PITA too! That is, not using it as it should be used. As I already stated before, when used right, source control can safe your life. But not this time..
When I first looked at the codebase I’m being asked to change, I was relieved to see that it was under source control. Okay, let’s see what version is the one in production right now. Huh? Okay, no tags to be seen anywhere. In case you don’t know what tags are, this is a very good introduction to source control.
Right, let’s see if I can determine the production version by looking at the history of changes. Nope, almost no checkins contain comments to determine what was changed and why. Great. What’s next?
What I’m doing now is trying to compare the dll versions on the production system with the times of checkin in source control to narrow the scope. To make things even worse, it seems that the client side of the application has been modified after the server side has been into production. Because all parts of the application reside in the same solution and source control tree, I’ll have to do some serious hacking afterwards to assemble the current state of the system as it is in production.
So using source control is good, using it as it should is even better!
[Update] Currently using the magnificent WinMerge to see what has changed exactly.