Проблемы с WinSCP со стилем конца строки в Ubuntu Linux при использовании SVN Diff

Мои файлы находятся на удаленном сервере Ubuntu Linux. Когда я загружаю файлы и редактирую их либо в текстовом редакторе WinSCP, либо в Notepad++, стиль конца строки файла меняется на Windows. Поэтому, когда я повторно сохраняю файл обратно в Ubuntu, строки отключены, и SVN Diff считает, что каждая строка изменилась.

К вашему сведению, я редактирую файл, дважды щелкнув файл в WinSCP. Эта программа запускает файл в редакторе. Каждый раз, когда я сохраняю, файл автоматически копируется обратно на сервер Linux.

Как предотвратить проблему со стилем конца строки?


person Tihom    schedule 27.12.2009    source источник
comment
вы имеете в виду новые строки вместо пробелов? У вас есть редактор, совместимый с новыми строками в Unix, или, по крайней мере, он настроен на автоматическое определение новых строк и соответствующие действия?   -  person Zeograd    schedule 28.12.2009
comment
Я не уверен, что это новые строки или пробелы. Возможно, вы правы, это могут быть новые строки. Как изменить редактор по умолчанию, чтобы он был совместимым с новыми строками? Я могу использовать блокнот++.   -  person Tihom    schedule 28.12.2009
comment
Я попытался изменить файл, чтобы использовать символ unix EOL в блокноте ++, но diff SVN все еще думал, что каждая строка изменилась   -  person Tihom    schedule 28.12.2009


Ответы (6)


Помогает ли эта тема? Точнее эту часть:

Из этого мне кажется, что вы заставили WinSCP использовать передачу в текстовом режиме, что подразумевает преобразование unix-> dos. Просто включите двоичный режим, чтобы избежать преобразования.

person Pascal Thivent    schedule 27.12.2009
comment
Это не сработало для меня. Это также не сработало для человека в потоке, насколько я могу судить. - person Tihom; 28.12.2009

Я не мог понять, почему у меня возникла проблема с пробелами, но я смог понять, как игнорировать пробелы.

Вы можете использовать:

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

Это работало достаточно хорошо.

person Tihom    schedule 23.07.2010
comment
На самом деле вы игнорируете окончания строк, поэтому не решаете исходную проблему. - person vesperto; 25.09.2015

Вам нужно использовать формат строки unix. Чтобы установить это, перейдите в «Настройки» > «Настройки» и выберите вкладку «Новые документы/Каталог по умолчанию». Найдите «Формат» в элементах управления «Новый документ» и выберите «Unix». Это гарантирует, что любой новый документ будет иметь правильный формат. Я использовал это с удаленным сервером Linux и не видел проблем.

Как правило, возвращаемый файл будет создан с временным именем и внесенными в него изменениями. Затем исходный файл будет удален, а новый файл будет переименован, чтобы занять его место. Это сделало бы возвращенный файл новым документом, поэтому этот параметр предпочтения должен указывать правильный формат.

person Jon    schedule 07.12.2011

Я использую Notepand2 и WinSCP для редактирования файлов в Windows, а сервер — в Linux.

В моем случае проблема заключалась в самом соединении WinSCP.

Я нажал «Изменить» перед подключением, а затем «Дополнительно» была опция для символов конца строки. Его изменение решило проблему в моем случае.

Вариант на скрине уже тот, что сработал. Раньше был только "LF".

введите здесь описание изображения

person Krewetka    schedule 16.07.2015

Простое и подходящее решение этой проблемы можно выполнить, зайдя в конфигурацию вашего внешнего редактора в WinSCP.

In: View > Preferences > Editors

Выберите внешний редактор и нажмите Edit ....

Затем снимите флажок: Force text transfer mode for files edited in external editor

person Djidiouf    schedule 06.07.2016

Если вы используете передачу в режиме text/ascii с WinSCP, он преобразует стиль конца строки обратно в Unix при загрузке.

Поэтому я предполагаю, что проблема может заключаться в том, что ваш файл изначально имеет стиль конца строки Windows. При загрузке ничего не меняется, но при загрузке он преобразуется в стиль Unix.

Либо исправьте свой файл, чтобы он использовал стиль Unix, как следует (если это так), либо используйте режим двоичной передачи.

Вам нужно не только настроить двоичный режим передачи для WinSCP в целом (что является значением по умолчанию в последних версиях WinSCP), но также необходимо убедиться, что параметр предпочтения Принудительный режим передачи текста для файлов, редактируемых во внешнем редакторе для вашего внешнего редактора (Notepad++) отключено:
https://winscp.net/eng/docs/ui_editor_preferences

Обратите внимание, что этот параметр недоступен для внутреннего редактора WinSCP. С ним файлы всегда передаются в текстовом/ascii режиме.

person Martin Prikryl    schedule 13.06.2014