svngitversion-controlcvs

Source Control - If, Why, How to start?


Possible Duplicate:
Using Source Control

So, although even here on Stack Overflow are literally dozens things on version control, I can't find something nice to answer all my questions. If you have anything to say or post a link, please do it here.

1., Do I need to start with version control?

While most people agree, that even single developer/programmer should start with version control, nobody (or at least in understandable form) tells

2., How?

In my nature is that I need to know what means CVS, SVN, Tortoise, Git, GitHub and what are the differences, but I struggle to find some dead simple kick-start into world of version control.

As a developer/programmer, I worked or studied almost every programming/markup language, that is major (from Pascal to Java, from HTML to PHP) and used dozens of editors, IDEs and programs. And when somebody mentions you can use source control even for writing stuff - homework for students, annual reports, books... You have to include even more editors...

I have no clue how to start with version control, how to incorporate it in my workflow, if I need server or what.

Edit

From all your answers (thank you), I get the feeling it's really only something like "synced folders with history" (in the most obvious way). If yes, can you answer two questions? (numbered 4. and 5., so it wont mix up in answers)

4., what if I decide to completely change structure of my program (for ex. in flex, I decide to use two as3 class instead for MXML components) - won't it make confusion?

5., From other questions, how often do I commit? (found this question posted and probably answered, lost it again however)

Edit 2

Again, more answers (thank you).

6., My question 4 was more like if I accidentally (or not) renew some deleted files (which is probably possible), and it will break my program, because for example it depends on other deleted file, which was not undelete, will I be able to get it?

Next, I will (for anyone looking for I was looking for and stumbling upon this question):

Read these questions:

Watch this video:

http://excess.org/article/2008/07/ogre-git-tutorial/

While understanding the basics from manuals, I narrowed it down to subversion(+TortoiseSVN) and git(hub), which are most used and most favorited. Only problem I now have with GitHub is that private repository is paid, so I will either look fro different git solution or look more into Subversion.

Edit 3

Tried Mercurial, but found it not OK for my workflow... now trying Subversion, so I marked oldest Subversion answer.


Solution

    1. Yes, of course.
    2. Start with Subversion and the TortoiseSVN client. It's got excellent support, great tools and is generally far more straighforward to configure and use than Git is.

    There's an excellent Subversion manual available for free.