Рекурсивно находите каталоги, и для каждого из них пытайтесь получить информацию SVN. Если это успешно, не спускайтесь в каталог и печатайте имя каталога.
find -type d -exec bash -c "svn info {} > /dev/null 2> /dev/null" \; -prune -print
Будет выведен список каталогов.
Если вам нужна информация о хранилище, вы можете добавить ее в середине команды find exec.
find -type d -exec bash -c "svn info {} 2> /dev/null | grep URL" \; -prune -print
Edit:
Я нашел гораздо лучшие результаты, только проверяя наличие подкаталога .svn
. Затем svn info
вызывается один раз в конце и получает значение Path и URL. (Плюс использование -0 для предотвращения пробелов в именах файлов.)
find -type d -exec test -d "{}/.svn" \; -prune -print0 | xargs -0 svn info | grep -e '\(Path\|URL\)'