Git diff在现有函数中添加新函数,而不是在现有函数之后添加新函数
我开始更多地关注我正在创建的diff文件(使用git),我对这种情况下创建的diff的清晰性感到不满 我首先说:Git diff在现有函数中添加新函数,而不是在现有函数之后添加新函数,git,diff,Git,Diff,我开始更多地关注我正在创建的diff文件(使用git),我对这种情况下创建的diff的清晰性感到不满 我首先说: sub main { my $self = shift; return $self; } 然后,我添加第二个函数,并在第一个函数中对其进行调用,以获得: sub main { my $self = shift; $self -> process ( 'hello world!' ); return $self; } sub pr
sub main {
my $self = shift;
return $self;
}
然后,我添加第二个函数,并在第一个函数中对其进行调用,以获得:
sub main {
my $self = shift;
$self -> process ( 'hello world!' );
return $self;
}
sub process {
my $self = shift;
print @_, "\n";
return $self;
}
我得到的差异输出是:
@@ -1,5 +1,15 @@
sub main {
my $self = shift;
+ $self -> process ( 'hello world!' );
+
+ return $self;
+}
+
+sub process {
+ my $self = shift;
+
+ print @_, "\n";
+
return $self;
}
在我看来,这对读者来说是非常不整洁和不清楚的。添加的代码块使它看起来像是我在“main”函数中添加了很多行,而实际上我在它后面添加了很多行。例如,我希望/希望差异是这样的:
@@ -1,5 +1,15 @@
sub main {
my $self = shift;
+ $self -> process ( 'hello world!' );
+
return $self;
}
+
+sub process {
+ my $self = shift;
+
+ print @_, "\n";
+
+ return $self;
+}
我理解diff为什么要创建这个输出(从“a->b”开始的最简单的方式),但我希望它能变得更清楚。这可能吗?或者我正在考虑手动编辑差异,或者甚至将新函数的添加和对它的调用分离为两个单独的补丁/提交?[1]
我试过使用——没有最小值,——耐心和——直方图算法,但结果是相同的。使用“git add-p”手动编辑差异没有什么区别,它仍然作为第一个“不清楚”的差异进行分级
[1] 作为一个附带问题,这种分离是我应该做的吗?提交明智吗?通常人们不会将这样的更改分离为多个提交。 一般来说,规则是尝试让每个提交都独立。即使你 如果将其拆分为多个提交,人们通常会看到不同的 其中一项犯罪之前的国家和两项犯罪之后的国家,以及 因此,请查看与您所看到的相同类型的输出 使用
gitadd-p
肯定不会影响输出的差异。
这只是一种更好地控制哪些更改进入下一个更改的方法
犯罪无论如何,提交只包含树的新内容
您正在使用的,它不会记录与前一个的差异
版本以后显示的差异将在每次
他们被要求
有一件事有助于避免这种情况,那就是添加一条类似于#End的注释
每个函数的右括号后的
。但这也有其原因
承认它的丑陋。在实际代码中,这两种代码之间可能没有那么多的共性
不同的函数,因此差异出现的可能性较小
误导但在任何情况下,大多数人只是习惯了这种情况。根据,diff的默认上下文是3行。当两大块(可能的)独立变化更接近并因此重叠时,它们在一个普通大块中结合起来
您可以接受它,也可以始终使用-U
选项
使用上下文的
行而不是通常的三行生成差异
用你的分歧