SVN no longer writes .svn in all sub-folders?

8.6k views Asked by At

I recently upgraded my SVN client from 1.6.9 to 1.7.2 and after converting to the new format, I noticed that there is no longer a .svn every sub-folders. For my particular configuration this is not very convenient.

Is there a way to undo this or revert to the old behavior where each subfolder from a CO would have a .svn ?

2

There are 2 answers

2
Jimmy Miller On BEST ANSWER

Subversion 1.7 features a complete re-write of the working copy metadata management system of Subversion, code named WC-NG. The old system was one of the first parts of Subversion written, and over time had grown difficult to maintain and extend. WC-NG is intended to provide an immediate performance improvement, while also enabling many future feature enhancements.

A key feature of the changes introduced in Subversion 1.7 is the centralization of working copy metadata storage into a single location. Instead of a .svn directory in every directory in the working copy, Subversion 1.7 working copies have just one .svn directory—in the root of the working copy. This directory includes (among other things) an SQLite-backed database which contains all of the metadata Subversion needs for that working copy.

Even though the data is stored in a structured format, the relationships between the data are complex. We highly discourage external tools from modifying the data held in this database, as such modification is likely to result in working copy corruption.

Read more here.

0
beppu On

The most straightforward way to get subversion to write out .svn directories in every directory is to downgrade your subversion to a version before the 1.7 series. Subversion 1.6.23 was the last version to have the behavior you want.

Another way to accomplish this that will work with Subversion 1.7 and later is to individually check out each subdirectory of your project. For example, if you had a project with a directory structure like:

project
`- bin
`- etc

You could check it out by doing something like:

mkdir project
cd project
svn co svn+ssh://[email protected]/src/project/bin
svn co svn+ssh://[email protected]/src/project/etc

This is only tolerable if you have few directories and their organization is shallow.

Otherwise, downgrading to an older subversion is your best bet.