Как хранилище SVN может стать поврежденным? - PullRequest
15 голосов
/ 03 декабря 2008

Уже несколько раз я попадал в ситуации, когда один из моих репозиториев SVN был поврежден, и мы могли делать что угодно с некоторыми версиями или ветвями проекта, даже не зная, что мы сделали. Поэтому я спрашиваю, что может привести к повреждению хранилища?


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

Ответы [ 7 ]

12 голосов
/ 03 декабря 2008

Существует три основных случая:

  1. Неисправное оборудование (память, повреждение fs и т. Д.)
  2. Пользователь с правами доступа к серверу может повредить файлы репозитория.
  3. Ошибки в Subversion.

Неисправное оборудование обычно наиболее трудно обнаружить, кроме как в наиболее очевидных случаях. Случай 2 можно предотвратить, ограничив доступ к серверу. Все остальное это ошибка в Subversion. (Это включает проблемы совместимости между клиентом и сервером.) Вы должны никогда не иметь возможности испортить хранилище, просто используя клиент Subversion (даже если в клиенте есть ошибка, IMO).

4 голосов
/ 03 декабря 2008

Потенциальное повреждение файловой системы или кто-то копается во внутренних каталогах svn?

3 голосов
/ 03 декабря 2008

Всегда существует вероятность неисправности оборудования. Такие вещи, как битовые ошибки в памяти, могут вызывать тихое повреждение, а не просто сбой компьютера; если затронут процесс svn-сервера, хранилище может быть повреждено.

2 голосов
/ 16 ноября 2010

Если репозитории находятся не на локальном диске серверов SVN, а в NFS, они могут быть повреждены, если они используют формат Berkley DB. В SVN 1.5 FSFS стала по умолчанию для новых репозиториев - она ​​совершенно счастлива, живя на неблокирующих файловых системах, таких как NFS.

0 голосов
/ 01 сентября 2010

У меня была коррупция в репо, и мне потребовалось некоторое время, чтобы разобраться. На сервере я случайно сменил владельца .svn dir в репозитории на какого-либо не связанного с ним пользователя. После этого SVN сообщал мне об ошибках, пока я не удалил и не создал заново репозиторий. Даже после того, как я это исправил. чмокает лоб

0 голосов
/ 03 декабря 2008

Это довольно распространено в репозиториях на основе file://, однако, если у вас есть один пользователь / сервис, доступ к репо, этого не произойдет.

0 голосов
/ 03 декабря 2008

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

...