每个文件的Perforce行尾

提姆

我基于Perforce的项目使用相同的Shell脚本(例如build_project.sh支持Linux和Cygwin平台但是Perforce将文本文件的行尾默认为本地平台(Docs)。这会导致脚本中出现\r\n换行符.sh,这在Cygwin上失败。

到目前为止,我想到的一些想法:

  1. 有没有办法使Cygwin接受\ r \ n文件?(无需运行dos2unix,文件将以只读方式获取)。

  2. 有没有一种方法可以将特定文件设置为文本,但是每个人都可以使用Unix行尾?(我猜是“不”,但以为我会检查。)

  3. 当然,我可以将整个工作区的行尾设置为\n(unix)。但这使Windows客户端对其.bat文件而\n不是感到不满意\r\n同样,如果设置是针对每个工作空间的(我不记得了),那么对于新的Windows用户,工作空间设置会稍微困难一些,因为他们必须设置该选项。

  4. .sh文件设置为“二进制”,但随后我们将丢失这些文件上的文本差异。有没有解决方法?这是常见的(好)黑客吗?

这是一个相当小的问题,但我怀疑其中有些人对此模式具有BKM。

谢谢。

编辑:在这个问题上,克雷格(Craig)的回答似乎表明,\r\n如果最初以这种方式提交,则使用Unix行尾将仅保留带有文件

编辑:要强制bash(即Cygwin)接受带有\r\n结尾的文件,可以set -o igncr在脚本中指定如果有人希望Cygwin用户可能不太懂Unix(我的情况),或者由于某些其他原因我们无法在以下解决方案中全局添加触发器,那么这很好。

山姆威斯

我相信,当您安装Cygwin时,可以将其配置为使用Windows行尾。但是,撇开这一点:

如果绝对对所有人使用“ unix” LineEnd,则所有文本文件都将具有其内部一致的行尾(但不一定与客户端平台一致)。这是由于Windows文件最终以\ r作为该行内容的一部分而起作用,因此,当以“ unix”格式同步输出时,它们将以\ r \ n结尾。

需要注意的是在执行此操作时要混合并匹配LineEnd设置-如果有人用“ win”或“ local” LineEnd同步了该文件,那么现在它们的结尾就是\ r \ r \ n!因此,如果要使用每个文件的行结束计划,请确保每个人都将“ unix”用作其LineEnd。使用触发器很容易做到这一点,例如:

Triggers:
    form-in client "sed -i %quote%s/LineEnd:.*/LineEnd: unix/%quote% %formfile%"

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

groovy在文件的行尾添加单词

来自分类Dev

从Perforce获取文件

来自分类Dev

如何在Perforce中撤消与同一文件相关的多个变更列表,而不提交每个变更列表?

来自分类Dev

gitattributes文件和行尾的Git * text = auto

来自分类Dev

C ++-文件读取中缺少行尾字符

来自分类Dev

在Linux行尾比较两个文件

来自分类Dev

Docker容器中资产文件的行尾

来自分类Dev

.gitattributes文件不转换行尾

来自分类Dev

从.TXT文件的行尾删除单个空格

来自分类Dev

读取文件时如何减少行尾?

来自分类Dev

每个Haskell函数都进行尾调用吗?

来自分类Dev

在Unix文件中需要dos行尾字符,不附加Unix行尾

来自分类Dev

获取Perforce打开文件的本地位置

来自分类Dev

Perforce:如何列出未检出的替代文件?

来自分类Dev

Perforce:恢复文件而不丢失其修改

来自分类Dev

无法在perforce中标记添加文件

来自分类Dev

确定已签出文件的perforce用户

来自分类Dev

强制修订时,perforce不会覆盖文件

来自分类Dev

使用perforce时提交文件失败

来自分类Dev

未检出Perforce .NET API编辑文件

来自分类Dev

Perforce:恢复文件而不丢失其修改

来自分类Dev

获取Perforce打开文件的本地位置

来自分类Dev

Perforce eclipse插件未设置可写文件

来自分类Dev

强制修订时,perforce不会覆盖文件

来自分类Dev

如何忽略在 perforce 中修改几个文件?

来自分类Dev

如何在Windows R上的Unix行尾写入文件

来自分类Dev

Java:文件在行尾停止读取并给出错误

来自分类Dev

如何将DOS行尾从Unix写入文件

来自分类Dev

使用`.gitattributes`文件修复Git仓库中的行尾