问题标签 [line-endings]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
svn - 从 SVN 迁移到 git 后如何解决行尾问题?
我刚刚完成将 Subversion 存储库转换为 git 使用
这样做时,我将 git 标志 'core.autocrlf' 设置为 'true' - 以防万一。
许久,命令完成。我稍微清理了生成的 git 存储库(删除未定义的分支、创建标签等),现在一切看起来都非常好并且运行良好。该存储库托管在 Linux 机器上,将其克隆到其他 Linux 机器上效果非常好。
但是,我注意到一个问题:将存储库克隆到Windows机器上时,切换分支时似乎修改了一些文件。例如,我这样做:
在执行“git diff”时,我注意到修改后的文件似乎除了它们的行尾没有什么不同。在对此进行一些研究时,我们注意到这些文件在 Subversion 中被意外地使用 CR-LF 行结尾(而不是 LF 行结尾)签入,并且这个错误被转换到了我们的 git 存储库中。
有没有办法在我们的存储库中解决这个问题(到目前为止它没有经常被克隆,所以一些历史重写会很好)而不做“清理提交”之类的?也许我们可以以某种方式默默地重写受影响的对象?
或者,我们可以在 Subversion 中修复这个问题——然后再次发出上面的“git svn clone”命令。这似乎是渐进式的(它只会获取最新的行结束修复提交),但又一次 - 它创建了一个提交。我想知道我是否可以解决这个问题。
git - git & Cygwin - 尾随空格导致“不是最新的”
带有 Cygwin 的 Windows 上的 Git 充满了危险。然而,有一个真的开始困扰我。
它与 core.autocrlf=true 行为有关。在花了一周的时间在网上拖网之后,很明显你会遇到的问题没有那么糟糕了。但是,如果文件末尾有一行带有空格的行,则似乎会造成重大问题。
问题是 git 认为文件有本地修改,即使它没有。例如,在全新克隆之后,“git status”或“git diff”将立即显示任何此类文件已修改。'git reset --hard' 完成了它的工作,但这些文件仍然显示为已修改。'git diff' 将差异显示为“删除了一个空行,添加了一个空行”。
问题是,这会阻止 git pull!
好的,我认为 - 方式发生了局部变化。如果我把它藏起来怎么办?不 - 在 git stash 之后,它仍然将此文件显示为本地更改。
好的,如果我添加它呢?当然,这仍然会阻止拉动:
好的,最后一次尝试 - 让我们提交它并完成它。哦,太好了,这个文件有冲突。但令人惊奇的是,该文件没有冲突标记!不幸的是,'git pull' 现在抱怨我正处于冲突合并的中间,即使没有标记冲突。
我发现,解决方法是永远不要在换行符之前提交带有尾随空格的文件。它只是让 git 认为文件被修改了,而实际上它没有被修改,这可能是由于 DOS-UNIX 行结束逻辑显然被破坏了。
无论如何,我并不是真的在寻找答案,因为最后我只是对整个事情进行了核爆并重新克隆。我真正想知道的是,任何人在尝试将 git 与 Cygwin 一起使用时如何保持理智。
当目录被称为“FOO”时,不要让我开始使用“git add foo/a foo/b FOO/c”...
sql-server - 通过 Management Studio 2005 粘贴到 SQL Server 表中并保留行尾
我不能让它工作。我在 SQL Server Management Studio 2005 中打开了一个 SQL Server Express 表。当我尝试将多行文本片段粘贴到 NTEXT 字段中时,它被截断为仅包含第一行。
在访问这些东西的作品,我该怎么办?
asp-classic - ASP Readline 非标准行尾
我正在使用ReadLine()
文件系统对象的 ASP Classic 函数。
在有人在 Mac 上使用 TextEdit 制作导入文件之前,一切都运行良好。
行尾不一样,ReadLine()
读取整个文件,而不是一次读取 1 行。
有处理这个的标准方法吗?某种页面指令,或文件系统对象上的设置?
我想我可以读入整个文件,然后拆分vbLF
,然后对于每个项目,vbCR
用“”替换,然后一次处理一行,但这似乎有点笨拙。
我已经到处寻找这个问题的解决方案,但解决方案都是“不要用 Mac[sic] 行结尾保存文件”。
任何人都有更好的方法来处理这个问题?
git - git autocrlf 设置的权威推荐
我每天都使用 Windows、Mac OS X 和 linux。我在所有这些环境中都使用 git,从那些对行尾有不同选择的人使用的 repos 中提取。
在我的情况下设置 core.autocrlf 是否有明确的建议?
asp.net - 网络上的文本框行尾?
我有一个带有多行文本框的 ASP.Net 页面。
此文本框上的行尾是根据服务器还是客户端?我要问的是,ASP.Net 是否在 Mono 上的 Linux 中运行,行尾总是会是\n
还是取决于客户端计算机是否运行 Linux?
文本框中的行尾是由服务器还是客户端确定的?
c++ - tellg() 失败的可能原因?
ifstream::tellg()
为某个文件返回 -13。
基本上,我编写了一个分析一些源代码的实用程序;我按字母顺序打开所有文件,我从“Apple.cpp”开始,它运行良好。但是当它到达“Conversion.cpp”时,总是在同一个文件上,成功读取一行后tellg()返回-13。
有问题的代码是:
的代码AtEof
是:
在成功读取 Conversion.cpp 的第一行后,它总是以DEBUG - tellg(): -13
.
这是TextIFile
全班(我写的,可能有错误):
平台是 Visual Studio,32 位,Windows。
编辑:适用于 Linux。
编辑:我找到了原因:行尾。Conversion 和 Guid 以及其他都有 \n 而不是 \r\n。我用 \r\n 保存了它们,它起作用了。不过,这不应该发生是吗?
windows - 如何将 Windows 和 Linux 上的文件大小与 ascii 进行比较?
我正在编写一个 Python 脚本,它将把一堆文件上传到一个 FTP 站点。要检查文件是否已更改,我正在比较文件大小。问题是,我上传的文件有 \r\n 行结尾,但通过 FTP(ascii 模式到 Linux 机器)传输会转换为 \n 行结尾。显然我在这个过程中丢失了一堆字节,所以我不能再比较文件大小了。
我不确定在这里进行的最佳方式。在检查文件大小时即时从 \r\n 转换为 \n?以二进制模式上传所有内容?停止比较文件大小?
vim - 如何在 VIM 中替换行尾
如何替换大文件(> 100MB)中的所有行尾?我试过做
:%s/\n/, /g
但它太慢了。
svn - 如何避免 svn 存储库中的混合 eol 样式
是否有防止 subversion 存储库中混合 eol 样式的最佳实践。
我知道svn:eol-style=native
可以将其设置为自动道具,但我必须确保为所有提交者设置了它。我也不愿意对svn:eol-style
是否有侵入性较小的解决方案进行回顾性的、存储库范围的更改。