40

当我运行“svn propedit svn:ignore”。在我的 svn 存储库的根目录中,我收到此错误:svn: Inconsistent line ending style

我试图运行这个脚本:http : //blog.eflow.org/archives/130,它运行 dos2unix 并在所有文件上设置了 eol 样式,但是这个问题仍然存在。知道有什么问题吗?

4

20 回答 20

42

就我而言,svn:eol-style属性是在文件上设置的。并且“文件的某些行由 UNIX 行结尾(LF 字符)分隔,而其他行由 DOS 样式的行结尾(CR + LF 字符)分隔”。是另一个关于这个问题的详细讨论。
"Edit"->"EOL Conversion"->"Windows format"记事本++中为我解决了这个问题。

于 2011-11-02T17:47:45.187 回答
31

就我而言,我在 Windows 中进行编辑。修理:

  1. 在记事本++中打开文件
  2. 将行尾转换为 Unix(编辑菜单 -> EOL 转换 -> Unix)
  3. 节省
  4. 将行尾转换为 Windows(编辑菜单 -> EOL 转换 -> Windows)
  5. 节省

这做到了。

于 2014-12-05T01:54:22.977 回答
17

Subversion 不是抱怨任何文件的内容,而是抱怨 svn:ignore 属性的内容。解决此问题的一种方法是简单地删除该svn:ignore属性,svn propdel然后重新创建它。

如果您的 中有很多行,另一种方法可能更容易svn:ignore

  1. 在临时文件中获取 svn:ignore 的值,如下所示:

    svn propget svn:ignore . > temp

  2. temp 修复文件中的行尾
  3. 从固定文件中设置 svn:ignore 的值,如下所示:

    svn propset svn:ignore -F temp .

于 2009-05-28T13:00:03.753 回答
8

跑步

unix2dos [file]

通过 cygwin 为我解决了这个问题。

于 2010-07-13T16:22:04.577 回答
4

我的问题是我在 Visual Studio.NET 中得到了这个。为了修复它,我将文件的所有文本复制到记事本中,并将其从记事本保存到“xxx.aspx”或任何正确的文件名。然后在 Visual Studio 中,系统提示我重新加载已更改的文件,然后出现一个对话框,询问我是否要规范化我的行尾。问题解决了。

于 2010-01-27T03:54:48.047 回答
3

如果它只发生在一两个文件中,您也可以打开文件,将内容复制并粘贴到新文件(使用普通文本编辑器),然后保存。然后可以添加此文件(重命名或移动以使其成为正确的名称)。

于 2012-06-06T12:56:35.567 回答
1

我收到了这个错误,但它最终成为一个缺少最后一个谎言结尾的文件(最后一行不完整)。

通过在 VI 中打开文件并保存来解决此问题。

于 2009-12-09T13:40:34.000 回答
1

脚本是否确实触及了每个文本文件(假设您确实安装了 dos2unix,否则这就是为什么......)?

我能想到的另一件事是检查所有文件的 mime 类型设置是否正确(你没有以某种方式标记为签入文本文件的二进制文件,也许?)。

也就是说,如果您处于多操作系统环境中,如果您在操作系统之间共享和编辑文本文件,我认为将 svn:eol-style 设置为 CRLF 不是一个好主意,如上面的博客文章中所述。因为如果你这样做,在 Windows 中看起来还不错的文件在 Unix 中会被控制字符乱七八糟。最好使用“本机”作为 EOL 样式。

于 2009-05-27T18:58:04.250 回答
1

vi 没有显示坏行,所以我从评论部分删除了行尾,读取它们(直到 END)并保存文件。在那之后它起作用了。

注意:在调整它之前备份你的 revprop 文件。如果你草皮它,就不会回头

于 2010-03-19T20:04:28.410 回答
0

通过 Windows 机器上的 ant 任务运行 javadoc 时,我遇到了同样的问题。

<fixcrlf srcdir="${dir.javadoc}" eol="dos"/>我通过在 javadoc ant 任务下方添加来修复它。

于 2014-04-04T06:17:50.603 回答
0

如果您在进行 propedit 时得到它,那么在我看来,SVN 更多地抱怨您用于属性的文本文件的格式!

你在哪个操作系统上?您使用哪个编辑器进行宣传?如果 propedit 命令仍然启动编辑器,我将使用此编辑器检查其中的行尾(vi 执行此 IIRC)。

于 2009-05-28T03:39:39.690 回答
0

我在以前运行良好的存档中遇到了同样的问题。在记事本++中,我选择了将格式转换为 UTF-8。这对我有用。

于 2015-01-09T17:18:39.073 回答
0

要使用 perl(1) 一致地将 Windows 转换为 UNIX 行结尾:

perl -p -i.bak -e 's#\r\n#\n#go' my-file.txt

要从 UNIX 转换回 Windows:

perl -p -i.bak -e 's#\n#\r\n#go' my-file.txt
于 2013-04-08T07:07:11.590 回答
0

在对几个文本文件进行了一些修改之后,我出现了这个问题,这些修改只\n添加到单独的某些行,而通常\r\n终止每一行。因此,解决方法是使用 Notepad++ 查找([^\r])\n 并替换为$1\r\n. 这样,行尾字符在任何地方都是一致的。

于 2013-03-21T18:12:56.397 回答
0

这困扰了我很长时间,在一个使用 SVN 的多系统团队中工作。我制作了这个有用的应用程序,它导航一个带有子文件夹的文件夹,查找文本文件并将所有 UNIX EOL 转换为 DOS EOL。它是一个 AIR 应用程序,适用于 Windows 和 Mac。希望能帮助到你

http://www.pippoflash.com/index.php/2012/06/11/svn-error-inconsistent-line-ending-style-nightmare-solved-download-app/

菲利波

于 2012-06-12T00:00:45.660 回答
0

对于 mac osx,我收到了这个文件错误,必须使用 dos2mac 和 mac2unix 对其进行转换。一旦我这样做了,它就解决了行尾抱怨的问题。

于 2012-08-05T18:50:29.197 回答
0

正如上面建议的'Marius Matioc',将是简单快捷的修复 1.在 Notepad++ 中打开文件 2.Edit 菜单 -> EOL Conversion -> Unix 3.Save 4.Edit 菜单 -> EOL Conversion -> Windows 5.Save

于 2019-01-10T23:06:57.837 回答
0

尝试svn propset eol-style:native在 emacs 中使用 PHP 文件时,我收到了相同的错误消息,所以希望这会帮助解决这个问题的人。

我有类似以下内容:

str_replace('</li>^M<br>', '</li>', $text);

单个字符在哪里^M(用于回车的插入符号转义)。

解决方法是将该行更改为等效项:

str_replace("</li>\r<br>", '</li>', $text);

注意双引号而不是单引号!

于 2016-02-02T11:58:58.750 回答
0

在 NetBeans 中,您可以使用“显示和更改行尾”插件。

安装并重新启动 NetBeans 后,行尾样式显示在状态栏的右侧。您可以单击它并选择要将文件转换为的结尾。

NetBeans 显示和更改行尾插件

于 2017-09-15T13:18:36.683 回答
0

就我而言,发生错误是因为该文件的编码为“UCS-2 LE BOM”。带有 ANSI 的文件没问题。我检查了行尾,在所有文件中它们都是正确的。似乎(至少在我的 SVN 版本中)宽字符文件有时无法正确识别。

最简单的解决方案是删除“svn:eol-style”属性。

于 2016-09-01T12:09:19.980 回答