views:

452

answers:

4

What is the best approach for working at a customers site (with several people) where there maybe not internet access the whole time and using a subversion repository?

(Migrating to Git or Mecurial is out of the question at the moment)

But wouldn't it be possible to leverage something like, for instance the Git SVN Integration, to create a proxy which acts like a subversion repository for the clients and may be used at the end to synchronize the changes back to subversion? Is there already something like that available?

+3  A: 

I think svk may provide what you are looking for.

pgb
is svk still alive? http://svk.bestpractical.com/recent/changes doesn't look very promising. On the other hand http://svk.bestpractical.com/view/UsingSVKAsARepositoryMirroringSystem sounds very much like my use case.
Mauli
I don't use it, so I'm not sure. The latest version is available here http://search.cpan.org/dist/SVK/ and is dated as of October 2008.
pgb
I saw that too, but a outdated website is indicator for bad health of a project.
Mauli
I agree. You may want to ask the guys in this question http://stackoverflow.com/questions/808803/svk-checksum-mismatch about their experiences.
pgb
A: 

You may be able to use SVK which is a set of Perl scripts built upon Subversion that offers some DVCS-like functionality. I have used SVK before but only in a very simple way. I understand that it can do this sort of offline proxy operation.

Greg Hewgill
+1  A: 

Actually, there is a tool in Git called git-svn. You can find more information here: http://www.kernel.org/pub/software/scm/git/docs/git-svn.html

You use git as your primary VCS, and than sync with SVN repository.

Marcin Cylke
But I don't want to use git on the client side right now. Thats the whole point of my question.
Mauli
I've misinterpreted the line:"But wouldn't it be possible to leverage something like, for instance the Git SVN Integration, to create a proxy which acts like a subversion repository for the clients"
Marcin Cylke
The thing is, if the clients had to change to git as well, each one would have to learn the git conventions, the buildserver would have to be reconfigured, and so on. My intention is just to point the name of our subversion repo to the proxy and none of the clients would realize that the actual subversion server isn't there.
Mauli
Unfortunately there is no git-svnserve (yet) for having Git being a server for Subversion client (equivalent to git-cvsserver for CVS access)
Jakub Narębski
There is a git-cvsserver? Neat! But git-svnserver would be exactly what I needed in my case. Maybe somebody is working on it ...
Mauli
A: 

Not enough rep to comment yet, but I wanted to point out that svk is officially 'dead'; the project is no longer being improved by the previous maintainer, which was pretty much one guy. Essentially, the maintainer of the project said: "svk was cool, but now everyone knows that you should use distributed tools, so it's not worth maintaining anymore."

The official 'end of life' style blog post can be found on Best Practical's website, in their blog post on the topic.

That said, svk is probably still the right tool. Even if a git-svnserver existed, you wouldn't be able to do multiple commits remotely using the SVN client. However, learning SVK isn't really all that different from learning git. In the end, I think that git-svn is probably the tool you want, because your use case -- Using the SVN client to commit multiple changes then push to a server -- isn't possible. The backend can stay SVN or what have you, but you're going to have to learn some different client, and git is probably the right one.

Christopher Schmidt