svn: local commits

20,118

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).

Solution 4

That is why it is called centralized. You could try using a repo inside a repo. One is local and the other is remote. You then commit the entire inner repository to the remote.

Solution 5

Further to BobC's answer, for mercurial you would use hgsubversion.

Share:
20,118
Adrian Panasiuk
Author by

Adrian Panasiuk

BBC News | How Poles cracked Nazi Enigma secret

Updated on August 11, 2020

Comments

  • Adrian Panasiuk
    Adrian Panasiuk almost 4 years

    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" ?

  • jon skulski
    jon skulski almost 15 years
    Do you have experience with SVK? I've used it a bit and it seemed alright, but I don't have much faith in smooth svn uses any more. I'd imagine anything built on top of it would be just as wobbly.
  • Catskul
    Catskul about 13 years
    @jskulski: I have no experience with SVK, but their "antiFUD" page address your question: svk.bestpractical.com/view/SVKAntiFUD
  • Seth
    Seth almost 13 years
    +1 - for noting redundancy. I think I even read somewhere that SVN will be introducing local commits.
  • H_JOHN
    H_JOHN over 11 years
    This answer is a little misleading. It is not because SVN is centralized that local commits are not possible. It is simply an omitted implementation detail. Treating local commits as a queue of changesets that can get batch-pushed to the repo is technically feasible (svk shows this)-- it would just change the UX to the point where SVN becomes more "difficult" to use (using the standard workflow). SVN chooses to optimize on ease of use, not functionality; but it could be hacked into Subversion without breaking anything.
  • newenglander
    newenglander almost 10 years
    @thirtythreeforty: Archive.org has a copy of the webpage: web.archive.org/web/20130924234957/http://utsl.gen.nz/talks/‌​…
  • Pototo
    Pototo over 9 years
    What if you create a local server in your computer so that you can commit to it, and then when you are ready to commit to the original repository, then you just commit the regular way. Is that possible?
  • hdl
    hdl over 8 years
    Link has been moved to git-scm.com/book/en/v2/…
  • Ben
    Ben over 8 years
    Mercurial and Bazaar can both work with SVN repositories as well, actually. So look into those if you don't enjoy git's interface.
  • Ben
    Ben over 8 years
    Also since you mentioned git-gui, if you're on Windows check out TortoiseGit (or TortoiseHg if you choose that route).