summaryrefslogtreecommitdiff
path: root/log-tree.c
diff options
context:
space:
mode:
Diffstat (limited to 'log-tree.c')
-rw-r--r--log-tree.c35
1 files changed, 31 insertions, 4 deletions
diff --git a/log-tree.c b/log-tree.c
index 33eb96b50c..5dd1b63076 100644
--- a/log-tree.c
+++ b/log-tree.c
@@ -1,4 +1,5 @@
#define USE_THE_REPOSITORY_VARIABLE
+#define DISABLE_SIGN_COMPARE_WARNINGS
#include "git-compat-util.h"
#include "commit-reach.h"
@@ -232,6 +233,11 @@ void load_ref_decorations(struct decoration_filter *filter, int flags)
for_each_string_list_item(item, filter->exclude_ref_config_pattern) {
normalize_glob_ref(item, NULL, item->string);
}
+
+ /* normalize_glob_ref duplicates the strings */
+ filter->exclude_ref_pattern->strdup_strings = 1;
+ filter->include_ref_pattern->strdup_strings = 1;
+ filter->exclude_ref_config_pattern->strdup_strings = 1;
}
decoration_loaded = 1;
decoration_flags = flags;
@@ -243,6 +249,27 @@ void load_ref_decorations(struct decoration_filter *filter, int flags)
}
}
+void load_branch_decorations(void)
+{
+ if (!decoration_loaded) {
+ struct string_list decorate_refs_exclude = STRING_LIST_INIT_NODUP;
+ struct string_list decorate_refs_exclude_config = STRING_LIST_INIT_NODUP;
+ struct string_list decorate_refs_include = STRING_LIST_INIT_NODUP;
+ struct decoration_filter decoration_filter = {
+ .include_ref_pattern = &decorate_refs_include,
+ .exclude_ref_pattern = &decorate_refs_exclude,
+ .exclude_ref_config_pattern = &decorate_refs_exclude_config,
+ };
+
+ string_list_append(&decorate_refs_include, "refs/heads/");
+ load_ref_decorations(&decoration_filter, 0);
+
+ string_list_clear(&decorate_refs_exclude, 0);
+ string_list_clear(&decorate_refs_exclude_config, 0);
+ string_list_clear(&decorate_refs_include, 0);
+ }
+}
+
static void show_parents(struct commit *commit, int abbrev, FILE *file)
{
struct commit_list *p;
@@ -472,7 +499,7 @@ void log_write_email_headers(struct rev_info *opt, struct commit *commit,
{
struct strbuf headers = STRBUF_INIT;
const char *name = oid_to_hex(opt->zero_commit ?
- null_oid() : &commit->object.oid);
+ null_oid(the_hash_algo) : &commit->object.oid);
*need_8bit_cte_p = 0; /* unknown */
@@ -675,7 +702,7 @@ static void show_diff_of_diff(struct rev_info *opt)
struct diff_queue_struct dq;
memcpy(&dq, &diff_queued_diff, sizeof(diff_queued_diff));
- DIFF_QUEUE_CLEAR(&diff_queued_diff);
+ diff_queue_init(&diff_queued_diff);
fprintf_ln(opt->diffopt.file, "\n%s", opt->idiff_title);
show_interdiff(opt->idiff_oid1, opt->idiff_oid2, 2,
@@ -694,7 +721,7 @@ static void show_diff_of_diff(struct rev_info *opt)
};
memcpy(&dq, &diff_queued_diff, sizeof(diff_queued_diff));
- DIFF_QUEUE_CLEAR(&diff_queued_diff);
+ diff_queue_init(&diff_queued_diff);
fprintf_ln(opt->diffopt.file, "\n%s", opt->rdiff_title);
/*
@@ -1015,7 +1042,7 @@ static int do_remerge_diff(struct rev_info *opt,
* into the alternative object store list as the primary.
*/
if (opt->remerge_diff && !opt->remerge_objdir) {
- opt->remerge_objdir = tmp_objdir_create("remerge-diff");
+ opt->remerge_objdir = tmp_objdir_create(the_repository, "remerge-diff");
if (!opt->remerge_objdir)
return error(_("unable to create temporary object directory"));
tmp_objdir_replace_primary_odb(opt->remerge_objdir, 1);