SVN更新时出现冲突,为什么会添加^M字符?

3
我们同时在处理一些文件。有时,当我们“svn up”时,会看到某些文件的每一行都添加了“^M”。最初我们彼此指责对方的编辑器>_>。
我们后来发现,这是由于存在冲突时进行“svn up”。如果我们隔离冲突的文件并进行svn,则不会出现“^M”。svn日志/差异中也没有“^M”。这真的很奇怪,对吧?
希望有人以前见过这种情况并知道解决方法。不知道在其他人的设置上是否可以重现。我们使用的是Subversion 1.4.4。
谢谢阅读,感谢任何意见。

一些SVN会放置标记以显示冲突发生的位置...这相当令人烦恼。 - Daniel
2个回答

2

以下情况会发生这种情况:

  • 我在Windows上使用Subversion
  • 我在使用Vim

当Subversion添加冲突标记(在Windows上)时,它们会添加CRLF行尾,而不管文件的其余部分是否只有LF行尾。当我将冲突文件加载到Vim中时,它无法自动确定行尾样式,因此它假定仅为LF并在每个标记冲突行的末尾显示“ ^ M”。我确保在解决冲突之前编辑掉任何一个(所以我的文件在这个例子中都有LF行尾)。


2

合并工具是否会添加这些行尾字符?

另一个可能有帮助的方法是在项目中将文件的svn:eol-style属性设置为本地。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接