Yes, managing source code and keeping a history of changes is extremely important.
You should always be able to rebuild the last released version of the system, even while you're working on the next release version.
The classic example goes like this:
- You release version 1.0 of your system
- You are working on new features for version 1.1
- A serious bug is found in version 1.0. You have to fix the bug and release a version 1.0a as soon as possible. To do this, you want to have the source code for 1.0 to work on, and not the development version heading for 1.1.
- After you've released the bug fix, you want to return to work leading to version 1.1
- When you have implemented the new features and you're ready to release 1.1, you want to be sure that the fix implemented in version 1.0a is there in the 1.1 code as well.
The tools that you need to manage these sorts of problems are called "revision control" or "version control" systems. See the Wikipedia article on revision control for more on revision control. Wikipedia also has a list of revision control software that will give you some options.
I would not want anything to track changes to every line of code as I write it. What I do want is to track every completed, tested change to achieve a particular defined goal. That's what revision control systems give you. After you've finished a particular task, you "check in" or "commit" your changes to the revision control system.
I am a huge fan of Mercurial. Many newer revision control systems, including Mercurial, are using a distributed approach where every developer has a copy of the repository and you can sychronise between them when you choose to. Once you get used to the idea, it's very powerful and I wouldn't be without it.
Do not waste any time on Microsoft Sourcesafe. It's close to dead. Team System is replacing it.