mirror of
https://github.com/git/git.git
synced 2026-01-10 01:56:42 +00:00
diff: drop dry-run redirection to /dev/null
As an added protection against dry-run diffs accidentally producing output, we redirect diff_options.file to /dev/null. But as of the previous patch, this now does nothing, since dry-run diffs are implemented by setting "file" to NULL. So we can drop this extra code with no change in behavior. This is effectively a revert of623f7af284(diff: restore redirection to /dev/null for diff_from_contents, 2025-10-17) and3da4413dbc(diff: make sure the other caller of diff_flush_patch_quietly() is silent, 2025-10-22), but: 1. We get a conflict because we already dropped the color_moved handling in an earlier patch. But we just resolve the conflicts to "theirs" (removing all of the code). 2. We retain the test from623f7af284. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
b2b5ad514d
commit
1ad2760020
31
diff.c
31
diff.c
@@ -6835,35 +6835,18 @@ void diff_flush(struct diff_options *options)
|
||||
DIFF_FORMAT_NAME |
|
||||
DIFF_FORMAT_NAME_STATUS |
|
||||
DIFF_FORMAT_CHECKDIFF)) {
|
||||
/*
|
||||
* make sure diff_Flush_patch_quietly() to be silent.
|
||||
*/
|
||||
FILE *dev_null = NULL;
|
||||
|
||||
if (options->flags.diff_from_contents) {
|
||||
dev_null = xfopen("/dev/null", "w");
|
||||
}
|
||||
for (i = 0; i < q->nr; i++) {
|
||||
struct diff_filepair *p = q->queue[i];
|
||||
|
||||
if (!check_pair_status(p))
|
||||
continue;
|
||||
|
||||
if (options->flags.diff_from_contents) {
|
||||
FILE *saved_file = options->file;
|
||||
int found_changes;
|
||||
if (options->flags.diff_from_contents &&
|
||||
!diff_flush_patch_quietly(p, options))
|
||||
continue;
|
||||
|
||||
options->file = dev_null;
|
||||
found_changes = diff_flush_patch_quietly(p, options);
|
||||
options->file = saved_file;
|
||||
if (!found_changes)
|
||||
continue;
|
||||
}
|
||||
flush_one_pair(p, options);
|
||||
}
|
||||
if (options->flags.diff_from_contents) {
|
||||
fclose(dev_null);
|
||||
}
|
||||
separator++;
|
||||
}
|
||||
|
||||
@@ -6914,14 +6897,6 @@ void diff_flush(struct diff_options *options)
|
||||
if (output_format & DIFF_FORMAT_NO_OUTPUT &&
|
||||
options->flags.exit_with_status &&
|
||||
options->flags.diff_from_contents) {
|
||||
/*
|
||||
* run diff_flush_patch for the exit status. setting
|
||||
* options->file to /dev/null should be safe, because we
|
||||
* aren't supposed to produce any output anyway.
|
||||
*/
|
||||
diff_free_file(options);
|
||||
options->file = xfopen("/dev/null", "w");
|
||||
options->close_file = 1;
|
||||
for (i = 0; i < q->nr; i++) {
|
||||
struct diff_filepair *p = q->queue[i];
|
||||
if (check_pair_status(p))
|
||||
|
||||
Reference in New Issue
Block a user