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

不羁的心 提交于 2019-12-04 00:00:36

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.

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://foo@bar.org/src/project/bin
svn co svn+ssh://foo@bar.org/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.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!