Miscellaneous Notes on Working with Subversion

There are a few more things that you might want to know when you’re using git svn.

svn:ignore Versus .gitignore

In any version control system, you need to be able to specify files that you want the system to ignore, such as backup files, compiled executables, and so on.

In Subversion, this is done by setting the svn:ignore property on a directory. In Git, you create a file called .gitignore, as explained in The .gitignore File.

Conveniently, git svn provides an easy way to map from svn:ignore to .gitignore. There are two approaches to consider:

  • git svn create-ignore automatically creates .gitignore files to match the svn:ignore properties. You can then commit them, if you’d like.

  • git svn show-ignore finds all the svn:ignore properties in your whole project and prints the entire list. You can capture the command’s output and put it in your .git/info/exclude file.

Which technique you choose depends on how covert your git svn usage is. If you don’t want to commit the .gitignore files into your repository—thus making them show up for your Subversion-using coworkers—use the exclude file. Otherwise, .gitignore is usually the way to go, because it’s automatically shared by everyone else using Git on that project.

Reconstructing the git-svn cache

The git svn command stores extra housekeeping information in the .git/svn directory. This information is used, for example, to quickly detect whether a particular Subversion revision has already ...

Get Version Control with Git now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.