Ответ 1
Короткий ответ: нет.
Длинный ответ: см. http://svnbook.red-bean.com/en/1.5/svn.advanced.sparsedirs.html и сделайте свои проверки в зацикленном script.
У нас есть единственный репозиторий SVN с несколькими связанными проектами. Так вот...
\repo
\Project1
\branches
\tags
\trunk
\Project2
\branches
\tags
\trunk
\Project3
\branches
\tags
\trunk
Я хотел бы проверить ствол каждого проекта в моей рабочей области без папок ветвей/тегов.
\workspace
\Project1
\trunk
\Project2
\trunk
\Project3
\trunk
Есть ли способ сделать это, не проверяя каждый туловище отдельно?
Короткий ответ: нет.
Длинный ответ: см. http://svnbook.red-bean.com/en/1.5/svn.advanced.sparsedirs.html и сделайте свои проверки в зацикленном script.
Вы можете использовать опцию -N, которая игнорирует подкаталоги. Вы можете запустить это в первый раз, когда проверяете источники:
svn co -N http://path/to/repo
cd repo
for f in Project1 Project2 Project3; do
svn up -N $f
svn up $f/trunk
done
И для обновления соединительных линий в более позднее время:
svn up repo/*/trunk
Это работает со всеми клиентами SVN. Если вы используете клиент SVN 1.5.x, вы также можете посмотреть "редкие каталоги", задокументированные в "Разреженные каталоги" (I 'm не разрешено размещать ссылки еще: -C), что позволит вам запустить "svn update" в каталоге репозитория.
Это прекрасно подействовало на bash. Обратите внимание, что я переименовал выходные папки, чтобы сделать Eclipse более счастливым при импорте проектов.
for f in `svn ls http://path/to/repo`; do svn checkout http://path/to/repo/${f}trunk $f; done
EDIT: просмотрите SVN Book для следующих разделов
Отметьте 2 разных каталога на две отдельные рабочие копии:
$ svn checkout file:///tmp/repos/test file:///tmp/repos/quiz
A test/a
A test/b
Checked out revision 2.
A quiz/l
A quiz/m
Checked out revision 2.
$ ls
quiz test
Отметьте 2 разных каталога на две отдельные рабочие копии, но поместите их в каталог под названием "рабочие копии":
$ svn checkout file:///tmp/repos/test file:///tmp/repos/quiz working-copies
A working-copies/test/a
A working-copies/test/b
Checked out revision 2.
A working-copies/quiz/l
A working-copies/quiz/m
Checked out revision 2.
$ ls
working-copies
У меня также была необходимость проверить только сундуки репозитория SVN, поэтому я написал эту партию Windows: Оформить покупку только сундуков репозитория SVN
Он проверяет соединительные линии на плоскую структуру каталогов (если магистраль уже существует локально, она обновляется). Пожалуйста, прочитайте комментарии к пакету для более подробной информации.
Я подозреваю, что вам все равно придется рассказывать об этом (checkout) каждой отдельной магистрали, но вы можете, по крайней мере, также проверить рабочее пространство (чтобы получить все проекты, и поэтому вы можете обновлять и т.д. по всему миру), используя разреженные каталоги.
Обнаружено, что это работает, а не выше:
checkoutList.bat:
for %%G in (projectA, projectB, projectC) do (
echo %%G
mkdir %%G
svn co http://your.repo/path/%%G/trunk %%G
)
Щелкните правой кнопкой мыши папку - SVN Check out. Поместите URL-адрес и нажмите кнопку "Выбрать элемент". С помощью флажков выберите подпапки, которые вы хотите включить.