Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Formatting 了解格式非常不同的两个代码版本的差异_Formatting_Diff_Indentation - Fatal编程技术网

Formatting 了解格式非常不同的两个代码版本的差异

Formatting 了解格式非常不同的两个代码版本的差异,formatting,diff,indentation,Formatting,Diff,Indentation,我有两个C程序的文件。我想两者属于完全相同的版本。使用“diff”我可以知道差异在哪里,可能包括3行。问题是,第二个文件被提供给了另一个程序员,他使用了完全不同的索引、括号样式等,但可能只更改了我需要查找的那3行。如果我使用“diff”,我会得到很多差异。所以我的问题是,在这种情况下,我如何知道代码方面的差异在哪里。我尝试对两个文件应用相同的格式,然后使用“diff”,但在我的情况下不起作用。使用a格式化两个文件,然后执行diff。使用a格式化两个文件,然后执行diff。diff使用-w选项,告

我有两个C程序的文件。我想两者属于完全相同的版本。使用“diff”我可以知道差异在哪里,可能包括3行。问题是,第二个文件被提供给了另一个程序员,他使用了完全不同的索引、括号样式等,但可能只更改了我需要查找的那3行。如果我使用“diff”,我会得到很多差异。所以我的问题是,在这种情况下,我如何知道代码方面的差异在哪里。我尝试对两个文件应用相同的格式,然后使用“diff”,但在我的情况下不起作用。

使用a格式化两个文件,然后执行diff。

使用a格式化两个文件,然后执行diff。

diff使用
-w
选项,告诉它在比较行时忽略所有空白。但是,如果一个文件中的一行可能被另一个文件中的两行或多行分割,您最好接受@Jeff Foster的建议。

diff
采用
-w
选项,告诉它在比较行时忽略所有空白。但是,如果一个文件中的一行可能被另一个文件中的两行或多行分割,您最好接受@Jeff Foster的建议。

您可以使用我们的程序。它通过使用真正的解析器对两个代码文件进行解析来进行比较(使其完全独立于格式和位置或对注释的更改), 比较语法树,然后根据解释发生了什么的编辑操作(复制、移动、插入、块内铰变量)报告更改。所以你看到的是不同的朗格结构,而不是直线,这通常会产生更小的差异结果。如果实际的文字值相同,它甚至会忽略数字基数和字符串转义的更改

对于像C#和Java这样的语言,这种方法非常有效。C有点问题,因为人们编写了滥用的C代码,在不知道所有定义和#包含等的情况下无法解析。因此,它不会处理一些文件,您将不得不使用传统的diff,可能会像另一位作者所建议的那样使用格式化程序进行扩展,但这仍然只会给您带来行差异。C++的问题和C一样,但实际上C++代码并没有滥用。< / P> < P>你可以使用我们的程序。它通过使用真正的解析器对两个代码文件进行解析来进行比较(使其完全独立于格式和位置或对注释的更改), 比较语法树,然后根据解释发生了什么的编辑操作(复制、移动、插入、块内铰变量)报告更改。所以你看到的是不同的朗格结构,而不是直线,这通常会产生更小的差异结果。如果实际的文字值相同,它甚至会忽略数字基数和字符串转义的更改


对于像C#和Java这样的语言,这种方法非常有效。C有点问题,因为人们编写了滥用的C代码,在不知道所有定义和#包含等的情况下无法解析。因此,它不会处理一些文件,您将不得不使用传统的diff,可能会像另一位作者所建议的那样使用格式化程序进行扩展,但这仍然只会给您带来行差异。C++的问题和C一样,但实际上C++代码并不像滥用。

我会在代码中推荐ASTYLE插件::这是一种享受,而且是相当可定制的。VisualStudio也可以进行自动格式化。不过,您可能可以为您选择的编辑器找到合适的插件。我将推荐Code::Blocks API中的AStyle插件。这是一种享受,而且是相当可定制的。VisualStudio也可以进行自动格式化。不过,你可能会为你选择的编辑器找到一个合适的插件。你知道一些开源等价物吗?据我所知,没有开源等价物。关于过去是否有人问过免费版本的问题,除了我们没有其他答案。看,这并不让我感到惊讶;要拥有这样一个产品线,您需要两个罕见的构件:精确的语言解析器和有用的AST差分算法(AFAIK,仅在研究论文中发表)的实际实现。我们碰巧两者都有,后者是由于一些严肃的思想和汗水,超出了论文的内容。你知道一些开源等价物吗?据我所知,没有开源等价物。关于过去是否有人问过免费版本的问题,除了我们没有其他答案。看,这并不让我感到惊讶;要拥有这样一个产品线,您需要两个罕见的构件:精确的语言解析器和有用的AST差分算法(AFAIK,仅在研究论文中发表)的实际实现。我们碰巧两者都有,后者是由于一些严肃的思想和汗水,超出了报纸上的内容。