Ответ 1
Я также искал список репозиториев в SVN. Я сделал что-то вроде этого в командной строке:
~$ svn list https://www.repo.rr.com/svn/main/team/gaurav
Test/
Test2/
Test3/
Test4/
Test5/
Test6/
Я ищу способ поиска всего сервера subversion.
У меня уже есть кусочек головоломки для поиска в репозитории. Теперь мне нужно сделать это для каждого репозитория.
Мне нужно получить доступ к этому списку из некоторой оболочки unix script (perl, bash и т.д.)
Я также искал список репозиториев в SVN. Я сделал что-то вроде этого в командной строке:
~$ svn list https://www.repo.rr.com/svn/main/team/gaurav
Test/
Test2/
Test3/
Test4/
Test5/
Test6/
Если вы включите svn через apache и директиву SVNParentPath, вы можете добавить директиву SVNListParentPath On в ваше местоположение svn, чтобы получить список всех репозиториев.
Ваш apache conf должен выглядеть примерно так:
<Location /svn>
DAV svn
SVNParentPath "/net/svn/repositories"
# optional auth stuff
SVNListParentPath On # <--- Add this line to enable listing of all repos
</Location>
Не ваш доступ к SVN работает так же, как веб-сервис? Когда я попадаю в верхнюю директорию моего SVN-сервера, я получаю страницу, которая, по существу, представляет собой содержание всех работ. Это неупорядоченный список, который я могу просто просканировать.
РЕДАКТИРОВАТЬ: Здесь, как бы я сделал это из командной строки:
wget http://user:[email protected]/ -O - | grep \<li\>
Иногда вам может потребоваться проверить временную метку для того, когда было обновлено репо, для получения этой удобной информации вы можете использовать опцию svn -v (verbose), как в
svn list -v svn://123.123.123.123/svn/repo/path
Если ваш сервер Apache, вы должны иметь возможность настроить его, чтобы увидеть список репозитория с viewvc - это самый простой, другой существуют сложные интерфейсы, но это не ваша цель здесь.
В некоторых версиях ViewVC является вариантом стандартной установки теперь, например, из Collabnet.
Изменить. Никогда не упоминайте мою предыдущую идею выше, Peter имеет гораздо более простой способ отправки списка репозиториев.
Оттуда вам нужно:
К сожалению, в этом случае я не могу придумать что-то более прямолинейное.
Есть примеры на SO о том, как извлечь текст из HTML-страниц в Python, это было бы хорошим вариантом, поскольку Python также имеет привязки для SVN, чтобы выполнить поиск репозитория - вы все равно можете вызвать svn
непосредственно из Python, если хотите.
Если Python не является вашей чашкой чая, вам придется обрабатывать это по-разному с помощью инструментов GNU (wget, затем инструменты синтаксического анализа или существующие пакеты), я не могу им помочь, Carl дал вам более подробную информацию в этом посте).
Если вы знаете свой путь вокруг Java, вы можете использовать SvnKit, чтобы просматривать, искать и знать, что с вашего сервера Subversion.
После этого вы можете упаковать свою программу и вызвать ее либо с помощью задачи Ant, либо оболочки script.
Это довольно "грубая сила", но как только вы овладеете SvnKit, вы действительно можете сделать много классных вещей.
В моей компании они не настроили сервер для предоставления списка репозиториев, поэтому svn list
работал для определенного репозитория, но не на более высоком уровне, чтобы перечислять все репозитории.
Однако они установили FishEye, который предоставляет вам графический интерфейс, в котором перечислены хранилища https://www.atlassian.com/software/fisheye
Это платный вариант, поэтому он не для всех, но функциональность хороша.