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