【问题标题】:How to specify line endings (CRLF)如何指定行尾 (CRLF)
【发布时间】:2019-10-24 19:32:14
【问题描述】:

我们使用Swagger Codegen 2.4.5 从我们的 API 生成模型。除了一个相对较小的例外,一切都按我们的需要工作。

我们正在生成 C# 模型,根据 Windows,这些模型通常以 CRLF 行结尾存储。每当我们运行生成器时,这些文件都会以LF 行结尾生成。

我们希望使用CRLF 而不是LF 生成所有模型。有没有办法修改这种行为?

我研究了 mustache 的使用方式 - 有点 - 并通读了用于 codegen 的一般 command line options 和 csharp 特定选项 (java -jar swagger-codegen-cli-2.4.5.jar config-help -l csharp),但找不到任何东西.

进一步说明:

目前这是一个问题,因为每次您签出然后再次运行生成时,模型都会显示为已更改。这仅仅是因为它们现在 编码 带有 LF 行尾,而 git 已将它们检出为 CRLF(我们无法更改)

目前我能想到的唯一其他选择是在生成过程完成后用 CRLF 重写项目中的每个文件。如果有办法通过生成器,我会更喜欢它。

【问题讨论】:

  • 你是在 Windows 还是 Mac/*nix 上运行 codegen?
  • 我们在 Windows PC 上运行 codegen
  • 您可能需要在github.com/swagger-api/swagger-codegen/issues 上打开一个问题
  • 现在我们已经添加了一个 .gitattributes 文件来声明 LF eol 字符是预期的并且适用于存储库的这个区域。不理想,但解决了眼前的问题

标签: newline swagger-codegen lf


【解决方案1】:

这是因为 Git 的配置。我想这个博客会对你有所帮助。 Configuring Git to handle line endings - GitHub Help

解决方案

git config --global core.autocrlf true

【讨论】:

  • 我的 git 配置已经设置为 autocrlf,这会影响行尾的提交方式。但不影响局部变化的背叛。如果一个文件被更改为具有来自 CRLF 的 LF 行结尾(就像这里发生的那样),git 会检测到一个更改,即使内容没有(真的)改变。
猜你喜欢
  • 2011-07-25
  • 2021-09-06
  • 2014-07-27
  • 1970-01-01
  • 2021-11-17
  • 2013-11-02
  • 1970-01-01
  • 2020-10-16
  • 1970-01-01
相关资源
最近更新 更多