2

我尝试在 VisualSVN Server、Windows Server 2012 中为非常旧的Subversion 存储库设置 http 服务器。

在 VisualSVN 服务器 (apache+svn 1.8) 中导入时,它说

Can't open file 'C:\Reps****\format':系统找不到指定的文件。

我在 \db 中找到了名为“format”的文件并选择它进行导入,然后它说

预期的存储库格式“3”或“5”;找到格式“2”

我尝试通过 svnadmin v1.5 升级 repo,它还说

预期的存储库格式“3”或“5”;找到格式“2”

如何将 repo 升级为新格式?

4

1 回答 1

3

$REPO/db/format处的文件与 Subversion 给您的错误文件不同,该文件位于$REPO/format处。$REPO/format中的文件是存储库格式,$REPO/db/format中的文件是文件系统格式。

存储库格式编号具有以下值(从repos.h复制):

/* Repository format number.

   Formats 0, 1 and 2 were pre-1.0.

   Format 3 was current for 1.0 through to 1.3.

   Format 4 was an abortive experiment during the development of the
   locking feature in the lead up to 1.2.

   Format 5 was new in 1.4, and is the first format which may contain
   BDB or FSFS filesystems with a FS format other than 1, since prior
   formats are accepted by some versions of Subversion which do not
   pay attention to the FS format number.
*/

由于错误消息告诉您,唯一受支持的格式是 3 和 5(因为兼容性保证仅从 1.0 开始)。

如果$REPO/format文件是唯一丢失的文件,这将很容易修复。我们实际上可以从上面给出的信息中相当容易地确定它应该是两个选项中的哪一个。

由于您声明存储库是 fsfs 格式,那么如果文件系统是格式 1,它应该只是格式 3 存储库。因此,如果该文件的第一行是 1,请查看$REPO/db/format,那么您需要设置存储库格式文件为“3\n”,否则设置为“5\n”。但是,在这种情况下,由于您将$REPO/db/format文件复制到$REPO/format,因此错误消息告诉我它是格式 2 文件系统。所以你应该在$REPO/format中有 "5\n" 。

请注意,$REPO/format文件应仅包含两个字符,即格式号的 ASCII 字符和换行符。

最后一个提示。您无需升级存储库即可将其与 Subversion 服务器一起使用。服务器向后兼容旧存储库。如果您不升级存储库格式,某些功能可能不可用。有关详细信息,请参阅 Subversion发行说明

于 2013-11-14T06:04:53.897 回答