1

我正在使用 mercurial+mq,在 Win+OSX 上,EOL 问题正在杀死我。我已经激活了 EOL 扩展,添加了 .hgeol,如下所示:

[patterns]
**.sln = CRLF
**.vcproj = CRLF
**.vcxproj = CRLF
**.vcproj.filters = CRLF
**.vcxproj.filters = CRLF
**autoexp.dat = CRLF
**Makefile = LF
** = native

一切似乎都运行良好.. 在 Windows 上(好吧,我有一些文件有行尾问题,我在第一个补丁中修复了它们,那个补丁也包含 .hgeol)。

然后我搬到Mac,假设它也可以在那里工作,对吧?嗯,错了。当我 qpush 第一个补丁(带有“.hgeol”文件+行尾更改的那个)时,它可以工作,但我看到一组“修改”文件(它与我在 Windows 上“修复”的文件完全相同,这样它们就不再显示为已修改!)。无论如何,我尝试“hg qrefresh”以更改线路(我想我稍后会弄明白)......但没有运气:如果我继续 qpush 我的其他补丁,我开始收到拒绝:(

知道如何解决这个问题/是什么原因造成的吗?这让我疯狂....

4

1 回答 1

0

让我们同意编译器知道如何处理任何新的行格式,甚至是混合。所以,我的建议是:

  1. 保留 Windows 特定文件(.sln、、.vcproj等)以按照您已经做的方式进行设置
  2. 确保所有文本编辑器(所有操作系统)都同意相同的换行约定。
  3. 将您使用文本编辑器触摸的所有文件转换为该新行约定(使用类似 dos2unix 的工具)
  4. 提交该更改
  5. 您所有现有的补丁也应该遵守

    一个。您可能需要一一应用它们,然后再次清理文件并刷新这些补丁,以便也修复换行符

在此之后,只要您

  1. 不要使用不同的不合规编辑器编辑相同的存储
  2. 没有通过来自不同操作系统的共享访问相同的存储库,并且以某种方式使用了错误的编辑器......

希望这可以帮助 ;)

问候。

于 2012-10-15T08:31:50.533 回答