Персональный контроль источников через SubVersion - останови меня, прежде чем я зайду слишком далеко!

4

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

Мой домашний NAS-сервер, D-Link DNS-323, представляет собой небольшую коробку с некоторыми дополнительными сценариями и пакетами, установленными для обеспечения ежедневного резервного копирования, но у него также есть несколько недостатков, которые не позволяют использовать его, как хотелось бы , Я надеялся использовать его как мой постоянно работающий файловый сервер для домашнего и удаленного использования, но контроль разрешений довольно слабый и негибкий, и доступ к нему из-за пределов моей домашней сети ограничен SSH / SCP и FTP (который включен только временно, если когда-либо).

Поэтому я подумал про себя: что, если бы я использовал его главным образом в качестве файлового сервера на основе SVN и разрешил удаленный доступ через SSH + SVN. У меня все еще может быть общий ресурс Windows без SVN для больших файлов, таких как резервные копии моего ноутбука; но я мог бы использовать его в качестве SVN-репо для личных файлов.

Здесь вопрос заключается в том, где я могу остановиться, каковы ограничения SVN в отношении максимального размера репо или размера файлов, хранящихся в нем?

STW
источник

Ответы:

4

Джои Хесс (Joey Hess), разработчик проекта Debian, написал длинную поучительную статью об использовании subversion для личного использования: подрыв вашего homedir или сохранение вашей жизни в svn . Я думаю, что вы найдете там несколько хороших идей.

Если вы внимательно прочитаете вверху и внизу этой статьи, вы увидите, что он впервые реализовал эту идею в CVS, а теперь хранит большую часть своего домашнего каталога в git.

Даг Харрис
источник
13

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

Может быть, средство резервного копирования, такое как rsync или файл Synchronizer Unison через FTP или SSH, больше подходит для того, что вы хотите сделать.

Дафф
источник
4

В то время как Subversion для управления исходным кодом, я (AB) использовать его для резервного копирования. Есть ряд интересных ограничений, с которыми я столкнулся:

  • используя http транспорт, я иногда сталкиваюсь с лимитами передачи 2GB на извлечениях и фиксациях, но не всегда
  • в подкаталоге .svn есть вторая копия каждого файла, поэтому вы сразу удваиваете свои потребности в пространстве
  • большое количество файлов в каталоге становится очень медленным
  • хранилище subversion никогда не сжимается; он будет только увеличиваться в размере, даже когда вы «удаляете» файл, потому что он хранит историю этого файла, которая была там в прошлом

Однако даже с этими ограничениями я считаю, что это работает очень хорошо для меня. Одна интересная вещь, которую вы можете сделать на сервере, - это использовать ловушку post-commit для автоматической отправки копии каждого коммита в удаленное местоположение (используя инструмент svnadmin для создания добавочного дампа этой ревизии).

retracile
источник
О, только что вспомнил еще один: когда я делаю проверку моего домашнего каталога на новой машине, я должен убедиться, что я касаюсь индексных файлов mbox, чтобы kmail не перестраивал их, и выбрасывал флаги чтения / ответа / etc в теме. Использование maildir вместо mbox приводит к третьему недостатку, который я уже упоминал.
откат
Retracile, вы можете редактировать свой ответ, чтобы включить свой комментарий. В связанной заметке вы также можете удалить свой комментарий после включения его в ответ.
Трэвис
4

Что касается ограничений по размеру, у меня никогда не было отказа от файла. Включая размещение ISO-файлов и т. Д. Размер репо почти всегда ограничен размером жесткого диска, а не подрывной деятельностью .

В ответ на ответ Даффа : rsync не делает то, что может подрывная деятельность . Есть ли у вас Ubuntu ISO, который вы хотите иметь для записи везде, где вы есть? Большой! rsyncМожно распространять файл, он прекрасно работает. Но теперь вы обновляетесь до Ubuntu 69.88, но через неделю вы обнаружите, что он не работает на вашем старом ноутбуке 486sx . При помощи rsyncвы должны искать более старый ISO, загружать его и т. Д. С помощью Subversion вы можете просто вернуться к более старой версии файла.

Если вы собираетесь использовать Subversion для некоторых файлов, вы можете использовать все возможности и использовать его для всего. Большие файлы не так эффективны, но могут поддерживать их централизованно.

</ 2 цента>

Джек М.
источник
Вы можете делать инкрементные, версионные резервные копии с RSync, и главное было то, что есть более подходящие инструменты для обработки бинарных файловых резервных копий, чем система управления версиями SOURCE (для резервных копий я предпочитаю наоборот: пусть сервер извлекает новые резервные копии вместо о необходимости все время совершать). Я никогда не говорил, что это не работает, если вы можете жить со всеми недостатками.
Дафф
backuppc.sourceforge.net показывает, как вы можете сохранять версии резервных копий при использовании rsync.
gbjbaanb
2

Я пытался сделать толчок к использованию Subversion для других вещей, чем мой код разработки. Я понимаю, что в то время как это работает очень хорошо для пользователей дизайнеров, потому что это имеет исторический отчет о прогрессе художественного произведения. Книга, которую я купил для Subversion, начинается с упоминания о том, что они используют Subversion для всего, включая списки покупок. Несмотря на то, что я мало занимаюсь графикой, MediaWiki предоставляет те же функциональные возможности в уже простом в использовании веб-интерфейсе. Он также имеет дополнительные функции, такие как обсуждение контента. Я думаю, что у Трэка все получилось, пройдя лишнюю милю и включив вики с svn. Будучи новичком в SVN, я не столкнулся с какими-либо ограничениями, кроме дополнительного времени, необходимого для дополнительных шагов.

Джошуа К
источник
1

Раскачать! Я занимаюсь этим пару лет, и это действительно здорово! Хотя это немного заботит, но теперь, когда я получаю новую машину, я запускаю svn co, запускаю скрипт и получаю firefox и все, что мне нравится.

Хьюго
источник