Git: C++ 格式不可知注释
Git: C++ format agnostic annotations
有没有办法排除 git 中的格式更改?我的意思是 git 工具提供了一种忽略空格更改的方法 - 没关系。我对 C++ 代码很感兴趣(但这个问题可以推广到任何格式)。 C++ 标准在代码格式方面提供了一些自由。但是,如果仅在格式方面发生了变化而不是在代码的功能方面发生了变化,那么 git 历史记录中的方向就会变得非常混乱。
我可以想象一些 git 工具在处理某种 "normalized" 代码(可能是其他工具的输出 - 如 clang -format
)
这有可能吗?有更好的方法吗?
(如果 diff/annotate/etc 会很好。工具会 "normalized symbolic representation" 上的 运行 - 我知道,这需要 Git 到 "understand the code" 和不是 运行 纯文本,但我确定它可以由第 3 方 "normalizers" 解决 - 或者可能 Git 根本不关心它,这取决于IDE - 不知道)
would be nice if the diff/annotate/etc. tools would run on the "normalized symbolic representation
提供一个工具,从您的实际来源生成,Git 确实会为您区分规范化形式。将 diff=mydiff
指定为文件属性,在已发布的历史记录中作为 .gitattributes
条目进行跟踪,或者在本地供您自己在 .git/info/attributes
中使用,并将 diff.mydiff.textconv
配置为您的规范化程序,例如clang-format
,如果给定一个文件名 arg,它会在 stdout 上产生与 git 一样的结果。 The feature's built for text diffs of binary files 但是 "binary" 这里真的只是意味着 "a format that's inconvenient for diffing".
有没有办法排除 git 中的格式更改?我的意思是 git 工具提供了一种忽略空格更改的方法 - 没关系。我对 C++ 代码很感兴趣(但这个问题可以推广到任何格式)。 C++ 标准在代码格式方面提供了一些自由。但是,如果仅在格式方面发生了变化而不是在代码的功能方面发生了变化,那么 git 历史记录中的方向就会变得非常混乱。
我可以想象一些 git 工具在处理某种 "normalized" 代码(可能是其他工具的输出 - 如 clang -format
)
这有可能吗?有更好的方法吗?
(如果 diff/annotate/etc 会很好。工具会 "normalized symbolic representation" 上的 运行 - 我知道,这需要 Git 到 "understand the code" 和不是 运行 纯文本,但我确定它可以由第 3 方 "normalizers" 解决 - 或者可能 Git 根本不关心它,这取决于IDE - 不知道)
would be nice if the diff/annotate/etc. tools would run on the "normalized symbolic representation
提供一个工具,从您的实际来源生成,Git 确实会为您区分规范化形式。将 diff=mydiff
指定为文件属性,在已发布的历史记录中作为 .gitattributes
条目进行跟踪,或者在本地供您自己在 .git/info/attributes
中使用,并将 diff.mydiff.textconv
配置为您的规范化程序,例如clang-format
,如果给定一个文件名 arg,它会在 stdout 上产生与 git 一样的结果。 The feature's built for text diffs of binary files 但是 "binary" 这里真的只是意味着 "a format that's inconvenient for diffing".