如何使用'git show commit_id'输出获得修改行的确切行号?

时间:2014-11-05 07:05:04

标签: python git

我正在学习git,想知道如何使用git show commit_id获取修改后的行的确切行号。我正在编写一个python脚本来完成某项任务,并希望修改行的确切行号。例如,请考虑以下事项:

//some extra lines here...
diff --combined describe.c
index fabadb8,cc95eb0..4866510
--- a/describe.c
+++ b/describe.c
@@@ -98,20 -98,12 +98,20 @@@
    return (a_date > b_date) ? -1 : (a_date == b_date) ? 0 : 1;
}

- static void describe(char *arg)
 -static void describe(struct commit *cmit, int last_one)
++static void describe(char *arg, int last_one)
  {
 +      unsigned char sha1[20];
 +      struct commit *cmit;
    struct commit_list *list;
    static int initialized = 0;
    struct commit_name *n;

 +      if (get_sha1(arg, sha1) < 0)
 +              usage(describe_usage);
 +      cmit = lookup_commit_reference(sha1);
 +      if (!cmit)
 +              usage(describe_usage);
 +
    if (!initialized) {
            initialized = 1;
            for_each_ref(get_name);

在此输出中,从顶部的5行,给出98,但这不是我们进行更改的行号。我们如何得到修改线的确切行数。一种选择是我们扫描文件并使用git show commit_id输出的内容查找行号,但效率不高。

0 个答案:

没有答案