зеркало из https://github.com/microsoft/git.git
Merge branch 'jc/maint-combine-diff-pre-context' into maint
* jc/maint-combine-diff-pre-context: diff -c/--cc: do not include uninteresting deletion before leading context
This commit is contained in:
Коммит
4ace4fc584
|
@ -84,6 +84,7 @@ struct sline {
|
||||||
/* bit 0 up to (N-1) are on if the parent has this line (i.e.
|
/* bit 0 up to (N-1) are on if the parent has this line (i.e.
|
||||||
* we did not change it).
|
* we did not change it).
|
||||||
* bit N is used for "interesting" lines, including context.
|
* bit N is used for "interesting" lines, including context.
|
||||||
|
* bit (N+1) is used for "do not show deletion before this".
|
||||||
*/
|
*/
|
||||||
unsigned long flag;
|
unsigned long flag;
|
||||||
unsigned long *p_lno;
|
unsigned long *p_lno;
|
||||||
|
@ -308,6 +309,7 @@ static int give_context(struct sline *sline, unsigned long cnt, int num_parent)
|
||||||
{
|
{
|
||||||
unsigned long all_mask = (1UL<<num_parent) - 1;
|
unsigned long all_mask = (1UL<<num_parent) - 1;
|
||||||
unsigned long mark = (1UL<<num_parent);
|
unsigned long mark = (1UL<<num_parent);
|
||||||
|
unsigned long no_pre_delete = (2UL<<num_parent);
|
||||||
unsigned long i;
|
unsigned long i;
|
||||||
|
|
||||||
/* Two groups of interesting lines may have a short gap of
|
/* Two groups of interesting lines may have a short gap of
|
||||||
|
@ -329,7 +331,7 @@ static int give_context(struct sline *sline, unsigned long cnt, int num_parent)
|
||||||
|
|
||||||
/* Paint a few lines before the first interesting line. */
|
/* Paint a few lines before the first interesting line. */
|
||||||
while (j < i)
|
while (j < i)
|
||||||
sline[j++].flag |= mark;
|
sline[j++].flag |= mark | no_pre_delete;
|
||||||
|
|
||||||
again:
|
again:
|
||||||
/* we know up to i is to be included. where does the
|
/* we know up to i is to be included. where does the
|
||||||
|
@ -502,6 +504,7 @@ static void dump_sline(struct sline *sline, unsigned long cnt, int num_parent,
|
||||||
int use_color)
|
int use_color)
|
||||||
{
|
{
|
||||||
unsigned long mark = (1UL<<num_parent);
|
unsigned long mark = (1UL<<num_parent);
|
||||||
|
unsigned long no_pre_delete = (2UL<<num_parent);
|
||||||
int i;
|
int i;
|
||||||
unsigned long lno = 0;
|
unsigned long lno = 0;
|
||||||
const char *c_frag = diff_get_color(use_color, DIFF_FRAGINFO);
|
const char *c_frag = diff_get_color(use_color, DIFF_FRAGINFO);
|
||||||
|
@ -581,7 +584,7 @@ static void dump_sline(struct sline *sline, unsigned long cnt, int num_parent,
|
||||||
int j;
|
int j;
|
||||||
unsigned long p_mask;
|
unsigned long p_mask;
|
||||||
sl = &sline[lno++];
|
sl = &sline[lno++];
|
||||||
ll = sl->lost_head;
|
ll = (sl->flag & no_pre_delete) ? NULL : sl->lost_head;
|
||||||
while (ll) {
|
while (ll) {
|
||||||
fputs(c_old, stdout);
|
fputs(c_old, stdout);
|
||||||
for (j = 0; j < num_parent; j++) {
|
for (j = 0; j < num_parent; j++) {
|
||||||
|
|
Загрузка…
Ссылка в новой задаче