Подтвердить что ты не робот

Использование Subversion, где хранится "фактический" исходный код?

Я просто привык к Subversion, и у меня есть фундаментальный вопрос об управлении версиями.

Я создал свой SVN-репозиторий на сервере "S", размещенном в моей сети. Предполагая, что я "импортирую" код, файлы, каталоги и т.д. С другого компьютера "А" в сети, он добавляется в мой серверный репозиторий SVN.

Я делаю проверку с другого компьютера "B" в сети, и я могу получить весь код из репозитория и т.д.

Предполагая, что я отформатирую или уничтожу ПК "А", будет ли мой исходный код доступен через проверку в B?

Если да, когда я фактически просматриваю папку моего репозитория на сервере, я не нахожу реплику папки, только директории конфигурации, db и т.д. Где данные физически хранятся на сервере S, если он вообще есть? В настоящее время размер каталога в репозитории явно намного меньше, чем папки исходного кода.

Я думаю, что VSS хранит копию фактического кода в некотором неузнаваемом формате db, git имеет возможность не требовать этого. SVN также поддерживает копию кода где-нибудь?

4b9b3361

Ответ 1

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

Вы можете восстановить исходный код, проверив чистую копию репозитория с сервера subversion на любой компьютер.

Ответ 2

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

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

и VSS просто сломан.

Ответ 3

Репозиторий физически хранится в некоторой базе данных на сервере SVN. После импорта в репозиторий данные никогда не исчезнут, кроме дефектов на сервере. Изменения в рабочих копиях не имеют значения, если только они не совершены - и даже тогда все, что когда-либо было совершено, можно найти в истории. Если вы регулярно создаете резервную копию своего репозитория, ничто никогда не исчезнет полностью.

Ответ 4

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

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

Короче говоря, не забудьте сделать периодическое резервное копирование репозитория серверов.

Ответ 5

После импорта исходных файлов он будет храниться в репозитории SVN на сервере. Поэтому, если ПК "A" будет уничтожен, вы все равно сможете получить источники из SVN. В папке "db" репозитория находятся фактические файлы. Вы можете больше узнать о структуре репозитория SVN здесь.

Ответ 6

В дополнение к другим ответам:

  • Рабочая копия на ПК B не будет автоматически обновляться автоматически.

  • Каталог репозитория не должен быть меньше полной проверки. Убедитесь, что при просмотре самого репозитория все файлы из вашей рабочей копии действительно содержатся в репозитории.