Как консолидировать несколько скрытых.каталоги svn с Subversion 1.7+

по словам примечания к выпуску Apache Subversion 1.7:

вместо a .каталог svn в каждом каталоге рабочей копии, Subversion 1.7 рабочие копии имеют только один .каталог-в SVN в корне рабочей копии.

допустим, в репозитории есть несколько каталогов, и когда я сначала проверяю, я только выборочно проверяю определенные каталоги. Это, как говорится в документации, создает только один .svn скрыто папка в каталоге верхнего уровня.

Если, однако, я позже решу проверить другой каталог, после завершения проверки будет другой .каталог svn в недавно проверенном каталоге.

из этого следует, что если я попытаюсь сделать фиксацию с корневого уровня, он будет знать только о каталогах, которые были первоначально проверены. Мне также придется совершить для любых последующих проверок индивидуально.

есть ли вообще измените это поведение или сделайте их скрытыми .каталоги svn сливаются вместе? Или мне нужно будет сделать что-то вроде проверки всей структуры каталогов репозитория при первом выполнении проверки?

1 ответов


короткий ответ: Нет. Каждый из них представляет собой отдельную кассу и имеет собственную базу данных. Я уверен, если вы поняли глубокую магию, скрытую внутри .svn каталог, вы можете munge его, чтобы делать то, что вы хотите. Однако, в отличие от версий Subversion 1.1 до 1.6, структура этого .svn каталог намного, намного сложнее и не так легко понять.

в вашем случае лучше всего проверить все обратно и сделать новую проверку, чтобы включить оба проекта.

если вы хотите делать это на регулярной основе, что вы должны делать это с помощью --depth= на svn co и --set-depth= на svn update.

например, я проверяю базовый каталог, но я не хочу ничего другого:

$ svn co --depth=immediates http://svn.vegicorp.com/svn/base_prod
A base_prod/.classpath
A base_prod/.settings
A base_prod/foundation
A base_prod/client
A base_prod/server

это проверяет .settings и и foundation, client и server справочники, но ничего больше. Это быстро, и я не проверяю много вещей, которые я не хочу.

теперь, я хочу работать на сервер:

$ cd base_prod
$ svn update --set-depth=infinity server

это обновление мой каталог сервера, но оформить заказ вся структура каталогов. Теперь я могу работать с server, но у меня нет foundation или client файлы занимают место.

позже, я хотел бы сделать некоторую работу в foundation:

$ svn update --set-depth=infinity foundation

теперь у меня есть .