svn: local commits

Subversion: is it possible to commit local revisions without pushing them, and push them at a later date - or is the lack of this feature why it's called "centralized" ?


Solution 1:

It is not possible to do local commits with Subversion.

This is because, as a centralized version control system, your local working copy does not have all the information the server has about past revisions, log entries, etc. which it would have had if it was a Distributed Version Control System (DVCS).

A subversion working copy contains a copy of all files as they were checked out so you can revert changed files without contacting the server.

If you really want to do local commits you should have a look at SVK, which is built on top of Subversion and provides DVCS like features.

Solution 2:

Much of the above has become somewhat obsolete, and since this question comes up as a hit in a google search for "svn local commit" here's an update:

Consider using the package "git-svn" (along with "git-gui" if you don't know git) to make local commits both possible and easy, with full remote SVN integration. A decent overview/tutorial/use-case is here. I've just started using this process with Sourceforge projects, so I can't yet report any problems. Be sure to get the Authors file right!

EDIT: Updated link. Thanks, hdl!

Solution 3:

You could do such a thing so if you interface the SVN Server with a GIT or Mercurial Bridge. Since GIT and Mercurial are able to do local Commits you could then use them like that. Maybe check out git-svn or something similiar (I remember there being a bazaar-svn but not sure).