【问题标题】:How to fix case sensitivity in Windows Git repository如何在 Windows Git 存储库中修复区分大小写的问题
【发布时间】:2011-12-20 22:36:52
【问题描述】:

我们正在专门在 Windows 机器上进行开发,并在 Werver 2008 机器上托管 MSysGit。我们使用 Redmine (BitNami Redmine Stack) 作为我们的问题跟踪/项目管理系统。

虽然我们对 Git 和开发机器完全没有问题,但由于看起来像是区分大小写的问题,我们确实对存储库在 Redmine 中的显示方式存在问题。

Redmine 存储库显示“重复”(不完全重复)树,如下所示,可能是由于某些文件使用小写路径提交(出于某种我不知道的原因)

+-Develop
|  |
|  +-Library .....
|  |
|  +-AutomatedTests .....
|
+-develop
   |
   +-library .....

虽然这不会像克隆一样危及生命,而且在 Windows 中签出也不存在此问题,但在 Redmine 中浏览代码却相当烦人。

是否有一种方法(考虑到它是一个非常大的存储库很容易) a) 在显示树时使 redmine 大小写不敏感。 或者 b) 修复小写路径的问题(我们对 Camel 大小写进行了标准化)

【问题讨论】:

    标签: git redmine


    【解决方案1】:

    您是否尝试在.git/config 中添加ignorecase = true

    【讨论】:

    • 已经设置为 true,我认为这可能是 Redmine 以这种方式显示的,我知道它会提取 git 变更集并根据它们填充 MySql 表。所以也许归结为 Redmine/MySql 看到路径不同,而 Windows 不会,所以我的问题是真的是我对 Redmine 做些什么,还是开始重命名 GIT 中的文件?
    • 在 git config 中忽略大小写是为了比较文件时的大小写
    • @RobertChrist 实际上,ignorecase 确实使 git 能够看到文件名大小写的变化。几分钟前我刚刚证实了这一点。但是,如果您在 Windows 资源管理器中进行重命名,这还不足以解决问题。 (因为它只让它看到新文件,因此导致仓库中有两个版本,而不是将其识别为简单的重命名/大小写更改)
    【解决方案2】:

    Redmine 会将这些视为不同的地方。即使您打开了忽略大小写,在进入目录和指定文件时始终使用制表符完成。使用git filter-branch 固定外壳。这将改变所有引用指向的位置,但此时这样做可能是件好事。

    【讨论】:

    • 我们使用 tortoise git 客户端和 smartGit 客户端,只在必要时使用命令行,从未使用过 git tab-completion 所以不确定这有什么好处。
    • 这样做的好处是,如果您完成了选项卡,您将拥有一致的命名并且没有重复。
    • 很遗憾,我无法在我们的开发团队中强制执行此操作。此外,我们需要保留所有文件历史记录,并且不需要在日志中使用 --follow 来通过重命名来跟踪历史记录(这都是在理想的世界中,否则我可能会考虑修补 redmine 显示)
    猜你喜欢
    • 2020-08-27
    • 2022-09-27
    • 2021-07-09
    • 1970-01-01
    • 1970-01-01
    • 2020-04-01
    • 2012-10-19
    • 1970-01-01
    • 2012-02-12
    相关资源
    最近更新 更多