2012-01-30 5 views
1

У меня есть более 250 проектов SVN. Мне нужно проверить с моего сервера, и мне было интересно, есть ли способ автоматизировать процесс. Все проекты находятся в одном файле:Как я могу проверить несколько репозиториев SVN в одной команде?

данные/
..project1
..project2
..project3

т.д.

Есть ли команда, которую я мог бы сделать в команде для автоматизации процесса? Выполнение этого вручную в 250 раз было бы серьезной болью.

Спасибо!

+1

Я полагаю, что _'projects'_ вы имеете в виду _repositories_? Я предполагаю, что это лишь одна из причин, по которой рекомендуется создать одно корневое репо и добавить к нему подрепопорты. –

+0

Я согласен с приведенным выше комментарием. Если они просто проекты в одном хранилище, вы просто проверяете корень репозитория. Если они разные репозитории, я думаю, вам нужно написать сценарий. – ken

ответ

1

Недостаточно определения 1 'meta'-repo, со всеми проектами, определяемыми как внешние, я не могу придумать решение pure-svn.

В зависимости от вашего доступа к серверу могут быть использованы и другие методы, например с SSH:

for repo in `ssh [email protected] 'ls /var/svn-repos'`;do svn co <method of connecting/path>/$repo $repo;done; 

Короче: вам нужен метод, не Svn перечислить все операции РЕПО.

1

Вам нужно научиться использовать клиент командной строки. Он поставляется вместе с TortoiseSVN, но вам нужно убедиться, что он установлен, потому что программа установки предлагает его как дополнительный компонент.

C:> СВН помогают фотографии
фотографии (со): Проверьте рабочую копию из хранилища.
использование: контроль URL [@REV] ... [PATH]

Если указано, REV определяет, в какой ревизии URL является первым
посмотрел вверх.

Если PATH опущено, базовое имя URL-адреса будет использоваться как
пункт назначения. Если указано несколько URL-адресов, каждый из них будет проверен
в подкаталог PATH, с именем подкаталога
, являющимся базовым именем URL-адреса.

Короче говоря, вы должны будете использовать ваш любимый текстовый редактор, чтобы создавать линии, как это:

svn checkout https://example.com/path/to/repos/project1^
svn checkout https://example.com/path/to/repos/project2^
svn checkout https://example.com/path/to/repos/project3^
... 
svn checkout https://example.com/path/to/repos/project250^
c:\path\to\working-copies 

..., а затем либо сохранить как * .bat файл или скопировать и вставить в запрос командной строки. (The ^ символ просто уловка, чтобы позволить командам многострочный, вы также можете написать все в одной строке.)

Личные мысли: это трудно поверить, что есть заостренный стрижкой босс там что ожидает Вас работать над 250 различными проектами. Скорее всего, у вас есть 250 настроек одного и того же продукта и наличие 250 репозиториев является следствием некоторого плохого решения в прошлом. Что бы ни случилось, удачи.

Обновление: Очень возможно, что командная строка Windows имеет максимально допустимый размер команды. Если вы хотите остаться в стороне, напишите 250 разных линий svn checkout.

+1

_ «На компьютерах под управлением Microsoft Windows XP или более поздней версии максимальная длина строки, которую вы можете использовать в командной строке, составляет 8191 символ. На компьютерах под управлением Microsoft Windows 2000 или Windows NT 4.0 максимальная длина строки, которую вы можете использовать в командной строке, составляет 2047 символов.'_ http://support.microsoft.com/kb/830473 –

+0

svn checkout url1 url2 url3 и т.п .. работал! Мне нужно было выводить список всех URL-адресов, чтобы заставить его работать. Большое спасибо! – user1178343

+0

Предпочтение отдается 250 отдельным командам, так как вы можете легко устранить некоторые из них, проверить/обработать ошибки и т. Д. –

Смежные вопросы