Прежде чем я начну: я провел много времени на многих форумах (включая переполнение стека - и да, есть много SO вопросов по организации SVN), поиску в Google и чтению документов (у меня есть несколько книг Subversion). Я до сих пор не нашел хорошего способа организовать нашу кодовую базу в Subversion. В настоящее время мы используем RCS в качестве нашей системы контроля версий, и все хранится в 1 каталоге RCS - уродливо, я знаю, - поэтому я работаю над чем-то лучшим. Я также часто использовал Subversion, поэтому я знаю, что это за возможности и как он работает. Я не решался задавать этот вопрос в течение нескольких месяцев, поскольку он не полностью связан с программированием, но, поскольку я не смог найти решение, что может быть лучше, чтобы задать свой вопрос!
В моей голове все усложняется подрывным термином «Проект». Если я хочу управлять java-проектом в subversion, для меня это имеет смысл: все java-файлы, которые объединяются в jar-файл, можно считать «Проектом» - все они принадлежат друг другу. Однако в нашей среде я не вижу простого способа определить, что такое «проект». У нас более 4000 программ, и все они в значительной степени независимы друг от друга. Многие из них являются сценариями оболочки или сценариями Perl. Некоторые из наших сценариев используют универсальные сценарии «утилиты» или «библиотеки», но по большей части все объекты кода независимы.
Один «Проект» в нашей среде может включать программы A, B и C и файл конфигурации AA. Другой проект может использовать программы C, D и E, а также конфигурационный файл BB. Еще одним проектом может быть просто изменение файла конфигурации AA или программы B. Нет способа определить, какие программы или файлы принадлежат группе. Из-за этого - я понятия не имею, как организовать наш код в Subversion. Я мог бы поместить все в основную ветку главного проекта, но затем проверка рабочей копии означает проверку всех 4000+ элементов.
Чтобы дать некоторый контекст, это для хранилища данных. Все 4000+ элементов кода необходимы для работы хранилища. Возможно, возникает определенное бизнес-требование, требующее изменения столбца, к которому осуществляется доступ в нескольких элементах, а другое бизнес-требование требует изменения нескольких других элементов (возможно, некоторых из того же самого в другом проекте).
Возможно, Subversion нам не подходит, хотя я должен верить, что это может сработать. У нас уже есть сервер Subversion для нашего веб-кода и наших программ на Java, и он прекрасно работает, потому что есть легко определяемые проекты. Я просто не могу понять, как организовать нашу основную библиотеку кода.
Надеюсь, кое-что из этого имело смысл ... Заранее спасибо за вашу мудрость!