2009-08-20 1 views
1

Я изучаю большой программный проект и как он развивается. У меня есть доступ к репозиторию subversion для анализа кода, но я хотел бы иметь копию этого репозитория на моей машине. Я хочу сделать это, чтобы я не висел на производстве svn, а также потому, что я предполагаю, что мне будет быстрее работать против локального репо, чем с удаленным.Зеркалирование репрессий subversion для собственной машины

Итак, два вопроса:

  1. Как я могу оценить размер репо со всеми изменениями до сих пор?
  2. Как скопировать репо, чтобы получить локальную историю изменений?

ответ

1

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

Таким образом:

  1. Размер на локальной машине будет столь же большим, как размер на диске удаленного хранилища. Если у вас есть доступ к файловой системе на удаленном компьютере, вы можете посмотреть это.
  2. Это происходит автоматически, когда у вас есть правильная настройка svnsync.
+0

Я на компьютере с Windows, поэтому я также использовал этот другой учебник: http://dirk.net/2007/09/07/replicating-a-subversion-repository-to-a-windows-target-server/ – greye

5

svnsync должен сделать трюк.

+0

svnsync разрешает доступ только для чтения, и я не уверен, что это то, что он хочет –

+2

Для изучения того, как развился крупный программный проект, копия только для чтения очень вероятна, что он хочет. – orip

2

Вы можете использовать git svn clone, чтобы получить локальный репозиторий Git, включая всю историю.

+0

+1, я не знаю, почему это было приостановлено, потому что это правильный ответ. Ему не нужен локальный репозиторий svn, просто локальный репозиторий любого типа. – orip

+0

git-svn на самом деле довольно хороший способ синхронизации репозитория svn локально. – JesperE

+4

Зачем вставлять git в это? – nickf

1

Вы можете использовать «svnsync» для репликации удаленного репозитория.

См. Документацию here.

3

Вы можете создать локальное (только для чтения) зеркало полного хранилища, используя svnsync.

Необходимые шаги объясняются в svn-book. Основные шаги:

# Create a local mirror repository. 
svnadmin create local_mirror 

# Create pre-revprop-change hook. 
echo > local_mirror\hooks\pre-revprop-change.cmd 

# Associate local mirror with remote repository. 
svnsync init local_mirror repo_url 

# Sync the repositories. 
svnsync sync local_mirror 

При использовании другой VCS как мерзавец будет работать тоже, это позволяет использовать ваши Svn инструменты, как обычно. Кроме того, для оценки размера репозитория вам понадобятся одни и те же алгоритмы хранения. Каждый VCS имеет свой собственный способ хранения вещей, если вы используете другой, чем svn, размер вашего местного репо, скорее всего, не будет соответствовать размеру исходного репо.

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