我的文件位于远程Ubuntu Linux服务器上。 当我下载文件并在WinSCP文本编辑器或Notepad ++中进行编辑时,文件行尾样式将更改为Windows。 所以当我把文件重新保存到Ubuntu时,线路closures,SVN Diff认为每一行都改变了。
仅供参考,我通过双击WinSCP中的文件来编辑文件。 该程序在编辑器中启动该文件。 每次保存时,文件都会自动复制回Linux服务器。
我如何防止行尾样式问题?
这个线程有帮助吗? 更确切地说,这部分:
由此看来,你已经强制WinSCP使用文本模式传输,这意味着unix-> dos转换。 只要强制二进制模式,以避免转换。
我无法弄清楚为什么我有空白的问题,但我能弄清楚如何忽略空格。
你可以使用: svn diff -x'-uw --ignore-eol-style'
这工作得很好。
您需要使用unix行格式。 要设置它,请转到设置>首选项,然后选择“新建文档/默认目录”选项卡。 在“新建文档”控件中找到“格式”并选择“Unix”。 这将确保任何新文档具有正确的格式。 我用这个远程Linux服务器,并没有看到一个问题。
通常情况下,返回的文件将使用临时名称和写入的更改来创建。 原来的文件将被删除,新的文件被重命名。 这将使返回的文件成为“新”文档,所以这个首选项设置应该给出正确的格式。
我使用Notepand2和WinSCP来编辑Windows上的文件,服务器在Linux上。
在我的情况下,问题是与WinSCP连接本身。
我在连接之前点击“编辑”,然后在“高级”中有结束字符的选项。 改变它解决了我的情况下的问题。
屏幕上的选项已经是一个工作。 Ealier只有“LF”。
通过在WinSCP中进行外部编辑器的配置,可以简单且适当地解决该问题
在: View > Preferences > Editors
选择你的外部编辑器,然后点击Edit ...
然后,取消选中: Force text transfer mode for files edited in external editor
如果您使用WinSCP使用文本/ ASCII模式传输,它将在上传时将行尾样式转换回Unix。
所以我想这个问题可能是你的文件实际上最初是Windows的结束风格。 在下载时,没有任何变化,但在上传时,它被转换为Unix风格。
要么修复您的文件以使用Unix样式(如果是这种情况)或使用二进制传输模式。
一般来说,不仅需要为WinSCP配置二进制传输模式(WinSCP最新版本的默认设置是什么),还需要确保在外部编辑器中为外部编辑的文件优先选项强制文本传输模式编辑器(Notepad ++)关闭:
https://winscp.net/eng/docs/ui_editor_preferences
请注意,该选项不适用于WinSCP内部编辑器。 随着它文件总是以文本/ ASCII模式传输。