Every site and video I have seen introduces at least 5 new concepts in each sentence (i.e. http://www.youtube.com/watch?v=WjddHpBi8Go). It's like all these articles are in a whole 'nother language. Can some one please explain this Subversion thing in plain English please including how to go about implementing it?
Subversion is a tool used by people who want to manage the versions of their project.
Lets say that you are constantly changing a document, you can use subversion to manage each revision. If you run your own subversion server, you can commit changes to documents from your working directory (which contains all the documents you are working on) and send them to the server which then updates your repository so that the latest revisions of each document is displayed.
You can also have many collaborators who have access to your repository so you can all share and update changes.
Quick Definitions
- Document : Is just any file
- Repository : Is a location which you create to store the collection of documents
- Working Copy/Directory : Is the location on your local drive which contains the latest and most up to date (normally) version of your project.
Subversion is a revision control system, which means that it can be used to track all changes to your source code (or anything else you put in it). If you cause some horrible bug and find out 6 weeks later, you can easily revert back to the original source.
Another common use is branching and merging, which allows several different developers/teams to work on their own copy (branch) of the source code at the same time. When it's time to release, you can follow a consistent process to combine all of the different changes made by different teams.
To implement it, just go to the Subversion web site and install it. The FAQ should answer most of your questions. If you have more specific questions, you can search for/ask them here.
It is also useful for team collaboration. Every member can work on the same file at a time, and if the changes don't conflict, subversion will smoothly merge all of the changes. If the changes conflict, subversion will flag these changes and make you fix them so that you don't lose/ruin someone else's work.
The video linked to by the original question author was not intended as an introduction to SVN. Maybe a video tutorial focused on using Subversion will help.
Easiest way to implement it (and it really is a good idea to use a tool like subversion, svn for short after the command-line executable, to keep old copies of your code) is to download TortoiseSVN which will add a context menu to Windows explorer.
Create a empty directory for SVN to keep its history data in, then use right-click -> TortoiseSVN -> Create repository here
Then go to the area you want to work on your code and do right-click -> TortoiseSVN -> Checkout. In the dialog box that pops up browse to the repository you created.
Finally, after writing some code, use the TortoiseSVN menu to "Add" your source code files (the ones you write, not what the compiler creates) and then Commit. After each edit, run Commit again.
The Log menu item will show you the history and let you compare your code to earlier versions and even roll back changes if needed.
Not to confuse you even more, but there's Joel Spolsky's brilliant introduction to Mercurial that is really, really easy to understand. It's a different version control system and different from Subversion in concept, so if you have to use Subversion, it's not for you. If you're still open in your choice, consider looking at it - it looks very interesting to me, I'm considering switching (I'm using Subversion currently.)
Subversion (or SVN) is a version control system (others are CVS, Git, Mercurial). Version control systems are just a piece of software that sits on a computer somewhere (normally some sort of server that is always on and accessible) and which you can send updates of your work to. It is typically used for programming projects but can be used for all sorts of documents really. When you sync with the SVN server, it will save whatever changes you have made, but it won't forget how the documents were previously, so at any point you can 'revert' to an earlier version if you don't like some of your changes.
It provides a very useful way of backing up projects, but it also allows multiple people to work on the same project as they can all work on a copy of the project with SVN helping to merge all the changes later.
To use subversion you'll need to set it up on a server and then use an SVN client such as TortoiseSVN to commit changes to your project. If what you're working on is open source and free for other people to look at and use, then there are many free subversion services on the web such as google code.
Every site and video I have seen introduces at least 5 new concepts in each sentence
Since you're not looking for a quick, dense introduction, I suggest that you take the time to read through the excellent subversion book.