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

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

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

解决方案

肯定有一个钩子脚本可以检查区分大小写 - 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 在从用户 1 获取更新之前添加了 foo.data.sql 并且用户 2 添加了 foo.Data.sql,则在 Windows 平台上会出现此问题。

希望有帮助:)

其他提示

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

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

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

2;查看 乌龟SVN常见问题解答

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top