views:

1159

answers:

5

Is there any way I can check in/out of a local repository, and have those changes sync with the remote repository in the background?

Internet connection where we are is weak, and the repository is huge. When I want to browse the repository with TortoiseSVN's Repo Browser, I can wait 30 minutes to load the repository information.

Ideally, I would communicate with a local server, that would in the background/periodically sync with the remote server.

+1  A: 

Subversion supports replication to read-only slaves. See the relevant chapter in the SVN Book.

sagi
Well, that stinks. ;) I want read-write repositories.
Jason
But then you would have to resolve conflicts somehow.
Wim Coenen
+3  A: 

You could use SVK to create a local mirror of the SVN repository. The you would commit your changes to the local SVN repository (using SVN) and the push the changes to the 'real' repository using SVK.

I believe this strategy is described in Using SVK as a repository mirroring system

f3lix
+3  A: 

While I've never used this, I hear that git-svn is exactly what you want. You pull SVN once, do all your local work in git (on top of the svn checkout), and commit back to SVN when your connection is better.

basszero
+1  A: 

Another approach is to use git instead of subversion at your your remote site. Git has the ability to synchronize with subversion the way that you want. Then, you would locally check in and refresh from git, and periodically, you would commit your git repository back into the remote subversion.

The downside is that you have to learn a new version control system at your remote site. But, distributed version control systems like git, mercurial, and bzr are much better suited for your type of environment than subversion.

Clint Miller
+1  A: 

I just found this article today that talks about mirroring Subversion repositories using a tool called svnsync. Hope this helps!

Joshua Poehls