防止Subversion中的文件大小写问题

时间:2008-09-11 08:23:02

标签: svn tortoisesvn

我们在Windows上使用Subversion时遇到了问题。开发人员提交了文件foo.Data.sql,后来另一位开发人员提交了一个名为foo.data.sql的文件。当然,这会导致Windows客户端出现问题(所有客户端都是我们环境中的Windows),因为文件在Subversion中区分大小写,但在Windows中不区分。

我们设法通过直接删除存储库中的一个文件来解决此问题,但我仍然有两个问题:

  1. 开发人员如何使用Windows客户端执行此操作?他是否有无效的工作副本,或者客户端是否有错误(TortoiseSVN)?
  2. 我们如何防止这些更改进入存储库(即有人写了一个钩子脚本来执行文件大小写问题的健全性检查)?

3 个答案:

答案 0 :(得分:4)

肯定有一个钩子脚本可以检查区分大小写 - Sourceforge将它作为其中一个选项。快速谷歌出现了:http://www.subversionary.org/howto/using-check-case-insensitive-py-on-windowshttp://svn.apache.org/repos/asf/subversion/trunk/contrib/hook-scripts/case-insensitive.py

如果用户1添加了foo.data.sql并且用户2在从用户1获得更新之前添加了foo.Data.sql,则会在Windows平台上出现此问题。

希望有所帮助:)

答案 1 :(得分:2)

在Windows上,文件不区分大小写,但保留大小写。您可以重命名文件,更改大小写,Windows将保留更改。 Subversion尝试创建第二个文件时出现此问题。 Windows报告该文件已存在。

如果你想将这两个文件合并为一个副本,而不是删除存储库中的文件,你可以重命名存储库中的坏文件(即附加一个像'.temp'这样的后缀),更新客户端,合并到好文件中,然后删除坏文件。

答案 2 :(得分:0)

1;这是可能的,因为这两个文件来自两个开发人员。一种是使用不同的情况重命名或创建文件,并且在提交期间没有意识到它将是添加而不是提交更改。

2;查看TortoiseSVN FAQ