在差异

时间:2017-06-12 15:21:56

标签: c++ git astyle

我要求只设置正在提交的C / C ++文件的部分(因此其他行的责任完好无损)。有没有工具可以做到这一点?我知道我们可以设置整个文件的样式,并且可以忽略样式更改(但我的团队不希望这样)。

以下是我尝试使用astyle的一些内容:

  1. 我将差异写入新文件并对其进行样式设置并替换原始文件中的差异部分 - 为什么它不起作用?它没有真正的样式,因为它没有上下文,比如if语句缩进其余行等。

  2. 我设置整个文件的样式并仅替换更改的部分。 - 为什么它不起作用?如果我尝试更改最大代码长度并且线条被分解,那么差异线是不同的。

  3. 原始文件与包含样式化差异的文件之间的3路合并怎么样?然而试试这个。

  4. 可能有一种更简单的方法,我想念它:S

2 个答案:

答案 0 :(得分:1)

你可以用git hook和clang-format做到这一点。

例如:https://llvm.org/svn/llvm-project/cfe/trunk/tools/clang-format/git-clang-format

答案 1 :(得分:0)

  1. 您可以使用python脚本lint-diffs并运行clang-tidy,并使您的CI工具或git钩子在样式和样式上出现 report 错误(不正确)其他静态检查仅适用于您的差异。可以将其配置为与任何vcs和多种语言一起使用。

  2. 您可以使用clang-format-diff.py,它是clang附带的python脚本。它采用一组统一的差异,并将它们用于clang-formats -lines参数。通常,“-lines”参数是您如何告诉clang-format哪些行可以更正。