2010-01-22 3 views
3

У меня есть хранилище, сконфигурированный так:Комплексная процедура проверки SVN?

+---CollectionA 
| \---project1 
|  \---trunk 
|   \---sourcecode 
|  \---tags 
|   \---rel-1 
| \---project2 
|  \---trunk 
|   \---sourcecode 
|  \---tags 
| \---project3 
|  \---trunk 
|   \---sourcecode 
|  \---tags 
|   \---rel-1 

Я хотел бы оформить проект любой помеченный rel-1 в этом проекте. В этом случае я бы получил project1 и project3 в моей рабочей области, но не project2.

Все projectN являются проектами Java Eclipse.

Я использую Eclipse/Subversive, но я открыт для использования Tortoise или командной строки (windows), если мне нужно.

Редактировать: В настоящее время мне нужно будет пройти через 30 проектов и проверить каждый тег отдельно. Есть ли способ сделать это, не прорабатывая каждый проект отдельно?

+0

Не уверен, что это ваш случай, или нет, но необходимость делать такие вещи для примерно 30 проектов - это знак для рассмотрения изменений в структуре репозитория ... – maxim1000

+0

@ maxim1000, мы разрабатываем приложения на основе OSGi, где один комплект фактически повторно используется в нескольких проектах. Формат репозитория * должен * сделать задачу прямой, к сожалению, у меня возникли проблемы с buckminster в качестве инструмента автоматической сборки. –

ответ

2

Я думаю, вам нужно будет написать сценарий командной строки, чтобы это сделать. Я не знаю, как это сделать, используя Tortoise или интегрированный инструмент IDE/SVN, так как это необычный (по моему опыту) тип проверки.

Вы можете запросить svn в командной строке о том, существует ли каталог с помощью команды svn.

Затем вы можете проверить вывод (возможно, он возвращает ненулевое значение, если каталог не найден, или вы можете проанализировать выходной поток), чтобы определить, существует ли этот тег. Добавьте проекты, содержащие тег, в список, а затем проверьте эти проекты.

Что-то вроде этого:

For each project in myProjects: 
    exec "svn list " myRepositoryPath + "/" + myProject + "/tags/directory" 
1

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

Я играл с идеей создания модуля, который содержит «проектные» каталоги с внешними элементами для конкретных тегов/ветвей/соединительных линий комбинации модулей проектов, но я никогда не делал этого.

0

В дополнении к предыдущим ответам, вы могли бы пользователь скриптов для создания Eclipse, Team Set Project файла, напрямую импортировать все проекты сразу. Не удалось найти ссылку на «формат psf», но вы получите эту идею с помощью this example и проверки справки eclipse.

1

Если вы собираетесь это сделать, вы можете создать другой каталог в своем репозитории и присвоить ему свойство svn:externals. Перечислите все соответствующие проекты как внешние. Затем, когда вы заходите в новый каталог, вы получите все проекты, проверенные внутри него.