Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

Tags:

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 ?

like image 913
MikeJ Avatar asked Jan 30 '12 20:01

MikeJ


People also ask

Where is .SVN folder?

- the only . svn folder is in the root folder now, and this contains all of the info for the checkout. You should now be able to simply copy the folder and check it in.

How do I delete a .SVN folder?

To remove a file from a Subversion repository, change to the directory with its working copy and run the following command: svn delete file… Similarly, to remove a directory and all files that are in it, type: svn delete directory…

How do I disconnect from SVN?

Process. Select the project root folder and select Team > Disconnect from the context menu. A dialog is presented asking if you want to remove the SVN meta information from the file system. If you want to reconnect to the remote repository at a later time, choose Do not delete the SVN meta information.


2 Answers

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.

like image 116
Jimmy Miller Avatar answered Oct 20 '22 00:10

Jimmy Miller


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.

like image 22
beppu Avatar answered Oct 20 '22 00:10

beppu