3

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

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

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

3 回答 3

4

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

希望有帮助:)

于 2008-09-11T08:38:12.017 回答
2

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

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

于 2008-09-11T08:44:32.173 回答
0

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

2;检查TortoiseSVN 常见问题

于 2008-09-11T08:32:54.853 回答