Skip to content

Commit

Permalink
Merge branch 'y5/diff-pager' into seen
Browse files Browse the repository at this point in the history
Delay setting up the pager in 'git diff' until after the diff contents
itself is fully prepared.

* y5/diff-pager:
  diff: setup pager only before diff contents truly ready
  • Loading branch information
ttaylorr committed Oct 30, 2024
2 parents ded65f5 + d461aea commit b1aac09
Showing 1 changed file with 6 additions and 2 deletions.
8 changes: 6 additions & 2 deletions builtin/diff.c
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,7 @@ static void builtin_diff_b_f(struct rev_info *revs,
1, 0,
blob[0]->path ? blob[0]->path : path,
path);
setup_diff_pager(&revs->diffopt);
diffcore_std(&revs->diffopt);
diff_flush(&revs->diffopt);
}
Expand All @@ -129,6 +130,7 @@ static void builtin_diff_blobs(struct rev_info *revs,
&blob[0]->item->oid, &blob[1]->item->oid,
1, 1,
blob_path(blob[0]), blob_path(blob[1]));
setup_diff_pager(&revs->diffopt);
diffcore_std(&revs->diffopt);
diff_flush(&revs->diffopt);
}
Expand Down Expand Up @@ -164,6 +166,7 @@ static void builtin_diff_index(struct rev_info *revs,
} else if (repo_read_index(the_repository) < 0) {
die_errno("repo_read_cache");
}
setup_diff_pager(&revs->diffopt);
run_diff_index(revs, option);
}

Expand Down Expand Up @@ -201,6 +204,7 @@ static void builtin_diff_tree(struct rev_info *revs,
oid[swap] = &ent0->item->oid;
oid[1 - swap] = &ent1->item->oid;
}
setup_diff_pager(&revs->diffopt);
diff_tree_oid(oid[0], oid[1], "", &revs->diffopt);
log_tree_diff_flush(revs);
}
Expand All @@ -227,6 +231,7 @@ static void builtin_diff_combined(struct rev_info *revs,
if (i != first_non_parent)
oid_array_append(&parents, &ent[i].item->oid);
}
setup_diff_pager(&revs->diffopt);
diff_tree_combined(&ent[first_non_parent].item->oid, &parents, revs);
oid_array_clear(&parents);
}
Expand Down Expand Up @@ -283,6 +288,7 @@ static void builtin_diff_files(struct rev_info *revs, int argc, const char **arg
0) < 0) {
die_errno("repo_read_index_preload");
}
setup_diff_pager(&revs->diffopt);
run_diff_files(revs, options);
}

Expand Down Expand Up @@ -523,8 +529,6 @@ int cmd_diff(int argc,
rev.diffopt.flags.recursive = 1;
rev.diffopt.rotate_to_strict = 1;

setup_diff_pager(&rev.diffopt);

/*
* Do we have --cached and not have a pending object, then
* default to HEAD by hand. Eek.
Expand Down

0 comments on commit b1aac09

Please sign in to comment.