Eurrghh!
Разделите все на отдельные проекты / библиотеки / библиотеки / артефакты - как хотите, чтобы они назывались, и следуйте рекомендуемой структуре SVN:
/ (root)
/Application1
/branch
/tag
/trunk
/Application2
/branch
/tag
/trunk
/LibraryX
/branch
/tag
/trunk
/LibraryY
/branch
/tag
/trunk
Тогда, когда приложение ожидает, что одна из этих библиотек или зависимостей будет находиться в каталоге внутри своей структуры, используйте свойство svn: external для его извлечения.
Например, если вы хотите, чтобы скомпилированная dll из LibraryX находилась в папке с именем dll в Application1, вам нужно добавить следующее свойство svn: external в свой репозиторий по адресу / Application1 /:
svn://repositoryname/LibraryX/buildoutput/ dll
Когда вы извлекаете приложение 1, вы получаете все его файлы, плюс в вашу рабочую копию добавляется папка с именем dll, которая будет извлечена из LibraryX / buildoutput /
Вы также можете проверить каждый проект в своей папке и выбрать некоторые файлы. Но это требует немного другого подхода - все папки с одинаковой родительской папкой на вашем локальном компьютере будут проверены следующим образом:
Application1 (checked out from svn://repositoryname/Application1/trunk)
LibraryX (checked out from svn://repositoryname/LibraryX/tag/stable)
Итак, если вам нужен конкретный файл из результатов сборки LibraryX, вы добавите:
svn:externals ../LibraryX/build/thelibfile.dll libfile.dll
.. как свойство для извлеченной рабочей копии Application1, которая извлекает libfile.dll из LibraryX и помещает его в корень рабочего каталога Application1.
Обратите внимание, что основным преимуществом этого является то, что с помощью тегов вы можете заставить свои приложения извлекать специально помеченные версии своих зависимостей. В приведенном выше примере разработчик может работать на магистрали Application1, но используя стабильную версию библиотек. Когда следующая стабильная версия библиотеки будет создана с помощью повторных тегов, просто обновите ее, и она будет подключена ко всем машинам ваших разработчиков в пределах их рабочих копий для разработки.
Внешние файлы работают только для отдельных файлов, когда вы извлекаете их и ссылаетесь на них из локальных рабочих копий, вы не можете делать это непосредственно из хранилища, как вы можете с папками ... пока.
Вы можете вносить только один внешний файл с версией Subversion 1.6.x