Tuesday, April 1, 2014

Tortoise SVN & CollabNet Subversion Edge: A great document versioning repository starter kit and a simple and fast way to manage your code projects for free

About two years ago I was introduced to Tortoise SVN.  I confess I heard of it before but never looked into it.  Revision control is very important in managing many of your code projects, but it can even be used for many other types of digital projects and be very useful for any activity where you have a team of people contributing parts of digital assets used towards the compilation of a larger project.  It can store almost any type of file, including text, images, and special documents like PDF and .doc files.

It's a big undo time machine.  It's like a gatekeeper, bookkeeper, filing cabinet, secretary, note taker, and more.  As a matter of fact, the only thing it needs is about a 20 minute installation and plenty of disk space somewhere on your network.  It does most of the work, but if you ever made a change to the website and needed to restore it quickly back to a version that was more stable, you can do all that with a click of a button.

Worry free tracing and tracking as the puzzle gets built

Though I'll focus on the benefits of managing your web code for websites using Tortoise SVN with CollabNet's SubersionEdge SVN server, I can't help but look back and wonder how I worked at so many large corporate companies and they did not take advantage of document versioning and how much easier everyone's lives would have been, how much time we all would have saved had we been using revision control!  It streamlines many things and becomes more useful and vital as the size of your organization and the number of contributors to any digital projects grow.  I am not exaggerating, it will make your company more productive and save countless hours reassembling, hunting down, recreating documents and other digital assets.

The systems that control revisions are called different names, according to its Wiki page, it's known as "revision control", "version control", and "source control".  A VCS is a common acronym for a stand-alone program that accomplishes multiple versioning and document repository tasks.

20 minutes to having a professional code environment

You first need to install and run an SVN server.  There are plenty of different systems out there, some you can install on an existing server, of course, but some come with a server built in.  If this is your first time setting things up, your fastest solution isn't a bad choice at all -- even for large projects.

Install Subversion Edge

Go to www.collab.net/downloads/subversion and download and install the proper Subversion Edge file for your computer.  As of this article, it's free, unless you need the Enterprise version.  If you already have a server running on your computer, keep in mind that Subversion Edge should have its own IP address to work properly or you will have to do some deeper configuration and possibly change the port addresses as well.

Once you install Subversion Edge, there are some basic settings, just follow what they recommend, this should work 90% of the time and won't take you long.  Subversion Edge operates in the background, it's very efficient with your Windows resources.  I'm no Windows expert, but I believe Subversion Edge runs as a service, not a program, so it's not something you click and launch, it's just on until you stop the service in the computer's manage menu.

Getting to the SVN server is as easy as opening a web browser and typing in the computer's IP:3343, the number after the colon being the port.  The actual address will be provided to you upon set up, by the way.  It's simple, now you have a server, it's ready to accept any kind of document.  You have to set up your first repository, but that's easy, this is just like setting up a bank account -- you're setting up a place and some credentials so there's an understanding that things will be deposited or withdrawn in the form of digital information (unfortunately not money!)  I like to use the standard SVN folder structure where all the code gets stored in the /trunk -- just in case you are wondering when you install, your files don't have to mirror this and you can put them anywhere or not even in a sub folder.


Tortoise SVN

Now you need a way to tell your SVN what files and the location of files belong to a designated repository.  That's where Tortoise comes in, it's a simple program that operates on the Windows system level that will then piggy back onto Windows Explorer and add a contextual menu interface to allow you to do all sorts of things with a single file, group of files, or even a collection folders.  Keep in mind that Tortoise SVN isn't a program you double click and run, it's installed and running along with Windows Explorer that you call on mostly by right-clicking  to get to the menu to control things.

Here is a screenshot of Tortoise in action.  By the way, you don't need to install an SVN server like CollabNet, Tortoise does have its own built-in repository system, but this is local file based and really only recommended if your repository locations are kept on your local computer and not somewhere on a shared network drive.

Screenshot of Tortoise SVN contextual menu in Windows





Install Tortoise SVN

Just go to http://tortoisesvn.net/downloads.html and download the proper version for your computer.  There's a lot to learn about revision control and we've just touched the surface.  Knowing your previous code is safe and you can quickly restore code will empower you to not have to worry about keeping versions and multiple versions of files any more so you can focus on being more effective.

The first two commands you will learn is to "Add" files and "Commit" them.  Committing not only sends the files to the server and timestamps them, it allows you to type a quick note so you can reference the phase of the project at that particular time so you can easily reference and find those files later.

Another useful command you will probably use is "Clean Up", though it is unclear the background processes this involves, this usually helps keep your files in order before sending to the repository.  There are plenty of other very useful and more advanced features that you should experiment with when you get more comfortable using revisioning, especially if you work with multiple developers in collaborative team environment -- it's essential to learn how to branch and merge documents.  Also, never again will you have to just wonder how to compare two different versions of the same file and comb through line by line, Tortoise an highlight changes using a very straightforward file comparison tool.

Other uses for revision control

Revision control can also help manage and maintain creative projects such as video production or animations

I highly recommend using revision control for projects outside of web development!  For instance, if you are a 3D animator like me, you will tend to create a lot of versions of the same project and name each file with a sequential number and possibly a small note after it.  Being in the video production business for over 20 years, I know revision control could also help manage video projects, too.  Not only could you keep back ups of your video files automatically, you could version your animations, designs, and video editing projects in Adobe Premiere Pro or Apple Final Cut Pro without resorting to some crazy naming convention.  Whenever you reach a new phase of your project, you simply "Commit" the files to the repository.

Writing a novel?  Break it up into different sections and save them in their own repository so you can later have trackable notes and a history of your writing!

The other nice benefit of using document versioning is that all your past files aren't laying around in your main project folders, they're simply stored in the cloud, waiting for you if you need them!

No comments:

Post a Comment