Mercurial忽略文件重命名(更改大小写)

Mercurial忽略文件重命名(更改大小写),mercurial,Mercurial,我正在处理一个从Windows公司继承的项目。它在Hg版本控制下。它有一些不一致的文件名约定,我正在尝试修复这些约定,因此我将名为jquery.fullpage.js的文件重命名为jquery.fullpage.js(大写字母“P”),以坚持jquery库的原始作者 但是,Hg不会将小写-大写的更改检测为重命名,甚至不会检测为已删除/创建的文件。因此,我无法做出改变并推动它的实施。它在本地工作,但在我推送的远程登台服务器上,它给出404个错误。显然,遥控器上的文件没有重命名为大写的P 我知道我可

我正在处理一个从Windows公司继承的项目。它在Hg版本控制下。它有一些不一致的文件名约定,我正在尝试修复这些约定,因此我将名为
jquery.fullpage.js
的文件重命名为
jquery.fullpage.js
(大写字母“P”),以坚持jquery库的原始作者

但是,Hg不会将小写-大写的更改检测为重命名,甚至不会检测为已删除/创建的文件。因此,我无法做出改变并推动它的实施。它在本地工作,但在我推送的远程登台服务器上,它给出404个错误。显然,遥控器上的文件没有重命名为大写的P

我知道我可以通过删除文件、提交、恢复文件和重命名、再次提交来修复此问题,但这似乎是一种粗糙的修复方法


我该如何解决这个问题?

这是一个箱子折叠问题。尝试通过Mercurial重命名该文件:
hg rename jquery.fullpage.js jquery.fullpage.js

如果您使用的是区分大小写但不区分大小写的HFS,那么hg(我发现不是Git)将接受更改。我使用Linux,我的同事使用OSX,Git也有类似的问题。进行中间重命名是一种解决方法,或者按照您的建议使用中间删除


我相信Jakub关于使用hg本身来实现重命名的建议会起作用,但我没有尝试过,因为我没有安装hg。

如果你要重命名文件,你最好像前面所说的那样使用
hg rename

但是(至少在Windows上),如果要重命名文件夹,则不能直接重命名。常见的解决方法是使用中间层:

hg rename Foo tmp
hg rename tmp foo
另一个解决方法是使用中间删除。但是不鼓励这样做,因为这样会丢失文件历史记录。

还有
hg重命名--oldFile之后是newFile

如果更改已经到位。

事实上,我在OSX上。它没有检测到变化。远程登台服务器在Linux上,因此登台服务器工作正常。我对这个解决方案不太满意。虽然我已经阅读了更多关于大小写折叠问题的内容,并且它似乎是不区分大小写的文件系统的问题。我使用了
mv
,但它仍然没有导致我运行的系统
pull-uv
对其进行重命名。哦,我正在尝试重命名一个地址为的文件夹/目录。那么正则表达式解决方案呢?假设我从不同的文件夹(所有图像)更改了许多扩展文件,那么在这两个重命名之间是否需要提交?这对我不起作用。Mercurial抱怨newFile不存在(即使它显然存在),请确保您编写的完整路径区分大小写。