Mercurial忽略文件重命名(更改案例)

时间:2013-12-13 20:26:48

标签: mercurial

我正在使用一个从Windows家伙继承的项目。这是在Hg版本控制下。它有一些不一致的文件名约定,我正在尝试修复,所以我将一个名为jquery.fullpage.js的文件重命名为jquery.fullPage.js(只是大写的“P”)以加入该jQuery库的原始作者。

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

我知道我可以通过删除文件,提交,恢复文件并重命名,再次提交来修复此问题,但这似乎是修复它的粗略方法。

我该如何解决这个问题?

4 个答案:

答案 0 :(得分:27)

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

答案 1 :(得分:15)

如果你正在重命名一个文件,你可以按照hg rename的说法使用。

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

hg rename Foo tmp
hg rename tmp foo

另一种解决方法是使用中间删除。但这是气馁,因为您将丢失文件历史记录。

答案 2 :(得分:0)

如果您使用的是操作系统X,并且您使用的是区分大小写但不区分大小写的HFS,那么Hg(也不是我发现的Git)会接受更改。我使用Linux,我的同事使用OS X,我们遇到了与Git类似的问题。通过中间重命名是一种解决方法,或者使用您建议的中间删除。

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

答案 3 :(得分:-1)

也有 hg rename --after oldFile newFile  如果更改已经到位。