2010-04-19 5 views
3

Я работаю над приложением, основной задачей которого было бы обеспечить управление контролем источника. Моя идея - использовать SVNKit для регистрации файлов и регистрации. Однако, работая с SVNKit, я понял, что у меня нет той скорости, которую я искал. Например, когда разработчики создают ChangeRequest, который может включать изменение в 3-40 файлов, мне нужно создать структуру каталогов, распределенную по 32 папкам. Для этого требуется около 50 секунд. Еще один пример: после создания запроса на изменение разработчики могут добавлять файлы в запрос. Копирование даже одного файла из Trunk в ветку занимает около 6-7 секунд. Мой вопрос: у кого-нибудь был такой опыт и что вы сделали, чтобы улучшить производительность? Кроме того, мой подход правильный?Subversion для контроля версий

ПРИМЕЧАНИЕ: Я использую протокол «http» и не могу использовать протокол «svn».

+0

Вы пытались найти причину производительности, которую видите? CPU/RAM на сервере/клиенте, пропускная способность сети ...? –

ответ

1

Как правило, SVNKit является полной Java реализация подрывной деятельности. И да, это намного медленнее, чем родной. Так что если вы не ограничены только кодом Java, вы можете попробовать:

  • Использовать собственный API SVN C.
  • Использование SVN Java привязок

Фор Дополнительную информацию можно найти: http://svnbook.red-bean.com/en/1.5/svn.developer.usingapi.html окно "SVNKit Versus javahl"

Также обратите внимание ... протокол практически не влияет на производительность (на самом деле).

0

Я не знаю деталей (какие файлы, как большие отдельные файлы?), Но SVN не так уж медленный.

Мы используем его здесь и отлично работаем.

Любопытно, где находится ваш сервер SVN? Внутри или вне вашей сети? Это может быть медленным из-за сети?

+0

Я нахожусь в месте нахождения клиента, поэтому он находится в сети. Но для людей, не являющихся клиентами, это замедлит ситуацию. Можете ли вы рассказать мне, сколько он обычно принимает для вас, когда в сети: 1. Создайте папку в репозитории. 2. Скопируйте файл из хранилища в репозиторий. –

+0

Я бы сказал, что займет около 1-2 секунд пустую папку при совершении. Если в папке много файлов, потребуется время, чтобы добавить их, а затем зафиксировать. Копирование файла в ветку, я делаю это непосредственно на сервере вместо того, чтобы копировать локально, а затем совершать. Я использую инструменты командной строки svn. –

-2

Это действительно не так много информации, в основном прошел вперед слух:

  • SVN имеет серьезные проблемы масштабирования как число пользователей в трех или четырех цифр. Люди склонны извлекать копии, и есть некоторые плохие варианты масштабирования.
  • PerfForce, коммерческий продукт, не имеет проблем с масштабированием.
  • GIT не имеет проблем с масштабированием, хотя его легко повредить.
  • Mercurial хорошо работает и хорошо масштабируется. Затем появляется чья-то лошадь с высокой лошадью и проверяет в очень больших файлах. Он также имеет проблемы с CR/LF.

Это все слухи.

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