views:

356

answers:

12

I'm an absolute newbie when it comes down to subversion and SVN (don't even know the difference). As I'm developing a pretty big website I'm looking for a way to take care of different versions (PHP, CSS, JavaScript files and MySQL database) and to make backups. I would like to use a web based system so I have an external backup. I'm not working in a team on this project, so features around this are not necessary. I'm working on Windows Vista. At this moment I zip my files and and upload them to box.net. But I'm sure there are better ways to accomplish this. Any suggestions?

+11  A: 

Subversion (aka SVN) and http://tortoisesvn.net/

TortoiseSVN is an easy to use SCM / source control software for Microsoft Windows and maybe the best standalone Subversion client there is. It is implemented as a Windows shell extension, which makes it integrate seamlessly into the Windows explorer. Since it's not an integration for a specific IDE you can use it with whatever development tools you like.

You aren't required to even have the subversion repository off of your own machine - though backing it up is more important since you still depend on the safety of your own hard drive.

Alister Bulman
+1 SVN is easy to set up, easy to use (since even I have been able to), and reliable...But I don't really like Tortoise, though: it's heavy, and lacks some feature I use in the command-line client.
Varkhan
Quite true @Varkhan (I'm using git and git-svn, on the linux command line). On Windows meanwhile, TSvn is just not very dfficult - which is essential for a newbie.
Alister Bulman
A: 

For backup use external hard drive. For all my projects (web/desktop development) I use SVN.

Raf
Do you also backup your svn repository to the external hard drive?
harto
Yes, that's actually more important than backing up working copy, unless you wrote 10000 lines and didn't commit it ;)
Raf
+8  A: 

I recommend git.

Some people say it's difficult for newbies, but I don't think that's true at all. I got up to speed with it in no time by just following the official tutorial, and I'm really a beginner when it comes to version control.

hasen j
Thanks for the tutorial link... I've been thinking about checking out git, and this makes it far easier!
Tanktalus
git doesn't allow private repositories unless you have a paid membership so unless you want everyone to see everything don't use git
NTulip
NTulip, what are you talking about?? git is local, on your machine, it doesn't even run a server! It's certainly free. unless you're talking about github.
hasen j
hasen - yes i was - sorry - thought he was looking for online free hosting for source control
NTulip
+3  A: 

I use Subversion myself, as previously mentioned by Topbit, use http://tortoisesvn.net/ so you can commit / update without having to go to a command prompt.

There are plenty of subversion hosts, I'd recommend http://www.unfuddle.com. Which is free for one project and comes with other cool things to help with project management.

Kirschstein
You may also want to look at www.xp-dev.com.It's what I use, and it also offers more than just basic svn hosting.
Stefan Kendall
+1 for unfuddle. Within that one project you can host several Subversion and Git repositories. You have a basic wiki, a messaging system and (perhaps most importantly) an issue tracking system.
Phil Nash
+3  A: 

I recommend svn as well, partially on the strength of its documentation.

http://svnbook.red-bean.com/en/1.5/index.html

You can use it without knowing anything at all about branches, which can't be said for git.

Subversion and svn are different names for the same thing. The full name is subversion, but the command line program is svn, and it's a common abbreviation.

It's possible that your web host provides a subversion server -- dreamhost does.

Kevin Peterson
+1  A: 

Pay for a github or bitbucket account and use mercurial or git.

Mercurial might work better on windows and bitbucket does allow 1 private repo on the free account I think.

Schubert
+1  A: 

I like Mercurial for tasks like this.

Advantages:

  • A repository is just a single .hg directory - you can copy it places as needed, you don't have to deal with hidden "CVS" or .svn directories scattered throughout your project, etc.
  • No server setup required - especially nice for situations where you're just using it for yourself. This is true of all DVCS'es - same goes for the above point, really.
  • Works well in Windows - no need for Cygwin
  • Easy to work offline (though it sounds like this doesn't matter so much for you)

(Possible) Disadvantages:

  • Commandline-only (pretty much). I think the CL interface is quite good, but some people shy away if there's no GUI. There is TortoiseHg, but I can't vouch for that.
  • ... I don't know ... It really is pretty great (:
jw
+2  A: 

I've heard good things about Beanstalk, but haven't had a chance to use it myself.

lush
beanstalk is awesome.
NTulip
+1  A: 

Just to give you some resources, here's a micro-overview of Version Control Systems (VCS):

The "traditional" VCS has a server that holds the repository (change history). In this scheme, the client (you) gets revisions of files from that repository and "checks in" (ie uploads) changes to the server.

Examples of this type of VCS are:

  • CVS - old standby
  • SVN - more modern CVS replacement
  • Perforce - proprietary, but has some nice bells and whistles

Then there are Distributed Version Control Systems (DVCS), which are a fairly recent development. Here, there is no server. Every client (such as you) has a copy of the repository. People make copies of a repository, make some changes, then merge those changes with other repos.

Examples of these are:

  • Git - originally for Linux kernel development, but stands on its own legs now
  • Mercurial - written in Python to be portable, my personal favorite
  • Bazaar - also Python

There are many others as well - Darcs, Monotone, Plastic SCM, etc. etc.

Some links:

jw
+1  A: 

Like most of the others, I'd recommend using SVN - just ignore features like "Branching" for now. Use TortoiseSVN (Windows) for starters.

Take a look at SlikSVN, which is a host-service for SVN repositories (for your "external" requirements) - if you don't have you own server, SlikSVN is great to get started (at a reasonable price).

Marcel J.
A: 

Backups are very different from Source Control. For introduction to (advanced) source control, read following "classic" article: http://oreilly.com/catalog/practicalperforce/chapter/ch07.pdf

zvolkov
+1  A: 

Ditto @Kirschstein. We use http://unfuddle.com. Super-easy to get started and if you use TortoiseSVN as a Windows Explorer plug in, it couldn't be simpler.

Rap