问题 SVN可以处理区分大小写的问题吗?


有没有办法强制SVN不区分大小写?我们遇到一个问题,用户从linux环境提交文件“file.ext”和“File.ext”。工作得很好。但是,问题是当MAC OSX或Windows上的用户尝试更新/结帐时。这两个文件被认为是相同的,并且操作失败了。

有没有办法让SVN首先阻止提交“File.ext”和“file.ext”?

这个问题 类似但从Windows端看同样的问题,这不是问题。


1870
2018-02-27 14:52


起源

在我看来,在同一目录中有两个文件只有大小写不同,无论如何都必然会引起混淆。可以告诉用户不要这样做吗? - Michael Kohne
关于强制subversion忽略大小写的+1 - 你不应该只在案例中区分文件。 - stephen mulcahy


答案:


您可以尝试预提交挂钩,例如 这个 (但是我自己没试过)。

我认为让用户注意它已被排除?我一直在Linux上工作,但通常认为文件名不区分大小写,i。即至 ,无论操作系统如何思考,它们都是一样的。


11
2018-02-27 15:17



啊,谢谢。是的,我们很小心,但任何防止这种情况的措施都是肯定的。 - ccook
+1用于使用提交挂钩 - abe


Subversion 1.7现在似乎正在处理 案例只重命名 在Windows上。


2
2017-10-18 02:59





我会说你正在以错误的方式看事情。这里最好的解决方案是将文件保持为区分大小写的方式。如果用户在Linux或Solaris中签出,该项目将无法使用。

另外,考虑一些依赖于区分大小写的语言编译器,Java编译器会抱怨文件名,因为我相信其他语言会。

另一个问题是部署,如果部署在* NIX系统上会怎样。那你麻烦了!


0
2018-02-27 15:16



问题只是两个文件不同,只是对mac或Windows机器不起作用。我想你是指更多的应用程序(F90)?我同意应该通过适当的案例引用名称。 - ccook


我认为技术问题确实存在于Mac和Windows方面,即他们的文件系统不区分大小写。至少在Mac上,您可以将文件系统重新格式化为HFS +,并启用区分大小写。我不是Windows用户,但在Windows的本机文件系统中可能有类似的选项(它仍然是NTFS吗?)。

如果您不足以控制开发人员的环境以强制他们使用区分大小写的文件系统进行格式化,那么我认为您唯一的选择是预提交挂钩,用于检查重复(不区分大小写的比较,显然)文件名。同一目录 要么 修改项目以不在同一目录中使用具有相同名称和不同大小写的文件。


0
2018-02-27 18:59



我发布了对此问题的另一个版本的回复,我现在无法找到,基本上表明如何在Windows上编译SVN,所以名称确实区分大小写。由于NT4通过了POSIX一致性测试,所以在这里,只是很难搞定。 - Joshua
我不确定这是否真的是技术问题,我认为这是一个功能(我是Linux用户)。对于人类来说,大写或小写的相同单词具有相同的含义,您的操作系统应该理解这一点。 - Hanno Fietz