15

有几次,我遇到了我的一个 SVN 存储库损坏的情况,我们可以在不知道我们做了什么的情况下对项目的某些版本或分支做任何事情。所以我在问什么会导致存储库损坏?


似乎客户端之间的不兼容可能会导致问题,尤其是字符集。

4

7 回答 7

12

基本上有三种不同的情况:

  1. 硬件故障(内存、fs 损坏等)
  2. 对服务器具有登录访问权限的用户可能会损坏存储库文件。
  3. 颠覆中的错误。

有故障的硬件通常是最难发现的,除非是最明显的情况。案例 2 可以通过限制对服务器的登录访问来预防。其他一切都是Subversion 中的错误。(这包括客户端和服务器之间的兼容性问题。)您永远不能仅通过使用 Subversion 客户端来破坏存储库(即使客户端存在错误,IMO 也不行)。

于 2008-12-03T18:31:06.877 回答
4

潜在的文件系统损坏或有人乱搞内部 svn 目录?

于 2008-12-03T01:31:09.620 回答
3

硬件故障的可能性总是存在的。内存中的位错误之类的事情可能会导致无声损坏,而不是简单地使计算机崩溃;如果 svn 服务器进程受到影响,则存储库可能会损坏。

于 2008-12-03T10:43:23.250 回答
2

如果存储库不在 svn 服务器本地磁盘上,而是在 NFS 上,如果它们使用 berkley db 格式,它们可能会损坏。在 svn 1.5 中,FSFS 成为新存储库的默认设置 - 生活在非锁定文件系统(如 NFS)上非常快乐。

于 2010-11-16T15:33:09.283 回答
0

我已经发生过几次了。如果客户端离开而服务器需要很长时间来做某些事情,SVN 似乎不能很好地应对。我不知道确切的细节,但我已经kill -9对我认为是只读的进程做了一些 s 并且最终不得不svnadmin cleanup在服务器再次响应之前运行一个。

于 2008-12-03T01:39:19.320 回答
0

这在基于 repo 的情况下很常见file://,但是如果您有单个用户/服务访问 repo,则不会发生这种情况。

于 2008-12-03T03:15:14.540 回答
0

我有一个回购腐败,我花了一段时间才弄清楚。在服务器上,我不小心将 repo 中 .svn 目录的所有者更改为某个不相关的用户。在那之后,SVN 给了我损坏错误,直到我删除并重新创建了 repo。即使在我更正之后。 捶着额头

于 2010-09-01T18:44:30.520 回答