今天遇到一个svn错误:Revision file lacks trailing newline
,当你往某些FSFS类型的subversion仓库提交4GB或者更大的文件时就会出现这个问题。虽然你这个问题在这里有记录,但是网上所的各种办法都没法让你的svn仓库恢复正常。
下面这些步骤是我用来让svn回滚到以前正常版本的方法,但是不保证一定有效。我按照下面的步骤可以让仓库恢复之前正常的版本。
- 可以的话,在你开始之前备份你的仓库,以防万一。
- 找到仓库的
../repo/db
目录 - 复制
current
文件到仓库之外。 - 更改仓库里
current
文件里的数字到一个较小的值,如:原来第一个数字是2259
,就将其改为2258
。这里有可能会有两个数字,只改第一个。 - 到
../repo/db/revs
文件夹下,将原来current
里的值对应的文件夹移到仓库外,如上面的例子,将名称为2259
的文件夹移到仓库外部。 - 到
../repo/db/revprops
文件夹下执行与第五步同样的操作。将revprops
下的2259
文件夹移出仓库。 - 视你svn的不同,有可能需要重启你的svn服务等。
- 在你确认你的仓库可以正常工作了之前,不要删除前面第3,5,6步里移动出去的文件。
- 在你提交大文件到仓库的时候,将其分小块提交。此外,使用新版本的svn也可以纠正此 4GB限制