I would recommend using source control to someone doing a "home project" for their hobby as well. It is amazing how many people wish that they could go back to what was "working yesterday". I find is astounding that ANY professional software development is done without source control...and by professional I suppose I really mean commercial as it is arguable that without source control it cannot be termed professional.

Gary Varga (11/20/2013)I would recommend using source control to someone doing a "home project" for their hobby as well. It is amazing how many people wish that they could go back to what was "working yesterday". I find is astounding that ANY professional software development is done without source control...and by professional I suppose I really mean commercial as it is arguable that without source control it cannot be termed professional.

Version control does more than just tracking changes to your code over time. It also does the following:

* Record the user who made the change (great for multiple developers) * Allow you to branch the code (to try an idea, or develop a feature independently) * Easily compare (via a Diff utility) two versions of a particular piece of code * Selectively revert code changes at any point in time * Keep a history of developer comments (for what changes were made to the code) * Promotes code sharing by multiple people / computers * Last point is important for automated builds (running unit tests like spUnit to verify code changes)

The Tortoise tools are excellent free UI tools for managing SVN, Git, CVS and Mercurial repositories and they include a good Diff tool (though BeyondCompare is the best I've used - and you can easily swap out the Diff utility with the Tortoise tools)

kenreg (11/20/2013)Version control does more than just tracking changes to your code over time. It also does the following:

* Record the user who made the change (great for multiple developers) * Allow you to branch the code (to try an idea, or develop a feature independently) * Easily compare (via a Diff utility) two versions of a particular piece of code * Selectively revert code changes at any point in time * Keep a history of developer comments (for what changes were made to the code) * Promotes code sharing by multiple people / computers * Last point is important for automated builds (running unit tests like spUnit to verify code changes)

The Tortoise tools are excellent free UI tools for managing SVN, Git, CVS and Mercurial repositories and they include a good Diff tool (though BeyondCompare is the best I've used - and you can easily swap out the Diff utility with the Tortoise tools)

Another potentially useful thing you can do is something I started with Bill Wunder's code way back when...I was responsible for ensuring that everyone was developing good quality code (you can choose how to define "good quality"). All I needed to do was to check what changed yesterday and you can very quickly educate everyone shortly after they write code that isn't up to scratch. I ended being called the "SQL Nazi" - mostly with affection

kenreg (11/20/2013)Version control does more than just tracking changes to your code over time. It also does the following:

* Record the user who made the change (great for multiple developers) * Allow you to branch the code (to try an idea, or develop a feature independently) * Easily compare (via a Diff utility) two versions of a particular piece of code * Selectively revert code changes at any point in time * Keep a history of developer comments (for what changes were made to the code) * Promotes code sharing by multiple people / computers * Last point is important for automated builds (running unit tests like spUnit to verify code changes)

The Tortoise tools are excellent free UI tools for managing SVN, Git, CVS and Mercurial repositories and they include a good Diff tool (though BeyondCompare is the best I've used - and you can easily swap out the Diff utility with the Tortoise tools)

You can also run tools like Lint or MS Code Analysis too as part of a Continuous Integration (CI) build to ensure compliance with coding standards.

Currently we don't really have anything in place to do this here. I would love to be able to tell what changed with a given update. I do love using Beyond Compare for comparing versions of code.

I haven't looked at any of the version software out there. (There is someone looking at it.) Back in the 'day', when I was a mainframe programmer we had a software that would show you the date and time each line in the code was last changed. It only kept about 25 versions I think, Vollie?? It's been too long now, not sure if that was the name. Anyway, I would love to have that kind tracking for our SQL changes. That way if someone didn't document what they were changing(who would do that ) I could see what lines of code changed by looking at the date on each line.

I can't cast any stones at my fellow developers for not documenting each change since I may be worse than others. I'm a man, I'm sorry, I'm trying, I can do better.

-------------------------------------------------------------we travel not to escape life but for life not to escape us