防止Subversion中的文件大小写问题
我们在Windows上使用Subversion遇到问题。一个开发人员提交了一个文件foo.Data.sql,后来另一个开发人员提交了一个名为foo.data.sql的文件。自然,这会在Windows客户端(在我们的环境中所有客户端都是Windows)上引起问题,因为文件在Subversion中区分大小写,但在Windows中不区分大小写。
我们设法通过直接删除存储库中的一个文件来解决此问题,但是我仍然有两个问题:
- 开发人员如何使用Windows客户端执行此操作?他的工作副本是否无效,或者客户端(TortoiseSVN)中是否有错误?
- 我们如何防止此类更改进入存储库(即,是否有人编写了一个钩子脚本来对文件大小写问题进行完整性检查)?
解决方案
回答
1;这是可能的,因为这两个文件来自两个开发人员。一种是在不同情况下重命名或者创建文件,并且在提交过程中并未意识到这将是添加而不是提交更改。
2;检查TortoiseSVN常见问题
回答
肯定有一个钩子脚本可以检查是否区分大小写Sourceforge将其作为选项之一。一个快速的谷歌出现:http://www.subversionary.org/howto/using-check-case-insensitive-py-on-windows和http://svn.apache.org/repos/asf/subversion/trunk/ contrib / hook-scripts / case-insensitive.py
如果在从用户1获得更新之前,用户1添加了foo.data.sql,用户2添加了foo.Data.sql,则在Windows平台上会出现此问题。
希望能有所帮助:)
回答
在Windows上,文件不区分大小写,但保留大小写。我们可以重命名文件,更改大小写,Windows将保留更改。当Subversion尝试创建第二个文件时,会出现问题。 Windows报告该文件已经存在。
如果要将两个文件合并为一个副本,而不是删除存储库中的文件,则可以在存储库中重命名损坏的文件(即,添加后缀" .temp"),更新客户端,合并到好的文件,然后删除坏的文件。