O'Reilly logo

Version Control with Git by Jon Loeliger

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Chapter 16. Using Git with Subversion Repositories

As you become more and more comfortable with Git, you’ll likely find it harder and harder to work without such a capable tool. But sometimes you’ll have to do without Git—say, if you work with a team whose source code is managed by some other version control system. (Subversion, for example, is popular among open source projects.) Fortunately, the Git developers have created numerous plug-ins to import and synchronize source code revisions with other systems.

This chapter demonstrates how to use Git when the rest of your team employs Subversion. This chapter also provides guidance if more of your teammates want to make the switch to Git, and it explains what to do if your team wants to drop Subversion entirely.

Example: A Shallow Clone of a Single Branch

To begin, let’s make a shallow clone of a single Subversion branch. Specifically, let’s work with the source code of Subversion itself (which is guaranteed to be managed with Subversion for as long as this book is in print) and a particular set of revisions, 33005 through 33142, from the 1.5.x branch of Subversion.

The first step is to clone the Subversion repository.

$ git svn clone -r33005:33142 http://svn.collab.net/repos/svn/branches/1.5.x/ svn.git

Tip

In some Git packages, such as those provided by the Debian and Ubuntu Linux distributions, the git svn command is an optional part of Git. If you type git svn and are warned that svn is not a git command, try to install the git-svn ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required