Skip to content

Commit

Permalink
combine-diff: finishing touches to git-diff-tree --cc
Browse files Browse the repository at this point in the history
This updates the output format to make administrative lines more
consistent with the traditional diffs.

The "index" line shows blob object names from each parents
(separated by commas), double dots and the object name of the
resulting blob.

The hunk header line begins with N+1 '@' characters for N-way
diff, the line number L of the first line in the hunk and line
count C from the parent in "-L,C" format for each parents and
then the line number of the first line in the hunk and line
count from the resulting file in "+L,C" format, and finally
N+1 '@' characters (earlier versions had the line numbers from
the resulting file at the beginning).

Signed-off-by: Junio C Hamano <junkio@cox.net>
  • Loading branch information
Junio C Hamano committed Feb 3, 2006
1 parent 46dc941 commit f7a3d33
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions combine-diff.c
Original file line number Diff line number Diff line change
Expand Up @@ -528,7 +528,7 @@ static void show_parent_lno(struct sline *sline, unsigned long l0, unsigned long
{
l0 = sline[l0].p_lno[n];
l1 = sline[l1].p_lno[n];
printf("-%lu,%lu ", l0, l1-l0);
printf(" -%lu,%lu", l0, l1-l0);
}

static void dump_sline(struct sline *sline, unsigned long cnt, int num_parent)
Expand All @@ -548,9 +548,9 @@ static void dump_sline(struct sline *sline, unsigned long cnt, int num_parent)
if (!(sline[hunk_end].flag & mark))
break;
for (i = 0; i <= num_parent; i++) putchar(combine_marker);
printf(" +%lu,%lu ", lno+1, hunk_end-lno);
for (i = 0; i < num_parent; i++)
show_parent_lno(sline, lno, hunk_end, cnt, i);
printf(" +%lu,%lu ", lno+1, hunk_end-lno);
for (i = 0; i <= num_parent; i++) putchar(combine_marker);
putchar('\n');
while (lno < hunk_end) {
Expand Down Expand Up @@ -714,11 +714,11 @@ int show_combined_diff(struct combine_diff_path *elem, int num_parent,
printf("index ");
for (i = 0; i < num_parent; i++) {
printf("%s%s",
i ? ".." : "",
i ? "," : "",
find_unique_abbrev(elem->parent_sha1[i],
DEFAULT_ABBREV));
}
printf("->%s\n",
printf("..%s\n",
find_unique_abbrev(elem->sha1, DEFAULT_ABBREV));
dump_sline(sline, cnt, num_parent);
}
Expand Down

0 comments on commit f7a3d33

Please sign in to comment.