Best Version control for lone developer [closed]

百般思念 提交于 2019-11-27 06:02:10

Might I suggest a rather new version control called fossil.

This is not a me too project, it is written by Dr. Richard Hipp, same guy who did SQLite. The whole repository is a SQLite file, so it is very solid. You have a wiki and a ticket system built in. You can have many users with varying rights, so you can for example give your users right to issue tickets but not view source code.

This is pretty simple, straight forward and it works as a distributed system, meaning you can clone and checkout locally and remotely.

More info can be seen on http://www.fossil-scm.org/ and if you look closely you see that the whole site is actually fossil.

One thing that really impressed me with fossil is that it is just one file, thats it. The whole fossil program is rather small, but considering who the author is, that is not really a surprise.

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

Each person will probably tell you that their favorite DVCS is the best for you. I would tell you Mercurial is the best! ;-)

But that's crap. You definitevely need a DVCS, but try them all, or at least the mostly used ones, and make your choice by yourself. Choosing the DVCS that you know a guru for is also a sensible choice, BTW. I'd recommend trying (or reading the documentation of) at least Mercurial, Git and Bazaar. SVK may have the desirable feature that it's designed to interact with SVN, but last time I checked they had nasty performance issues. Git also has some SVN interaction plugin, AFAIK.

Working offline absolutely makes sense for Git. You can browse your entire history, make commits, do merges, create branches, essentially do everything related to your repository offline. Furthermore, you can set up a central repository which is the "master", that is you will push all your changes to that central repository. That way you always know where the latest code is, but you also get the benefit of being able to send changes from one machine to another if you ever need to.

I recently converted all my 80+ Subversion repositories to Git, and I haven't looked back.

Bazaar: See the solo use case and Bazaar in 5 minutes.

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

Subversion works great (especially with TortoiseSVN). I don't think any distributed VC would have an advantage in a single developer scenario.

Edit: I hadn't noticed the "sometimes I work Offline" part when I originally replied. In that case, I suppose you must weight the added complexity of a DVCS with the fact that it gives you offline history / revisions.

Jonny Buchanan

I always recommend darcs for this situation (here's my answer to a similar question) as its command line user interface is a joy to use and joy is what I want from my own development :)

Git comes bundled with some workable GUIs, but I've found it too unwieldy in comparison to darcs when I hit the command line to use for personal projects.

Either will satisfy your need to work offline and they're both easy to synchronise changes with.

Subversion requires access to a centralized repository. If you are working offline and from multiple machines, that means you cannot make revisions while offline.

A bare bones Unix solution would be to keep a history inside the working dir with RCS, and synchronize the working dir (including history) between different machines using Unison. The main caveat would be that, if you switch machines, you would first need to sync them before you start committing new revisions. If that is a problem, you best look into a real DVCS.

Booji Boy

You may find the answers to the question I asked helpful: alternative to VSS for a one man show (army of one?):

Alternative to VSS for a one man show (army of one?)

You have to try a DVCS (or what i call a peer2peer VCS). I'm agree with nowhereman. Don't waste time with svn and all the soft made arround it to make it sort of useful. A DVCS it's more intuitve that the old and deprecated client-server style. SVN doesn't know what is a tag, or a branch. For Svn all are just copies.

For example: it's so dificult to implement a tag as a synonymous of a revision number.

In mercurial a tag is just that. You can't keep tracking versions of a tag as you can in svn.

Read here dvcs guide to start. Then you can use svk, mercurial aka hg or git. But please don't go back in time

I'm a big fan of distributed version control. I've played around with git, mercurial, and bzr, and I now use git for all my projects. All three of these are great for personal use because it's so simple to create a new repository on your computer. You don't have to run any servers.

Here are a couple of ideas for sharing your repository across multiple computers. 1) Use some hosted service like github. Usually these are free for open source projects and low fee for commercial projects. We're using github at work. 2) Use dropbox to create a shared internet-backed up disk that all your computers can access. It's free for less than 2 GB. (If you're on Ubuntu, Ubuntu One is another alternative.) Put your master git repository on dropbox and then put local repositories on each of your computers. (So, dropbox plays the same role as github.) It's completely free, allows you to work offline easily, allows you to share the repository with other developers later if you need to, and it's backed up automatically.

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

SourceGear Vault is free for one developer and is very good.

i recommend assembla.com - they provide free svn , wiki and trac. Cant get any better than that!

If you're comfortabel with subversion, i suggest you have a look at SVK

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!