Subversion FSFS repo中缺少格式文件

时间:2013-11-14 02:58:20

标签: svn visualsvn-server fsfs

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

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

  

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

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

  

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

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

  

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

如何将repo升级为新格式?

1 个答案:

答案 0 :(得分: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存储库。因此,如果第一行的话,请查看 $ REPO / db / format 如果该文件为1,则需要将存储库格式文件设置为" 3 \ n"否则将其设置为" 5 \ n"。但是,在这种情况下,由于您将 $ REPO / db / format 文件复制到 $ REPO / format ,因此错误消息告诉我它是格式2文件系统。所以你应该有" 5 \ n"在 $ REPO /格式

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

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