【问题标题】:Can SVN handle case sensitivity issues?SVN 可以处理区分大小写的问题吗?
【发布时间】:2010-10-10 08:28:41
【问题描述】:

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

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

This question 类似,但从 Windows 端来看同样的问题,这不是这里的问题。

【问题讨论】:

  • 在我看来,在同一个目录中有两个文件只是大小写不同肯定会引起混淆。可以告诉用户不要这样做吗?
  • +1 强制颠覆忽略大小写 - 无论如何,您不应该仅区分文件。

标签: svn case-insensitive


【解决方案1】:

您可以尝试使用预提交挂钩,例如 this one(不过自己没有尝试过)。

我认为已经排除了让您的用户注意它的可能性?我一直在 Linux 上工作,但通常认为文件名不区分大小写,即。 e.对来说,不管操作系统怎么想,它们都是一样的。

【讨论】:

  • 啊,谢谢。是的,我们很小心,但任何防止这种情况发生的措施肯定是一个加分项。
【解决方案2】:

Subversion 1.7 现在似乎可以在 Windows 上处理 case only renames

【讨论】:

    【解决方案3】:

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

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

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

    【讨论】:

    • 问题只是大小写不同的两个文件不适用于macs或windows机器。我认为您指的是更多的应用程序(F90)?我同意名称应以适当的大小写引用。
    【解决方案4】:

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

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

    【讨论】:

    • 我发布了对这个问题的另一个版本的回复,我现在找不到,基本上表明如何在 Windows 上编译 SVN,因此名称确实区分大小写。由于 NT4 通过了 POSIX 一致性测试,这就是在这里,只是很难做到。
    • 我不确定这是否真的是一个技术问题,我认为这是一个功能(我是 Linux 用户)。对于人类来说,大写或小写的相同单词具有相同的含义,您的操作系统应该理解这一点。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多