Jump to content
Can't remember your login details? Read more... ×
superfireydave

Version Control Systems

Recommended Posts

Between myself and one of the other guys I work with, we decided that even though we only do web based stuff and most of our projects aren't the same scope as larger software engineering companies projects, a version control system might be handy - especially if a situation where we're both working on the same part of a site at the same time.

 

Therefore, it doesn't need to be able to handle massive amounts of data and files, but we would like the ability to have multiple projects with multiple subfolders (like html, css, documents, images etc). I'd prefer not to have to spend more than $200 too, and am aware there are quite a few open source ones that are good.

 

I've previously used subversion on a linux based system, but it was all terminal based (at least, that's the only way we were able to use it) and given I'm a) used to a GUI and b) used to windows, it was painful to say the least. We weren't taught about how to set up a version control system either, just how to commit and leave a log message. Is subversion a good choice?

 

What's most important to me is the ability to manage it quickly and to be able to navigate through projects and version easily.

Oh, and I don't have any linux machines and can't be bothered trying to dual boot with linux unless there's a VCS that's so yummy and ONLY runs on linux =P

 

Any help is much appreciated :)

Share this post


Link to post
Share on other sites

Subversion still works. We use it. It integrates well to into windows explorer, so no messy command lines (unless you want to!). If you're a user of Visual Studio (which you're not, I assume), there's VisualSVN that integrates into the IDE. Have a look at TortoiseSVN

Share this post


Link to post
Share on other sites

Subversion still works. We use it. It integrates well to into windows explorer, so no messy command lines (unless you want to!). If you're a user of Visual Studio (which you're not, I assume), there's VisualSVN that integrates into the IDE. Have a look at TortoiseSVN

I've used TortoiseSVN and SubVersion. They both work pretty nicely.

Share this post


Link to post
Share on other sites

Subversion is okay. It's a bit horrible, but I don't know of a free alternative that is better. I use it both at work and at home.

 

I consider version control essential even if I'm the only person working on the project. It means I can revert if I realise I've done some horrible changes, and it's a convenient way to have a central repository of source, ie one place to back it up.

Share this post


Link to post
Share on other sites

Subversion is okay. It's a bit horrible, but I don't know of a free alternative that is better. I use it both at work and at home.

 

I consider version control essential even if I'm the only person working on the project. It means I can revert if I realise I've done some horrible changes, and it's a convenient way to have a central repository of source, ie one place to back it up.

 

+1

 

Even if you are the only developer you should be using some form of version control. These days I use GIT and Subversion. GIT to manage my branches and experiments, and the a perfect commit into SVN.

Share this post


Link to post
Share on other sites

we've moved on to mercurial at work. Bit of a different way of doing things, it's a decentralised version control system, so no need for a centralised server, you just have to set your policy and stick to it :)

 

It's advantage is that it's REALLY fast, and it's vastly superior at handling conflicts than Subversion.

 

There's a TortoiseHG thing for the windows shell too, but I've never used it, as we do our development (for ruby on rails websites) on linux desktops.

 

Mercurial Website:

http://www.selenic.com/mercurial/wiki/

Share this post


Link to post
Share on other sites

These days you have two choices; centralised or distributed version control. I don't think I'm old enough to have much experience with proprietary options, most of the older software guys I've worked with seem to think the open source stuff is fairly well up to the job (no doubt the really massive projects would still be better off on the proprietary stuff).

 

The main difference between the two is that centralised repos have a single place where everyone commits to, while there is no single repo in a distributed system. You simply push and pull changes between various repositories and you get to build the final product from whichever repository you like.

 

For centralised version control most people like Subversion. It has very good integration with the Windows shell via TortoiseSVN as has been mentioned (I find I only rarely need to drop down to the command line) and sadly is far better then any GUI interfaces you'll find on Linux. As of Subversion 1.5 (which came ou within the last couple months), proper branch tracking is available so resolving conflicts is now a lost easier (where it was a serious pain in the past).

 

If you go with distributed version control then the biggest kids on the block seem to be Git and Mercurial (Hg). I understand Git is a bit more powerful although Hg has a slightly more straighforward user interface (Git has been improving their interface and Hg has been adding more fatures though). Hg also has Windows shell integration with TortoiseHg, Git doesn't have this yet but there's working being done on a tool called GitCheetah to try to fill that gap.

 

 

Oh yeh. Forgot to mention that http://github.com/ seems to be quite popular right now. May or may not be relevant to what you're doing.

Share this post


Link to post
Share on other sites

(no doubt the really massive projects would still be better off on the proprietary stuff).

I don't know why you would say this :-/ git for example, is used for such massive projects such as the linux kernel and xorg.

Share this post


Link to post
Share on other sites

subversion has by far the most intergration into IDEs and GUI software if that matters to you. If you dont like command line, you wont like git, and I dont know about mecurial?

Share this post


Link to post
Share on other sites

Thanks for all the replies! ^_^

Did some more research, and SVN seems rather viable (despite me hating using it via the command line last year =P).

I prefer the idea of a centralised server based repository rather than individual client based ones - means less work for me which is important =P

 

My hosting also has SVN installed and I'm able to create projects fairly easily by the looks of things.

 

Can anyone see any issues with this? Or ways that I might improve upon the idea?

Share this post


Link to post
Share on other sites

I don't know why you would say this :-/ git for example, is used for such massive projects such as the linux kernel and xorg.

Everything is possible, not everything is convenient :)

 

Once you begin to consider projects where you must track and evaluate progress in order to meet deadlines, interact with the team in a way that allows you to manage development in a resource constrained way etc. Well, the corporate environment is a little different from the "merge it when it's good and ready" approach you might find in the Linux kernel. As pure version control Git is great but some proprietary tools can help with how it's applied in a wider context.

 

 

My hosting also has SVN installed and I'm able to create projects fairly easily by the looks of things.

 

Can anyone see any issues with this? Or ways that I might improve upon the idea?

No issues assuming your host can provide guarantees you will never lose your repository. Backups and all that. Otherwise you might have to take car of this manually? Not really sure. Never setup a repo with an internet host.

Share this post


Link to post
Share on other sites

No issues assuming your host can provide guarantees you will never lose your repository. Backups and all that. Otherwise you might have to take car of this manually? Not really sure. Never setup a repo with an internet host.

Actually, that's a good point.

 

Does SVN have the ability to backup repositories? (I apologise if this is a stupid question, I just hadn't thought about it at all. I'll do some research now =P)

Share this post


Link to post
Share on other sites

I moved from Subversion to git for what I do at Eze Corp. I started with Subversion, because I knew the Win32 client was well integrated, and it was easy to set up.

 

However, I had the need to be able to back up the repository on a computer there. No problems doing that, but what if they decided to commit something to that repository? For this reason, I moved to git. I'm used to a command line, in fact, I spend 90% of my time in MSYS on Win32. Git means I can push my changes to a repository on my laptop, and on the other computer, so there's at least three copies of the repository on the network. It's very trivial to set up, and so far is working well.

 

While git is fairly new, it has been thoroughly tested in scenarios far more complicated than what I'm achieving, so I figure it's a safe bet.

Share this post


Link to post
Share on other sites

No issues assuming your host can provide guarantees you will never lose your repository. Backups and all that. Otherwise you might have to take car of this manually? Not really sure. Never setup a repo with an internet host.

Actually, that's a good point.

 

Does SVN have the ability to backup repositories? (I apologise if this is a stupid question, I just hadn't thought about it at all. I'll do some research now =P)

 

 

The actual repository is just a filesystem based db. Backup the folder, and you've just backed up the repository in its entireity! too easy.

Share this post


Link to post
Share on other sites

If your going for SVN, "Version Control with Subversion" is a must read.

 

Backups are a piece of cake, although be careful doing a straight copy of the files as you can get corruption if somebody is committing at the same time, I use script similar to the following for backing up all repositories in one go (for windows):

@ECHO OFF
SETLOCAL

SET bu_sourcePath="PATH_TO_YOUR_REPOSITORIES"
SET bu_destPath="DESTINATION_PATH"

FOR /D %%d IN (%bu_sourcePath%\*) DO (
	svnadmin dump "%%d" > "%bu_destPath%\%%~nxd.svn_backup"
)
There are plenty of other "hotcopy" scripts around for backing up SVN.

Share this post


Link to post
Share on other sites

At work, while many of the projects here have moved to SVN, A couple, including mine, are still sticking with CVS at this time.

 

Not worth the effort to change the processes.

 

It freaks some people out, but it makes good sense to not mess with a good working process mid-project unless you can provide valuable justification.

Share this post


Link to post
Share on other sites

I had a bit of a look into distributed version control after reading this thread, and I actually think Bazaar looks quite good. I've used Subversion in the past, but I'm working on a pair assignment at the moment and don't want to have a server running 24/7 just so my team-mate can commit / update a couple of times a week. Bazaar seems a bit more "user-friendly" than Git, at least according to some comparisons I've read. The documentation looks pretty comprehensive.

 

It's cross-platform and has fancy GUI front-ends for Windows and Linux, although I only ever used the command-line Subversion client so I'll probably do the same with Bazaar.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×