当有人提交具有非法文件名的文件时更新 subversion 工作副本
我正在与 Mac OS X 和 Windows 7 用户一起开发一个项目。使用SVN作为版本控制系统。当使用 Mac OS X 的人提交包含“字符的文件时,问题就开始了。该字符在 Mac OS 文件系统下是允许的,但在 Windows 下不允许。因此,使用 Windows 的任何人都无法从存储库中更新或重新签出。
是否存在一种方法可以
- 从 svn 中完全删除有缺陷的修订版
- ,或者通过以某种方式更改存储库上的旧修订版来重命名所有修订版中的文件
- ,或者通过某种 hack 允许 NTFS 下的文件名中包含 " 字符
- ,或者使 svn 服务器不允许非法文件名
I'维找到了一些解决方案,您可以使用 svnadmin dump 和 svnadmin load 命令来消除有错误的版本。然而,转储整个存储库也需要很长时间。
I am working on a project with both Mac OS X and Windows 7 users. SVN is used as the version control system. The problems started when someone using Mac OS X commited a file containing a " character. This character is allowed under the Mac OS file system, but not under Windows. Therefore, nobody using Windows can update or re-checkout from the repository.
Is there a way to
- either remove the bugged revisions completely from svn
- or renaming the file in all revisions by changing the old revisions on the repository somehow
- or allowing " characters in file names under NTFS through some hack
- or making the svn server disallow illegal file names
I've found some solutions where you use the svnadmin dump
and svnadmin load
commands to obliterate the buggy versions. However, it takes ages to even dump the whole repository.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以在新版本中使用 svn move/rename 重命名该文件,这样当用户进行 svn update 时,他们会得到一个具有有效名称的文件。实际上,更改存储库中的修订版本需要进行一些修改,这与 SVN 的精神相去甚远。
防止将来发生此类事情的最简单方法是在服务器中安装预提交挂钩脚本。请查看此处有关如何安装预提交挂钩的详细说明 。
You can rename the file using
svn move/rename
in a new revision so when users makesvn update
, they'd get a file with a valid name. Actually changing revisions in the repository would require some hacks and is something way far from the spirit of SVN.The easiest way to prevent this kind of thing happening in the future is to install a pre-commit hook script in the server. Check out here a nice description on how to install a pre-commit hook.