mirror of
https://github.com/git-for-windows/git.git
synced 2025-12-15 12:58:18 -06:00
diff-merges: new function diff_merges_set_dense_combined_if_unset()
Call it where given functionality is needed instead of direct checking/tweaking of diff merges related fields. Signed-off-by: Sergey Organov <sorganov@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
09322b1da9
commit
3b6c17b5c0
@ -7,6 +7,7 @@
|
|||||||
#include "cache.h"
|
#include "cache.h"
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
#include "diff.h"
|
#include "diff.h"
|
||||||
|
#include "diff-merges.h"
|
||||||
#include "commit.h"
|
#include "commit.h"
|
||||||
#include "revision.h"
|
#include "revision.h"
|
||||||
#include "builtin.h"
|
#include "builtin.h"
|
||||||
@ -69,9 +70,9 @@ int cmd_diff_files(int argc, const char **argv, const char *prefix)
|
|||||||
* was not asked to. "diff-files -c -p" should not densify
|
* was not asked to. "diff-files -c -p" should not densify
|
||||||
* (the user should ask with "diff-files --cc" explicitly).
|
* (the user should ask with "diff-files --cc" explicitly).
|
||||||
*/
|
*/
|
||||||
if (rev.max_count == -1 && !rev.combine_merges &&
|
if (rev.max_count == -1 &&
|
||||||
(rev.diffopt.output_format & DIFF_FORMAT_PATCH))
|
(rev.diffopt.output_format & DIFF_FORMAT_PATCH))
|
||||||
rev.combine_merges = rev.dense_combined_merges = 1;
|
diff_merges_set_dense_combined_if_unset(&rev);
|
||||||
|
|
||||||
if (read_cache_preload(&rev.diffopt.pathspec) < 0) {
|
if (read_cache_preload(&rev.diffopt.pathspec) < 0) {
|
||||||
perror("read_cache_preload");
|
perror("read_cache_preload");
|
||||||
|
|||||||
@ -13,6 +13,7 @@
|
|||||||
#include "blob.h"
|
#include "blob.h"
|
||||||
#include "tag.h"
|
#include "tag.h"
|
||||||
#include "diff.h"
|
#include "diff.h"
|
||||||
|
#include "diff-merges.h"
|
||||||
#include "diffcore.h"
|
#include "diffcore.h"
|
||||||
#include "revision.h"
|
#include "revision.h"
|
||||||
#include "log-tree.h"
|
#include "log-tree.h"
|
||||||
@ -199,8 +200,8 @@ static int builtin_diff_combined(struct rev_info *revs,
|
|||||||
if (argc > 1)
|
if (argc > 1)
|
||||||
usage(builtin_diff_usage);
|
usage(builtin_diff_usage);
|
||||||
|
|
||||||
if (!revs->dense_combined_merges && !revs->combine_merges)
|
diff_merges_set_dense_combined_if_unset(revs);
|
||||||
revs->dense_combined_merges = revs->combine_merges = 1;
|
|
||||||
for (i = 1; i < ents; i++)
|
for (i = 1; i < ents; i++)
|
||||||
oid_array_append(&parents, &ent[i].item->oid);
|
oid_array_append(&parents, &ent[i].item->oid);
|
||||||
diff_tree_combined(&ent[0].item->oid, &parents, revs);
|
diff_tree_combined(&ent[0].item->oid, &parents, revs);
|
||||||
@ -248,9 +249,9 @@ static int builtin_diff_files(struct rev_info *revs, int argc, const char **argv
|
|||||||
* dense one, --cc can be explicitly asked for, or just rely
|
* dense one, --cc can be explicitly asked for, or just rely
|
||||||
* on the default).
|
* on the default).
|
||||||
*/
|
*/
|
||||||
if (revs->max_count == -1 && !revs->combine_merges &&
|
if (revs->max_count == -1 &&
|
||||||
(revs->diffopt.output_format & DIFF_FORMAT_PATCH))
|
(revs->diffopt.output_format & DIFF_FORMAT_PATCH))
|
||||||
revs->combine_merges = revs->dense_combined_merges = 1;
|
diff_merges_set_dense_combined_if_unset(revs);
|
||||||
|
|
||||||
setup_work_tree();
|
setup_work_tree();
|
||||||
if (read_cache_preload(&revs->diffopt.pathspec) < 0) {
|
if (read_cache_preload(&revs->diffopt.pathspec) < 0) {
|
||||||
|
|||||||
@ -10,6 +10,13 @@ static void suppress(struct rev_info *revs)
|
|||||||
revs->dense_combined_merges = 0;
|
revs->dense_combined_merges = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void set_dense_combined(struct rev_info *revs)
|
||||||
|
{
|
||||||
|
revs->combine_merges = 1;
|
||||||
|
revs->dense_combined_merges = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Public functions. They are in the order they are called.
|
* Public functions. They are in the order they are called.
|
||||||
*/
|
*/
|
||||||
@ -39,8 +46,7 @@ int diff_merges_parse_opts(struct rev_info *revs, const char **argv)
|
|||||||
revs->combine_merges = 1;
|
revs->combine_merges = 1;
|
||||||
} else if (!strcmp(arg, "--cc")) {
|
} else if (!strcmp(arg, "--cc")) {
|
||||||
revs->diff = 1;
|
revs->diff = 1;
|
||||||
revs->dense_combined_merges = 1;
|
set_dense_combined(revs);
|
||||||
revs->combine_merges = 1;
|
|
||||||
} else if (!strcmp(arg, "--no-diff-merges")) {
|
} else if (!strcmp(arg, "--no-diff-merges")) {
|
||||||
suppress(revs);
|
suppress(revs);
|
||||||
} else if (!strcmp(arg, "--combined-all-paths")) {
|
} else if (!strcmp(arg, "--combined-all-paths")) {
|
||||||
@ -80,6 +86,12 @@ void diff_merges_default_to_dense_combined(struct rev_info *revs)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void diff_merges_set_dense_combined_if_unset(struct rev_info *revs)
|
||||||
|
{
|
||||||
|
if (!revs->combine_merges)
|
||||||
|
set_dense_combined(revs);
|
||||||
|
}
|
||||||
|
|
||||||
void diff_merges_setup_revs(struct rev_info *revs)
|
void diff_merges_setup_revs(struct rev_info *revs)
|
||||||
{
|
{
|
||||||
if (revs->combine_merges && revs->ignore_merges < 0)
|
if (revs->combine_merges && revs->ignore_merges < 0)
|
||||||
|
|||||||
@ -19,6 +19,8 @@ void diff_merges_default_to_first_parent(struct rev_info *revs);
|
|||||||
|
|
||||||
void diff_merges_default_to_dense_combined(struct rev_info *revs);
|
void diff_merges_default_to_dense_combined(struct rev_info *revs);
|
||||||
|
|
||||||
|
void diff_merges_set_dense_combined_if_unset(struct rev_info *revs);
|
||||||
|
|
||||||
void diff_merges_setup_revs(struct rev_info *revs);
|
void diff_merges_setup_revs(struct rev_info *revs);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user