我的文件位于远程Ubuntu Linux服务器上。当我下载文件并在WinSCP文本编辑器或Notepad ++中编辑它时,文件行尾样式将更改为Windows。因此,当我将文件重新保存回Ubuntu时,线路关闭,SVN Diff认为每一行都已更改。
仅供参考,我通过双击WinSCP中的文件来编辑文件。该程序在编辑器中启动该文件。每次保存时,文件都会自动复制回Linux服务器。
如何防止线端样式问题?
答案 0 :(得分:3)
this thread有帮助吗?更确切地说,这部分:
由此,在我看来,您已迫使WinSCP使用文本模式传输,这意味着unix-> dos转换。只需强制二进制模式以避免转换。
答案 1 :(得分:2)
答案 2 :(得分:1)
您需要使用unix线路格式。要进行此设置,请转到设置>偏好设置,然后选择“新建文档/默认目录”标签。在“新建文档”控件中找到“格式”,然后选择“Unix”。这将确保任何新文档具有正确的格式。我使用它与远程Linux服务器,并没有看到问题。
通常,将使用临时名称创建返回的文件,并将更改写入其中。然后将删除原始文件并重命名新文件以取代它。这将使返回的文件成为“新”文档,因此此首选项设置应该提供正确的格式。
答案 3 :(得分:0)
如果您使用WinSCP进行text / ascii模式传输,它会在上传时将行尾样式转换回Unix。
所以我想问题可能是你的文件最初实际上具有Windows行尾样式。在下载时,没有任何变化,但在上传时,它会转换为Unix风格。
修复文件以使用Unix风格(如果是这种情况)或使用二进制传输模式。
您不仅需要为WinSCP配置二进制传输模式(最近版本的WinSCP中的默认值),还需要确保首选项选项强制文本传输模式在外部编辑器中,外部编辑器(Notepad ++)关闭:
https://winscp.net/eng/docs/ui_editor_preferences
请注意,此选项不适用于WinSCP内部编辑器。有了它,文件总是以text / ascii模式传输。
答案 4 :(得分:0)
我使用Notepand2和WinSCP编辑Windows上的文件,服务器位于Linux上。
就我而言,问题在于WinSCP连接本身。
我在连接前单击“编辑”,然后在“高级”中单击了行尾字符的选项。改变它解决了我的问题。
屏幕上的选项已经是有效的选项。 Ealier只有“LF”。
答案 5 :(得分:0)
可以通过在WinSCP中进入外部编辑器的配置来完成对该问题的简单而适当的修复
在:View > Preferences > Editors
选择外部编辑器,然后点击Edit ...
然后,取消选中:Force text transfer mode for files edited in external editor