2008-12-13 3 views
2

Возможно ли, что клиент Subversion может каким-либо образом сломать репозиторий? Это может быть любой деструктивный сбой, но он должен быть таким, чтобы он не мог быть восстановлен без восстановления репозитория из резервной копии.Может ли клиент SVN разорвать репозиторий?

Очевидно, что удаляем все, а затем проверяем, что его легко исправить просто откатом, поэтому я ищу что-то большее.

ответ

6

Клиент Subversion может разговаривать с сервером для доступа к репозиторию или использовать URL-адрес file:// для прямого доступа к репозиторию. В первом случае сервер отвечает за репозиторий, поэтому клиент не может напрямую «разбить» его. Во втором случае клиент отвечает за репозиторий, поэтому ошибки в клиенте могут повлиять на репозиторий.

+0

Я думаю, что ваш ответ означает: он может, но только если вы напрямую обращаетесь к файлу: // protocol. Я прав? – 2008-12-13 21:10:58

2

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

Однако, игнорируя контроль доступа, клиенты могут, конечно, перемещать/копировать/удалять содержимое репозитория в новых версиях. Старые изменения продолжают существовать. Теоретически вы можете всегда восстанавливать эти старые версии, либо с разумным использованием команд svn, либо администратором, удаляющим более поздние версии.

В общем, это довольно безопасно, но смотреть на контроль доступа: http://svnbook.red-bean.com/en/1.5/svn-book.html#svn.serverconfig.httpd.authz

Примечание: поскольку Грег намекал, это немного более сложным при использовании локального хранилища, поскольку клиент имеет прямой доступ к файловой системе в хранилище. По сути, вы должны доверять Subversion.

1

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

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