今天遇到一个svn错误:Revision file lacks trailing newline,当你往某些FSFS类型的subversion仓库提交4GB或者更大的文件时就会出现这个问题。虽然你这个问题在这里有记录,但是网上所的各种办法都没法让你的svn仓库恢复正常。

下面这些步骤是我用来让svn回滚到以前正常版本的方法,但是不保证一定有效。我按照下面的步骤可以让仓库恢复之前正常的版本。

  1. 可以的话,在你开始之前备份你的仓库,以防万一。
  2. 找到仓库的../repo/db目录
  3. 复制current文件到仓库之外。
  4. 更改仓库里current文件里的数字到一个较小的值,如:原来第一个数字是2259,就将其改为2258。这里有可能会有两个数字,只改第一个。
  5. ../repo/db/revs文件夹下,将原来current里的值对应的文件夹移到仓库外,如上面的例子,将名称为2259的文件夹移到仓库外部。
  6. ../repo/db/revprops文件夹下执行与第五步同样的操作。将revprops下的2259文件夹移出仓库。
  7. 视你svn的不同,有可能需要重启你的svn服务等。
  8. 在你确认你的仓库可以正常工作了之前,不要删除前面第3,5,6步里移动出去的文件。
  9. 在你提交大文件到仓库的时候,将其分小块提交。此外,使用新版本的svn也可以纠正此 4GB限制
Last modification:April 12, 2020
如果觉得我的文章对你有用,请随意赞赏