Subversion FSFS 存储库中缺少格式化文件



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

在 VisualSVN Server (apache+svn 1.8) 中导入时,它说

无法打开文件"C:\Reps****\format":系统找不到 文件指定。

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

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

我尝试通过 svnadmin v1.5 升级存储库,它还说

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

如何将存储库升级到新格式?

$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/格式化文件是唯一缺少的文件,这将相当容易修复。 我们实际上可以从上面给出的信息中相当容易地确定它应该是两个选项中的哪一个。

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

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

最后一个提示。 你不需要升级仓库就可以在 Subversion 服务器上使用它。 服务器向后兼容旧存储库。 如果不升级存储库格式,某些功能可能不可用。 有关详细信息,请参阅 Subversion 发行说明。

最新更新