Better Version Control for a Single Developer

Now I am one developer; please share your experience with what is a good VC setup for a single developer.

My limitations;

  • I work on several machines and must keep them in sync.
  • Sometimes i work offline

I am currently using Subversion (only client for remote server) and this works fine. I'm interested in Mercurial and git DVCS, but none of their use cases makes sense for my situation.

EDIT: I moved my active development to Fossil http://www.fossil-scm.org/ after a trial with the client. I really like the auto-synchronization features of my repositories (reduction of random forks), documentation support (both wiki, and built-in / version), which supports my need to document code and project in different spaces, easy to configure problem tracker, good access control, skin- interface and useful community.

+67
git version-control svn project-management bug-tracking
Sep 26 '08 at 10:20
source share
13 answers

Perhaps I suggest a fairly new version control called fossil.

This is not my project, it was written by Dr. Richard Hipp, the same guy who worked on SQLite. The entire repository is a SQLite file, so it is very durable. You have a wiki and ticket system. You can have many users with different rights, so you can, for example, give your users the right to issue tickets, but not view the source code.

It is quite simple, straightforward and works like a distributed system, which means that you can clone and verify locally and remotely.

More information can be found at http://www.fossil-scm.org/ , and if you look carefully, you will see that the entire site is actually petrified.

One thing that really struck me as a fossil is that it is just one file, that’s it. The entire fossil program is quite small, but considering who the author is, this is not surprising.

And since your repository is a sqlite file, you just copy it and you have a backup.

+43
Mar 10 '09 at 12:44
source share

Everyone will probably tell you that their favorite DVCS is the best for you. I would say that Mercury is the best !; -)

But that shit . You definitely need DVCS, but try them all, or at least mostly used ones, and make your own choice. Choosing the DVCS that you know the guru is also a smart choice, BTW. I would recommend trying (or reading the documentation) at least Mercurial, Git, and Bazaar. SVK may have the desired function, which it is designed to interact with SVN, but the last time I checked, they had unpleasant performance problems. Git also has some SVN interaction plugin, AFAIK.

+49
Oct 02 '08 at 12:11
source share

Working offline makes sense for Git. You can view your entire history, commit, merge, create branches, basically do everything related to your repository offline. In addition, you can configure the central repository, which is the "master", that is, you will redirect all your changes to this central repository. This way you always know where the latest code is located, but you also get the opportunity to send changes from one machine to another if you ever need to.

I recently converted all of my 80+ Subversion repositories to Git, and I did not look back.

+30
Sep 26 '08 at 10:29
source share

Bazaar : see the use case of solo and Bazaar in 5 minutes .

Especially for offline use, a distributed version control system is the way to go.

+13
Sep 26 '08 at 11:10
source share

Subversion works great (especially with TortoiseSVN). I do not think that any common VC would have an advantage in a single developer scenario.

Edit: I did not notice that "sometimes I work offline" when I initially answered. In this case, I suppose you should weigh the added complexity of DVCS in that it gives you an offline history / revision.

+7
26 Sep '08 at 10:21
source share

I always recommend darcs for this situation ( here is my answer to a similar question ), since the command line user interface is joy, and joy is what I want from my own development :)

Git comes bundled with some working graphical interfaces, but I found it to be too bulky compared to darcs when I got to the command line for use in personal projects.

Or it will satisfy your need to work offline, and it’s easy to synchronize changes with them.

+3
Sep 26 '08 at 10:30
source share

Subversion requires access to a centralized repository. If you work offline and from multiple computers, this means that you cannot make changes offline.

The Unix bare-bone solution will contain history inside the RCS working directory and synchronize the working directory (including history) between different machines using Unison . The main caveat is that if you switch machines, you will first need to synchronize them before you start making new changes. If this is a problem, it is best to take a look at real DVCS.

+2
Sep 26 '08 at 11:02
source share

You can find the answers to my question: VSS alternative for one-man show (army of one?):

VSS alternative for one person show (army of one?)

+2
Oct. 15 '08 at 19:05
source share

You need to try DVCS (or what I call peer2peer VCS). I agree with nowhereman. Do not waste time on svn and all the soft ones made around it to make it useful. DVCS is more intuitive that the old and outdated client-server style. SVN does not know what a tag or branch is. For Svn, everything is just a copy.

For example: it is so difficult to implement a tag as a synonym for version number.

The mercury tag has just that. You cannot continue to track tag versions as you can in svn.

Read the dvcs manual here for a start. Then you can use svk, mercurial aka hg or git. But please do not return on time.

+2
Nov 14 '08 at 2:01
source share

I am a big fan of distributed version control. I played with git, mercurial and bzr and now I use git for all my projects. All three of them are great for personal use, because it is so easy to create a new repository on your computer. You do not need to start any servers.

Here are some ideas for sharing your repository on multiple computers. 1) Use some hosted services like github. Usually they are free for open source projects and low fees for commercial projects. We use github at work. 2) Use Dropbox to create a shared backup Internet drive, access to which is accessible to all your computers. It is free for less than 2 GB. (If you are running Ubuntu, Ubuntu One is another alternative.) Put the main git repository in Dropbox and then put the local repositories on each of your computers. (Thus, dropbox plays the same role as github). It is completely free, allows you to work offline, allows you to later share the repository with other developers and automatically create backups.

Also, if you really want to use SVN, look at a hosted solution like cvsdude (despite the name, they run SVN) and not on your own server. You will be able to access your code from anywhere, and it will cost you only ~ 5-10 dollars a month.

+1
Dec 12 '09 at 17:43
source share

SourceGear Vault is free for a single developer and very good.

0
Sep 26 '08 at 10:24
source share

I recommend assemblyla.com - they provide free svn, wiki and trac. I can’t get better!

0
Sep 26 '08 at 10:49
source share

If you know how with subversion, I suggest you take a look at SVK

0
Sep 26 '08 at 12:55
source share



All Articles