Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Are there any automated SVN->GIT syncing services?

There's an SVN open-source project which I have read-only access to, and I'd like to create a GIT mirror of that project up to date on GitHub.

I know how to set up the initial mirror and then keep it up to date with git svn rebase, but that still requires having a server set up somewhere with a cron job running to handle the syncing, setting up monitoring to make sure the server is up and the cron job is running, periodically upgrading to the latest git release, etc.

Before I reinvent the same wheel that every other SVN->GIT mirror has had to, I was wondering if there are any services (free or paid) which will automate SVN->GIT mirroring for me. Know of any?

Obviously an automated service can't merge my changes-- all my changes are happening in a separate repo (or perhaps a separate branch in the same repo). I'm just looking for a way to automate the SVN interaction and create an exact mirror that others can clone.

like image 241
Justin Grant Avatar asked Oct 05 '10 05:10

Justin Grant


People also ask

Can you use Git and SVN together?

git-svn is a specialized tool for Git users to interact with Git repositories. It works by providing a Git frontend to an SVN backend. With git-svn, you use Git commands on the local repository, so it's just like using normal Git. However, behind the scenes, the relevant SVN commands are sent to the server.

Which is best SVN or Git?

SVN is better than Git for architecture performance, binary files, and usability. And it may be better for access control and auditability, based on your needs.

Why do people prefer Git over SVN?

Many people prefer Git for version control for a few reasons: It's faster to commit. Because you commit to the central repository more often in SVN, network traffic slows everyone down. Whereas with Git, you're working mostly on your local repository and only committing to the central repository every so often.

Is SVN and Git are same?

The difference between Git and SVN version control systems is that Git is a distributed version control system, whereas SVN is a centralized version control system. Git uses multiple repositories including a centralized repository and server, as well as some local repositories.


1 Answers

I think the responsibility for this should fall into the hands of the people maintaining the project. See for instance how Apache support their projects with Git mirrors.

On the other hand, there isn't that much "invention" to do here, I think. If you have a server that can poll continuously to the SVN repository for changes, doing a git-svn rebase and push to github is fairly straight forward. I doubt any companies specialize in setting up this (at least, I haven't seen any).

On a side-note, when you want to share your changes, you ought to not push to the Git-mirror. It's better to either do git-svn dcommit back to SVN, or send a patch to the developers. If you push to the SVN fetching repo, it'll mess up git-svn, I believe. Like you say, bi-directional Git-SVN syncing can't be automated.

like image 193
Thomas Ferris Nicolaisen Avatar answered Oct 03 '22 00:10

Thomas Ferris Nicolaisen