]> git.ipfire.org Git - thirdparty/git.git/blobdiff - builtin/gc.c
string-list: multi-delimiter `string_list_split_in_place()`
[thirdparty/git.git] / builtin / gc.c
index c58fe8c936c63da46134c5ab764228baaa0b88ef..f68e9767043ecdbb66992718e13757cd667b2ab7 100644 (file)
@@ -11,6 +11,8 @@
  */
 
 #include "builtin.h"
+#include "abspath.h"
+#include "environment.h"
 #include "hex.h"
 #include "repository.h"
 #include "config.h"
 #include "refs.h"
 #include "remote.h"
 #include "exec-cmd.h"
+#include "gettext.h"
 #include "hook.h"
+#include "setup.h"
+#include "wrapper.h"
 
 #define FAILED_RUN "failed to run %s"
 
@@ -285,7 +290,7 @@ static uint64_t total_ram(void)
 
 static uint64_t estimate_repack_memory(struct packed_git *pack)
 {
-       unsigned long nr_objects = approximate_object_count();
+       unsigned long nr_objects = repo_approximate_object_count(the_repository);
        size_t os_cache, heap;
 
        if (!pack || !nr_objects)
@@ -700,7 +705,7 @@ int cmd_gc(int argc, const char **argv, const char *prefix)
                        strvec_push(&prune, prune_expire);
                        if (quiet)
                                strvec_push(&prune, "--no-progress");
-                       if (has_promisor_remote())
+                       if (repo_has_promisor_remote(the_repository))
                                strvec_push(&prune,
                                            "--exclude-promisor-objects");
                        prune_cmd.git_cmd = 1;
@@ -821,7 +826,7 @@ static int dfs_on_ref(const char *refname UNUSED,
        commit = lookup_commit(the_repository, oid);
        if (!commit)
                return 0;
-       if (parse_commit(commit) ||
+       if (repo_parse_commit(the_repository, commit) ||
            commit_graph_position(commit) != COMMIT_NOT_FROM_GRAPH)
                return 0;
 
@@ -838,7 +843,7 @@ static int dfs_on_ref(const char *refname UNUSED,
                commit = pop_commit(&stack);
 
                for (parent = commit->parents; parent; parent = parent->next) {
-                       if (parse_commit(parent->item) ||
+                       if (repo_parse_commit(the_repository, parent->item) ||
                            commit_graph_position(parent->item) != COMMIT_NOT_FROM_GRAPH ||
                            parent->item->object.flags & SEEN)
                                continue;
@@ -1494,7 +1499,6 @@ static int maintenance_register(int argc, const char **argv, const char *prefix)
        };
        int found = 0;
        const char *key = "maintenance.repo";
-       char *config_value;
        char *maintpath = get_maintpath();
        struct string_list_item *item;
        const struct string_list *list;
@@ -1509,13 +1513,10 @@ static int maintenance_register(int argc, const char **argv, const char *prefix)
        git_config_set("maintenance.auto", "false");
 
        /* Set maintenance strategy, if unset */
-       if (!git_config_get_string("maintenance.strategy", &config_value))
-               free(config_value);
-       else
+       if (git_config_get("maintenance.strategy"))
                git_config_set("maintenance.strategy", "incremental");
 
-       list = git_config_get_value_multi(key);
-       if (list) {
+       if (!git_config_get_string_multi(key, &list)) {
                for_each_string_list_item(item, list) {
                        if (!strcmp(maintpath, item->string)) {
                                found = 1;
@@ -1581,11 +1582,10 @@ static int maintenance_unregister(int argc, const char **argv, const char *prefi
        if (config_file) {
                git_configset_init(&cs);
                git_configset_add_file(&cs, config_file);
-               list = git_configset_get_value_multi(&cs, key);
-       } else {
-               list = git_config_get_value_multi(key);
        }
-       if (list) {
+       if (!(config_file
+             ? git_configset_get_string_multi(&cs, key, &list)
+             : git_config_get_string_multi(key, &list))) {
                for_each_string_list_item(item, list) {
                        if (!strcmp(maintpath, item->string)) {
                                found = 1;
@@ -1687,11 +1687,11 @@ static int get_schedule_cmd(const char **cmd, int *is_available)
        if (is_available)
                *is_available = 0;
 
-       string_list_split_in_place(&list, testing, ',', -1);
+       string_list_split_in_place(&list, testing, ",", -1);
        for_each_string_list_item(item, &list) {
                struct string_list pair = STRING_LIST_INIT_NODUP;
 
-               if (string_list_split_in_place(&pair, item->string, ':', 2) != 2)
+               if (string_list_split_in_place(&pair, item->string, ":", 2) != 2)
                        continue;
 
                if (!strcmp(*cmd, pair.items[0].string)) {