gpt4 book ai didi

git - git blame --incremental 输出中的 sourceline 和 resultline 是什么?

转载 作者:太空狗 更新时间:2023-10-29 14:16:48 25 4
gpt4 key购买 nike

来自 git blame docs :

When called with --incremental option, the command outputs the result as it is built. The output generally will talk about lines touched by more recent commits first (i.e. the lines will be annotated out of order) and is meant to be used by interactive viewers.

The output format is similar to the Porcelain format, but it does not contain the actual lines from the file that is being annotated.

Each blame entry always starts with a line of:

<40-byte hex sha1> <sourceline> <resultline> <num_lines>

Line numbers count from 1.

我认为相同的模式用于 --porcelain docs says 的格式:

In this format, each line is output after a header; the header at the minimum has the first line which has:

  • 40-byte SHA-1 of the commit the line is attributed to;

  • the line number of the line in the original file;

  • the line number of the line in the final file;

    [...]

但每次我使用这些选项之一运行 git blame 时,sourceline (原始行)和 resultline (最后一行)是一样的。我可以在 git diff 中理解这些输出,但是在 git blame 中这意味着什么?如何在 sourceline 的位置生成输出和 resultline有区别吗?

最佳答案

答案太明显了,太傻了,我没注意到。

  • sourceline 是提交代码的行号。
  • resultline 是代码所在的行号。

例子:

index.html 的第一次提交::

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>

</body>
</html>

index.html 的第二次提交(添加了 4 行):

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<div>
<p>
Hello World!
</p>
</div>
</body>
</html>

然后是git blame --incremental index.html的输出看起来像这样:

f0a2d579be45dc1283672b4750bdc1923a9f7b2d 10 10 5
...
summary Hello World
previous ce3f4934051212a78c2fed853a113e2223428809 index.html
filename index.html
ce3f4934051212a78c2fed853a113e2223428809 1 1 9
...
summary initial commit
boundary
filename index.html
ce3f4934051212a78c2fed853a113e2223428809 11 15 2
filename index.html

请注意,输出指定在第 11 和 12 行提交时 的 2 行(</body></html>)现在位于第 15 和 16 行。

这对 --porcelain 的工作方式相同输出。

我想我在问这个问题之前没有对此进行足够的测试,必须只对代码附加到文件末尾的文件进行测试。

关于git - git blame --incremental 输出中的 sourceline 和 resultline 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49370690/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com