我正在使用一个从Windows家伙继承的项目。这是在Hg版本控制下。它有一些不一致的文件名约定,我正在尝试修复,所以我将一个名为jquery.fullpage.js
的文件重命名为jquery.fullPage.js
(只是大写的“P”)以加入该jQuery库的原始作者。
但是, Hg不会将小写 - 大写更改检测为重命名,甚至不会检测为已删除/创建的文件。结果,我不能承诺改变并推动它。它在本地工作但在我推送的远程登台服务器上,它给出404错误。显然,遥控器上的文件没有重命名为大写P。
我知道我可以通过删除文件,提交,恢复文件并重命名,再次提交来修复此问题,但这似乎是修复它的粗略方法。
我该如何解决这个问题?
答案 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
如果更改已经到位。