使用SVN Diff时,在Ubuntu Linux上使用行尾样式的WinSCP问题

问题描述 投票:6回答:6

我的文件位于远程Ubuntu Linux服务器上。当我下载文件并在WinSCP文本编辑器或Notepad ++中编辑它时,文件行尾样式将更改为Windows。因此,当我将文件重新保存回Ubuntu时,线路关闭,SVN Diff认为每条线路都已更改。

仅供参考,我通过双击WinSCP中的文件来编辑文件。该程序在编辑器中启动该文件。每次保存时,文件都会自动复制回Linux服务器。

如何防止行尾样式问题?

linux windows svn eof winscp
6个回答
3
投票

this thread有帮助吗?更确切地说,这部分:

从这一点来看,在我看来,你已经迫使WinSCP使用文本模式传输,这意味着unix-> dos转换。只需强制二进制模式以避免转换。


2
投票

我无法弄清楚为什么我有空白问题,但我能够弄清楚如何忽略空格。

您可以使用:

svn diff -x'-uw --ignore-eol-style'

这很好用。


1
投票

您需要使用unix行格式。要进行此设置,请转至设置>首选项,然后选择“新建文档/默认目录”选项卡。在“新建文档”控件中找到“格式”,然后选择“Unix”。这将确保任何新文档具有正确的格式。我使用它与远程Linux服务器,并没有看到问题。

通常,将使用临时名称创建返回的文件,并将更改写入其中。然后将删除原始文件并重命名新文件以取代它。这将使返回的文件成为“新”文档,因此此首选项设置应提供正确的格式。


0
投票

我使用Notepand2和WinSCP编辑Windows上的文件,服务器在Linux上。

在我的情况下,问题出在WinSCP连接本身。

我在连接前单击“编辑”,然后在“高级”中单击了行尾字符的选项。改变它解决了我的问题。

屏幕上的选项已经是有效的选项。早些时候只有“LF”。


0
投票

可以通过在WinSCP中进入外部编辑器的配置来完成对该问题的简单而适当的修复

在:View > Preferences > Editors

选择外部编辑器,然后单击Edit ...

然后,取消选中:Force text transfer mode for files edited in external editor


0
投票

如果您使用WinSCP进行text / ascii模式传输,它会在上传时将行尾样式转换回Unix。

所以我想问题可能是你的文件最初实际上有Windows端行样式。在下载时,没有任何变化,但在上传时,它会转换为Unix风格。

修复文件以使用Unix样式(如果是这种情况)或使用二进制传输模式。

您不仅需要为WinSCP配置二进制传输模式(WinSCP的最新版本中的默认值),还需要确保首选项选项强制文本传输模式用于外部编辑器中为外部编辑的文件编辑器(Notepad ++)已关闭: https://winscp.net/eng/docs/ui_editor_preferences

请注意,此选项不适用于WinSCP内部编辑器。有了它,文件总是以text / ascii模式传输。

© www.soinside.com 2019 - 2024. All rights reserved.