gpt4 book ai didi

visual-studio-2010 - Windows7 上 Mercurial/TortoiseHG 中奇怪的区分大小写的目录名称行为

转载 作者:行者123 更新时间:2023-12-04 18:22:38 26 4
gpt4 key购买 nike

我有一个 TortoiseHG (2.3.2) 存储库,在我的 Windows7 Ultimate(32 位)机器上包含一个名为“cv2”的根目录。当我在“cv2”的不同子目录中添加新文件时,TortoiseHG 将“cv2”显示为“cv2”或“CV2”,具体取决于目录。

例如,如果我将一个名为“tom.cs”的文件添加到以下目录,我会在 TortoiseHG 中得到以下结果:

Physical Directory                 TortoiseHG Filename
...\cv2\Common\tom.cs cv2/Common/tom.cs
...\cv2\tom.cs CV2/tom.cs
...\cv2\WinClient\tom.cs cv2/WinClient/tom.cs
...\cv2\WinService\tom.cs CV2/WinService/tom.cs

我不知道这是什么时候开始的,但这意味着我现在已经提交到“cv2”和“CV2”,导致存储库中有两个单独的目录(我猜我对此无能为力)。

存储库包含一个解决方案,在子目录中有 3 个项目(“cv2”是其中之一,还有“cp2”和“NotificationService”)。我刚刚发现解决方案文件的目录名称是“CV2”而不是“cv2”。现在已经改变了,因为它阻止了“Diff”在 Visual Studio 中的工作......但是从一开始就是这样,并且自初始提交以来就没有改变。不幸的是,我不记得当时我是否重命名了 Windows 目录……我可能有。

对于“CV2”或“cv2”这取决于它是哪个目录的差异,我有什么办法吗?我尝试通过命令提示符重命名 Windows 目录但没有成功。我的印象是 Mercurial 在 Windows 机器上运行时忽略了区分大小写,但我想我被误导了。

我是该项目中唯一的开发人员,因此不会有任何更改弄乱其他任何人的危险。

最佳答案

是的,Mercurial 在不区分大小写的文件系统上会忽略文件名大小写,但它仍然必须在存储库中存储带有某些大小写的文件名。

使用 Mercurial 2.2-rc(参见 the wiki 了解如何在 Windows 中运行候选版本的说明),您将能够运行

hg rename CV2/tom.cs cv2/tom.cs

为下一次提交安排“重命名”。该文件不会在磁盘上移动——因为它已经在一个不区分大小写的文件系统的正确位置——但是重命名将被记录在历史记录中,并且新的 checkout 将在磁盘上具有正确的大小写。

more instructions在 wiki 中,包括 caseguard extension以后可以用来保护自己。然而,这主要应该通过 Mercurial 2.2 来解决,与以前的版本相比,它将有更多的代码来处理案例折叠问题。

关于visual-studio-2010 - Windows7 上 Mercurial/TortoiseHG 中奇怪的区分大小写的目录名称行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10339059/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com