#svn #tortoisesvn
Вопрос:
В настоящее время я создаю сложный проект в репо SVN, и у меня возникли некоторые проблемы с точки зрения некоторых требований к работе репо.
Мой репозиторий состоит из модулей, которые содержат идентичные структуры папок. Допустим, модуль A содержит следующую структуру папок:
- папка 1
- папка 2
- папка 3
Учитывая некоторые другие требования к организации проекта, модули объединяются в значимую конфигурацию (назовем ее конфигурацией) с помощью внешних компонентов для этих модулей, которые находятся в одном репозитории. Это означает, что, например, определенная конфигурация конфигурации A может содержать 2 модуля:
- настройка A
- модуль А
- папка 1
- папка 2
- папка 3
- модуль В
- папка 1
- папка 2
- папка 3
- модуль А
Чтобы разделить использование модулей на пользователей, я создал структуру с уровнями, в которой при извлечении, если был выбран уровень 1, будет извлечена только папка 1 модуля, или, если был выбран уровень 2, будут извлечены папки 1 и 2 модуля. Так, например, конфигурация A, проверенная в соответствии с уровнем 2, будет иметь следующую структуру:
- настройка A
- модуль А
- папка 1
- папка 2
- модуль В
- папка 1
- папка 2
- модуль А
Я провел тест с помощью скрипта python, который содержит пути к модулям и выполняет частичную проверку в соответствии с уровнем, который он получает, но, делая это, моя локальная структура становится набором отдельных проверок. В этом случае я теряю некоторые преимущества, предлагаемые внешними устройствами, что означает обнаружение изменений во внешних устройствах и возможность поменять внешний адрес.
Интересно, есть ли более интегрированный способ в svn, предпочтительно в TortoiseSVN, в котором мы можем установить переменную, соответствующую желаемому уровню, таким образом, чтобы все внешние объекты были частично извлечены, в котором извлекаются только папки, соответствующие уровню.
Я надеюсь, что описание проблемы понятно. Я долго пытался найти решение, но безуспешно! Спасибо.
Комментарии:
1. Почему бы не иметь отдельную папку для каждого уровня, а затем не назначить соответствующие внешние компоненты для каждой из этих папок? Кстати, я не думаю, что есть способ контролировать оформление заказа. Как только вы передадите URL-адрес клиенту SVN, все, что вы можете сделать, — это вручную проверить редкие выписки.
2. У вас должны быть как отдельные папки конфигурации, так и папки модулей. Все файлы, которые находятся непосредственно в этих папках, должны были бы дублироваться, но такова жизнь.