当我运行“svn propedit svn:ignore。”在我的svn存储库的根目录,我收到此错误: svn:行结束样式不一致
我试过运行这个脚本:http://blog.eflow.org/archives/130运行dos2unix并在所有文件上设置eol样式,但是这个问题仍然存在。知道什么可能是错的吗?
答案 0 :(得分:40)
就我而言,在文件上设置了svn:eol-style
属性。
并且“文件的某些行由UNIX行结尾(LF字符)分隔,而其他行由DOS样式的行结尾(CR + LF字符)分隔”。 Here是对此问题的另一个详细讨论
Notepad++中的"Edit"->"EOL Conversion"->"Windows format"
为我解决了这个问题。
答案 1 :(得分:25)
在我的情况下,我在Windows中进行编辑。 修复:
这样做了。
答案 2 :(得分:17)
Subversion不是抱怨任何文件的内容,而是关于svn:ignore属性的内容。解决此问题的一种方法是简单地使用svn:ignore
删除svn propdel
属性,然后重新创建它。
如果svn:ignore
中有很多行,可能会更容易的另一种方式:
在a中获取svn:ignore的值 像这样的临时文件:
svn
propget svn:ignore . > temp
temp
中的行结尾
文件从固定文件中设置svn:ignore的值 这样:
svn propset svn:ignore -F
temp .
答案 3 :(得分:8)
正在运行
unix2dos [file]
通过cygwin为我解决了这个问题。
答案 4 :(得分:4)
我的问题是我在Visual Studio.NET中得到了这个。为了修复它,我将文件的所有文本复制到记事本中并将其从记事本保存到“xxx.aspx”或任何正确的文件名。然后在Visual Studio中,我被提示重新加载一个已更改的文件,并且瞧 - 一个对话框询问我是否要规范我的行结尾。问题解决了。
答案 5 :(得分:3)
如果只发生一个或两个文件,您也可以打开文件,将内容复制并粘贴到新文件(使用普通文本编辑器),然后保存。然后可以添加此文件(重命名或移动以使其成为正确的名称)。
答案 6 :(得分:1)
我收到了这个错误,但它最终成了一个文件,错过了最后一个谎言(不完整的最后一行)。
通过在VI中打开文件并保存它来解决此问题。
答案 7 :(得分:1)
vi没有向我显示坏行,所以我从评论部分删除了行尾,读取它们(直到END)并保存文件。它之后起作用了。
注意:在调整之前备份你的revprop文件。如果你去草坪,不回去
答案 8 :(得分:1)
脚本是否肯定触及了每个文本文件(假设您安装了dos2unix,否则这就是原因......)?
我能想到的其他事情是检查所有文件是否正确设置了mime类型(你没有一个二进制文件以某种方式标记为签入的文本文件,偶然吗?)。
也就是说,如果您处于多操作系统环境中,我认为将svn:eol-style设置为CRLF并不是一个好主意,如上面的博客文章中描述的如果您正在共享在OS之间编辑文本文件。因为如果你这样做,那么在Windows中看起来很好的文件中充斥着Unix中的控制字符。最好使用'native'作为EOL风格。
答案 9 :(得分:0)
对于mac osx,我得到了一个文件的错误,并且必须使用dos2mac然后使用mac2unix进行转换。一旦我这样做,就解决了线路结尾抱怨的问题。
答案 10 :(得分:0)
正如上面的“ Marius Matioc”所建议的那样,将轻松快速地进行修复 1.在记事本++中打开文件 2.编辑菜单-> EOL转换-> Unix 3.保存 4.编辑菜单-> EOL转换-> Windows 5.保存
答案 11 :(得分:0)
在NetBeans中,您可以使用" Show and change line endings"插件。
安装并重新启动NetBeans后,行结束样式显示在状态栏的右侧。您可以单击它并选择要将文件转换为的结尾。
答案 12 :(得分:0)
在我的情况下发生错误是因为文件具有编码“UCS-2 LE BOM”。使用ANSI的文件是可以的。我检查了行结尾,在所有文件中它们都是正确的。 似乎(至少在我的SVN版本中)宽字符文件有时无法正确识别。
最简单的解决方案是删除“svn:eol-style”属性。
答案 13 :(得分:0)
我在emacs中尝试svn propset eol-style:native
一个PHP文件时收到了同样的错误消息,所以希望这可以帮助那些达到这个问题的人。
我有类似以下内容:
str_replace('</li>^M<br>', '</li>', $text);
^M
是单个字符(回车的转义符转义)。
修复方法是将该行更改为等效行:
str_replace("</li>\r<br>", '</li>', $text);
请注意双引号而不是单引号!
答案 14 :(得分:0)
我在之前运作良好的档案中遇到了同样的问题。在记事本++中,我选择将格式转换为UTF-8。这对我有用。
答案 15 :(得分:0)
在Windows机器上通过ant任务运行javadoc时遇到了同样的问题。
我通过在javadoc ant任务下添加<fixcrlf srcdir="${dir.javadoc}" eol="dos"/>
来修复它。
答案 16 :(得分: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
答案 17 :(得分:0)
在对几个文本文件进行一些修改后,我发生了这样的问题,即只添加了\n
来分隔某些行,而通常\r\n
终止每一行。所以,修复是使用Notepad ++
找到([^\r])\n
并替换为$1\r\n
。
这样,行尾字符在任何地方都是一致的。
答案 18 :(得分:0)
这让我困扰了很长时间,在SVN工作了一个多系统团队。 我制作了这个有用的应用程序,它导航一个文件夹,其中包含查找文本文件的子文件夹,并将所有UNIX EOL转换为DOS EOL。 它是一个AIR应用程序,适用于Windows和Mac。 希望它有所帮助
菲利普
答案 19 :(得分:0)
如果你在执行propedit时得到它,那么在我看来SVN正在抱怨你用于属性的文本文件的格式!
你在哪个操作系统?您使用哪种编辑器进行加速?如果propedit命令仍然启动编辑器,我将使用此编辑器检查哪些行结尾(vi执行此IIRC)。