views:

607

answers:

12

Hello All,

I am working on a solo project, writing all code myself so no collaboration is required,

However, I do need the following features:

  1. Check in a current version, with comments
  2. Assign a label to a version
  3. Retrieve a version using label/tag
  4. NOT HOSTED (meaning I hold the repository on my local machine)
  5. free/open source
  6. With a nice GUI, not command line?

I think SVN is a good one, but it seems a bit overkill for me. Anyone ever came across anything like that?

+1  A: 

Perforce is free for up to 2 users. After that, you pay - but if you know you'll never need more, it is a very capable product with an excellent GUI and IDE integration.

Bill Michell
+1  A: 

If you have sql server (in any way, shape or form) on your local machine, then I can recommend sourcevault... It's free for single users, and emulates the sourcesafe interface (which a lot of people are familiar with) very well...

Comes with a nice toolset too.

http://sourcegear.com/

EDIT: Completely irrelevant, but interesting nonetheless... I bloody hate the SourceGear buggers! ;) Before SourceVault came out I was working on a drop-in replacement to SourceSafe... much like their product... (That's where the "hiive" name of my website/company came from... But the buggers beat me to it... C'est la vie!

Anyway, despite them beating me to the punch, SourceGear Vault is actually an awesome piece of software, and their new Fortress (that integrates bug-tracking and testing too) looks pretty good as well.

Andrew Rollings
man are you STILL whining about SourceGear? Get over it! :-P
Steven A. Lowe
+16  A: 

I don't think svn is overkill for what you are doing. It's pretty trivial to set up a local repository.

Andrew Kennan
I agree. Here is a nice we page that shows how. http://blogs.vertigosoftware.com/teamsystem/archive/2006/01/16/Setting_up_a_Subversion_Server_under_Windows.aspx
Paul
Easy - yes. Trivial - no.
orip
It becomes trivial with www.visualsvn.com.
J c
You don't need a server for Subversion at all.
Brad Wilson
+13  A: 

Git meets all your listed requirements.

genehack
Has It a nice GUI on Windows? And "simplest" part doesn't fit either.
J.F. Sebastian
GIT isn't simple at all http://bazaar-vcs.org/BzrVsGit
Dustin Getz
The question doesn't specify Windows, and "simple" is clearly subjective. IMO git isn't anymore complicated than any other VC.
genehack
UI: Try gitk. It takes a moment or two to wrap your brain around it but then it's so much more simple to use than anything else.
Aaron Digulla
+8  A: 

Why subversion is an overkill? One minute to install server and TortoiseSVN, zero configuration.

If you want to control your source code, do it right way from the very beginning, do not reinvent the wheel.

Agreed, installing i.e. VisualSVN Server takes 10 minutes and 4 mouse-clicks... http://visualsvn.com/server/download/
Michael Stum
bzr is easier and more full-featured for local repos
Dustin Getz
10 minutes? Use command-line SVN, don't bother setting up a server at all, just create a local repository and check it out. About 30 seconds.
Steve Jessop
@onebyone - exactly my point.
+5  A: 

Check out Bazaar. It's a versioning system, for human beings! It receives support from the Ubuntu people, who make Linux for Human Beings.

Gerrit
...as opposed to those guys making linux for dogs. (http://www.puppylinux.org/)
nickf
+1 to bzr as ultra simple "it just works"/ "its just awesome"
Dustin Getz
+1 for Bazaar. the distributed development-style is really comfortable
Tetha
+3  A: 

I use Subversion a lot, and it isn't difficult to set up for personal use - but other options are so much simpler!

For example, try Bazaar, Mercurial, or Git. With any one of these it's trivial to set up a local repository.

orip
How is it not trivial in SVN? One command to create a repository, one to check it out. That's it. You don't need Tortoise or a server.
Steve Jessop
You need to _keep_ a repository in a separate location on your disk - that's non-trivial from the start.
orip
+1  A: 

How about Subversion on a [USB] Stick? It's what I use when I need to have source control, but don't want to worry about multi-users. You can also use TortoiseSVN to access the repository.

George Stocker
+2  A: 

git, mercurial, bzr, svn... the list goes on and on and on.

Really, just pick one and you'll be good to go. I do all my source control from the command line, but many/most of these have decent guis. Good luck.

A: 

This is a shameless plug, but I couldn't resist.

I'm working on a tool that might be useful for you.

I haven't figured out the name yet, so I'm using a code name of "Code Agent".

It's designed mainly as a compliment to a source control setup, but if you are just a single developer on one machine, it might be a useful replacement for you.

It's a service that runs on your development machine. You point it at the folders that contain your source code, and then it will automatically create a backup every time you change a file.

It's designed to fill in a big gap left by source control systems:

They only protect your files when you explictly check them in.

Source control is mainly about managing the output of a team (several developers) over several releases of a project. As a result, it's generally not a good idea to check-in broken code into source control. Most of the time, developers only checkin code when it's "mostly working".

In the best of enviornments, with the best team of developers, this usually means you are probably only averaging (over the whole project) one checkin per day.

It can probably go as low as once every several days or several weeks in the worst cases.

Even in the best case, though, a lot of stuff can happen in day. I know that if I'm on a roll, for example, I can introduce quite a large number of bugs in the course of day. Over a week or two, I can really messs stuff up.

Having history of code changes at a more granular level then once a day or once a week, can therefore be really helpful.

It's possible to do this using "private" source control branches, but that requires you to:

  1. Setup the private branch
  2. Spend time managing the branch by taking regular integrations to / from the main branch
  3. Remember to checkin your changes at regular intervals into the private branch.

The last one is probably the killer. It’s an easy thing to forget.

And of course as soon as you setup a private branch, someone else is going to want to access the code in it for one reason or another, which is then going to end up preventing you from checking in as regularly as you want, which ends defeating the whole purpose of the private branch in the first place.

"Code Agent" fixes all of this.

You can setup it up once, and forget it about it.

You then have local source code history, at whatever granularity you need, whenever you need it. All automatically, and without having to checkin in “bad code” into your team’s source control repository.

For developers on teams, my tool is not a replacement for source control, but instead is designed as a complement to it. On a team you still need to explicitly manage checkins to a shared source code tree.

In your case, because you are not on a team, however, it might be perfect for you to use as a replacement for source control. You can add labels, or “snapshots” that correspond to specific points in time (like “fixed bug 1234”, “finished feature x”, etc).

It's not, however, free or open source.. It's a tool I'm going to be charging money for.

However, it should definitely be affordable for an individual developer to purchase (I haven't finalized the price yet).

I am going to be looking for Beta-testers sometime in early to mid January. If you are interested, let me know, and I would be happy to set you up with a private beta.

Scott Wisniewski
branch-commit-merge, problem solved with existing tools
Dustin Getz
The main point behind the tool is that it gives you LOCAL version history, for free. You don't need to take the overhead of manage special branches.
Scott Wisniewski
Bazaar - branch-commit-merge. Local or remote as you want or need.
Tetha
I'm interested. Click through my profile, google me, whatever. You can find my email if you try hard enough ;) Seriously.
TheSoftwareJedi
That's great. I'll follow up with you on your blog.
Scott Wisniewski
A: 

As others have mentioned, going with a distributed VCS (eg. mercurial, git, or bazaar) is the way to go for a dead simple setup. No matter how easy it is to setup a server, you can't beat not having to set one up at all.

I usually use mercurial, so that's what I'll describe, but the various DVCSs are all pretty easy to get going with. Its fairly simple to use from the commandline, but since you're looking for a gui interface, the obvious candidate is TortoiseHg. This operates pretty similarly to TortoiseSVN - it integrates with explorer and provides you with various menu entries.

Brian
+1  A: 

You can use Subversion without the hassle of a server installation.

Just download TortoiseSVN and create a local repository in a folder that you prefer. Use the same client to do updates, commits...

see my previous post for the links and related answers.

bob