当某人提交非法文件名的文件时更新一个颠覆的工作副本

我正在同时使用Mac OS X和Windows 7用户的项目。 SVN被用作版本控制系统。 问题出在有人使用Mac OS X时,提交了一个包含“字符”的文件,这个字符在Mac OS文件系统下允许,但不在Windows下,因此,没有人使用Windows可以更新或者从版本库中重新签出。

有没有办法

  • 要么完全从svn删除错误修订
  • 或者通过以某种方式更改存储库上的旧版本来重命名所有版本中的文件
  • 或允许通过一些黑客在NTFS下的文件名称中的字符
  • 或者让svn服务器不允许非法的文件名

我find了一些解决scheme,使用svnadmin dumpsvnadmin load命令来删除有问题的版本。 但是,它甚至需要很长时间才能转储整个存储库。

您可以使用svn move/rename在新版本中重命名文件,所以当用户进行svn update ,他们会得到一个有效名称的文件。 实际上,修改版本库中的修订需要一些黑客,并且与SVN的精神有些相似。

防止这种事情发生的最简单的方法是在服务器中安装预先提交的钩子脚本。 在这里查看一下如何安装pre-commit钩子的一个很好的描述 。