如何将v2升级到v3 FSFS颠覆文件系统


9

首先,我尝试将分支与主干重新集成(使用TortoiseSVN),但收到错误消息“查询合并信息需要FSFS文件系统架构的版本3;文件系统E:/ MyRepository /仅使用版本2”。

真的不可能在较早版本的Subversion中重新集成分支吗?还是有另一种方法?

无论如何,如何将文件系统从版本2升级到版本3?


Answers:


6

您没有指定服务器正在运行的Subversion版本。但是根据您在问题中提供的消息,它可能是1.4.x版本或更旧的版本。我不记得是否提供了用于从1.4.x到1.5.x转换的升级命令,但是确保您的存储库从版本2到版本的可靠文件方式是转储和加载。但这没什么大不了,无论如何,您都想安装1.6.x以安装最新版本。因此,这是您需要执行的步骤:

  • 如果尚未升级到Subversion 1.6.x
  • 使用svnadmin dump转储现有存储库
  • 创建一个新的仓库,将其命名为_new
  • 使用svnadmin load加载旧仓库的转储中的新仓库
  • 将uuid文件从旧存储库复制到新存储库
  • 将旧存储库重命名为_old
  • 将新存储库重命名为

有关具体示例,另请参见Subversion FAQ http://subversion.apache.org/faq.html#dumpload

那应该让您得到照顾,而uuid文件将使您的客户免于惊慌。进行svn更新以确保。


2
来自svnadmin help load消息:--force-uuid : set repos UUID to that found in stream, if any。简而言之:无需处理文件
Hubert Kario '02

@Hubert Kario:是的,命令行具有该选项。但是,并非所有的GUI客户端都这样做。而且,如果您可以在服务器端做到这一点,那么这将使用户更轻松。但是,下次我遇到该问题时,我会牢记这一切换。谢谢你的提示!
jgifford25 2011年

创建新存储库时,请注意设置权限。例如,如果您通过apache mod_svn访问存储库,apache在用户“ www”,“ www”组下运行,并且以“ fred”身份登录,则可能需要类似以下内容:sudo chown -R fred:www myrepository后跟sudo chmod g+wto myrepository/db/repcache.dbmyrepository/db/uuid
xgretsch

8

升级Subversion存储库不需要转储/加载。使用svnadmin upgrade命令:

svnadmin upgrade <path-to-repos>

注意:svnadmin upgrade“仅执行完成此任务所需的最少工作量,同时仍保持存储库的完整性。虽然转储和后续负载保证了最优化的存储库状态,但svnadmin upgrade不会。-另请参见svnadmin升级文档


1
注意,但是,这“仅执行完成此任务所需的最少工作量,同时仍保持存储库的完整性。虽然转储和后续负载保证了最佳的存储库状态,但svnadmin升级不能。” -又见svnbook.red-bean.com/en/1.7/svn.ref.svnadmin.c.upgrade.html
约尔格

1
注意,同样,请使用svnadmin upgrade进行“您应该始终在备份之前备份您的存储库”,而使用转储/装载,则隐式地进行了备份。
约尔格(Jörg)

5

伊万(Ivan)有个不错的技巧,我尝试过,而且非常简单。

svnadmin upgrade <path-to-repos>

我在Ivans示例中错过的一件事可能对其他人有用:

例如

<path-to-repos> = C:\repos\theRepo
(ie. NOT C:\repos\theRepo\db)

不要将svnadmin指向db目录,而是指向包含db目录的目录。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.