Может ли проверка SVN быть многопоточной? - PullRequest
10 голосов
/ 12 ноября 2010

У меня есть репозиторий с 30k + небольшими файлами, и я могу получить доступ к серверу только через Интернет через https://. Оформить заказ очень, очень медленно. На порядок часов. Скорость подключения к Интернету составляет ~ 20 Мбит / с, локальный компьютер - многоядерный 3Ghz и HD со скоростью 10 000 об / мин.

(svn:// протокол не подходит, к сожалению.)

Итак, мой вопрос:

Может ли svn выполнять многопоточную параллельную проверку рабочей копии?

Похоже, что проверка svn происходит последовательно, последовательно. Между каждым файлом есть небольшая задержка, и я полагаю, что это http запрос / ответ и, возможно, задержки моей локальной файловой системы. (Возможно, небольшая задержка файловой системы сервера?)

Спасибо

Ответы [ 5 ]

10 голосов
/ 12 ноября 2010

Я не знаю команду, но вы могли бы написать небольшой Python (или инструмент по вашему выбору), чтобы помочь.«Список SVN» дает вам имя каждого подкаталога.Затем вы можете сделать проверку каждого подкаталога в фоновом режиме, чтобы они происходили параллельно.Возможно, вам придется сделать это на 2-м / 3-м / любом другом уровне, в зависимости от структуры вашего каталога и от того, где находятся все крошечные файлы.

Я предполагаю, что у вас нет файлов 30K в одном каталогеКонечно.

4 голосов
/ 27 января 2014

Вы можете использовать GNU Parallel для параллельных проверок SVN.Пример -

svn ls 'https://foo/bar' | parallel svn export 'https://foo/bar/'{}

Это запустит параллельные проверки svn в каталоге 'bar'.

0 голосов
/ 14 марта 2012

Может случиться, что разрозненные проверки (более новые версии SVN,> = 1.6 или около того!) Помогут повысить производительность?

time svn co --depth=empty http://URI

cd svn_repo_root/

time svn up --depth=infinity *

Кроме того, возможно, полезно снабдить сервер и / или клиента твердотельными накопителями, чтобыработать с плохой производительностью операционной системы или реализации сервера / клиента SVN в случае многократного поиска большого количества маленьких файлов (из-за задержки поиска, полностью доминирующей в операциях с файловой системой в случае небольших файлов - поиск гораздо меньше проблем с твердотельными накопителями).

И, возможно, стоит заранее проверить все файлы на сервере перед проверкой, написав скрипт для анализа всего дерева хранилища на сервере.

0 голосов
/ 30 ноября 2010

Не сильно ли это зависит от времени пинга до сервера?

Если пинг длинный, то, возможно, вы не сможете ничего с этим поделать.

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

0 голосов
/ 12 ноября 2010

Хотя я не могу придумать причину, по которой SVN не может извлекать более одного файла за раз, я не знаю ни одного клиента SVN, который делает это.

...