]> git.ipfire.org Git - thirdparty/git.git/commitdiff
Merge branch 'bw/submodule-sans-cache-compat'
authorJunio C Hamano <gitster@pobox.com>
Wed, 27 Dec 2017 19:16:28 +0000 (11:16 -0800)
committerJunio C Hamano <gitster@pobox.com>
Wed, 27 Dec 2017 19:16:28 +0000 (11:16 -0800)
Code clean-up.

* bw/submodule-sans-cache-compat:
  submodule: convert get_next_submodule to not rely on the_index
  submodule: used correct index in is_staging_gitmodules_ok
  submodule: convert stage_updated_gitmodules to take a struct index_state

1  2 
submodule.c

diff --combined submodule.c
index fa25888783aa9ba7ce5b290ba64ec3c1b7a87cec,59372eada822882b9d66e5802e0ec0f1da40568e..29677043174f8d77d6774bc2533b653d03adf990
@@@ -1,3 -1,5 +1,5 @@@
+ #define NO_THE_INDEX_COMPATIBILITY_MACROS
  #include "cache.h"
  #include "repository.h"
  #include "config.h"
@@@ -55,14 -57,15 +57,15 @@@ int is_gitmodules_unmerged(const struc
   * future version when we learn to stage the changes we do ourselves without
   * staging any previous modifications.
   */
- int is_staging_gitmodules_ok(const struct index_state *istate)
+ int is_staging_gitmodules_ok(struct index_state *istate)
  {
        int pos = index_name_pos(istate, GITMODULES_FILE, strlen(GITMODULES_FILE));
  
        if ((pos >= 0) && (pos < istate->cache_nr)) {
                struct stat st;
                if (lstat(GITMODULES_FILE, &st) == 0 &&
-                   ce_match_stat(istate->cache[pos], &st, CE_MATCH_IGNORE_FSMONITOR) & DATA_CHANGED)
+                   ie_match_stat(istate, istate->cache[pos], &st,
+                                 CE_MATCH_IGNORE_FSMONITOR) & DATA_CHANGED)
                        return 0;
        }
  
@@@ -143,9 -146,9 +146,9 @@@ int remove_path_from_gitmodules(const c
        return 0;
  }
  
- void stage_updated_gitmodules(void)
+ void stage_updated_gitmodules(struct index_state *istate)
  {
-       if (add_file_to_cache(GITMODULES_FILE, 0))
+       if (add_file_to_index(istate, GITMODULES_FILE, 0))
                die(_("staging updated .gitmodules failed"));
  }
  
@@@ -587,7 -590,7 +590,7 @@@ void show_submodule_inline_diff(struct 
                struct object_id *one, struct object_id *two,
                unsigned dirty_submodule)
  {
 -      const struct object_id *old = &empty_tree_oid, *new = &empty_tree_oid;
 +      const struct object_id *old = the_hash_algo->empty_tree, *new = the_hash_algo->empty_tree;
        struct commit *left = NULL, *right = NULL;
        struct commit_list *merge_bases = NULL;
        struct child_process cp = CHILD_PROCESS_INIT;
@@@ -1178,7 -1181,7 +1181,7 @@@ int submodule_touches_in_range(struct o
  struct submodule_parallel_fetch {
        int count;
        struct argv_array args;
-       const char *work_tree;
+       struct repository *r;
        const char *prefix;
        int command_line_option;
        int default_option;
@@@ -1199,7 -1202,7 +1202,7 @@@ static int get_fetch_recurse_config(con
  
                int fetch_recurse = submodule->fetch_recurse;
                key = xstrfmt("submodule.%s.fetchRecurseSubmodules", submodule->name);
-               if (!repo_config_get_string_const(the_repository, key, &value)) {
+               if (!repo_config_get_string_const(spf->r, key, &value)) {
                        fetch_recurse = parse_fetch_recurse_submodules_arg(key, value);
                }
                free(key);
@@@ -1218,11 -1221,11 +1221,11 @@@ static int get_next_submodule(struct ch
        int ret = 0;
        struct submodule_parallel_fetch *spf = data;
  
-       for (; spf->count < active_nr; spf->count++) {
+       for (; spf->count < spf->r->index->cache_nr; spf->count++) {
                struct strbuf submodule_path = STRBUF_INIT;
                struct strbuf submodule_git_dir = STRBUF_INIT;
                struct strbuf submodule_prefix = STRBUF_INIT;
-               const struct cache_entry *ce = active_cache[spf->count];
+               const struct cache_entry *ce = spf->r->index->cache[spf->count];
                const char *git_dir, *default_argv;
                const struct submodule *submodule;
                struct submodule default_submodule = SUBMODULE_INIT;
                if (!S_ISGITLINK(ce->ce_mode))
                        continue;
  
-               submodule = submodule_from_path(&null_oid, ce->name);
+               submodule = submodule_from_cache(spf->r, &null_oid, ce->name);
                if (!submodule) {
                        const char *name = default_name_or_path(ce->name);
                        if (name) {
                        continue;
                }
  
-               strbuf_addf(&submodule_path, "%s/%s", spf->work_tree, ce->name);
+               strbuf_repo_worktree_path(&submodule_path, spf->r, "%s", ce->name);
                strbuf_addf(&submodule_git_dir, "%s/.git", submodule_path.buf);
                strbuf_addf(&submodule_prefix, "%s%s/", spf->prefix, ce->name);
                git_dir = read_gitfile(submodule_git_dir.buf);
@@@ -1309,7 -1312,8 +1312,8 @@@ static int fetch_finish(int retvalue, s
        return 0;
  }
  
- int fetch_populated_submodules(const struct argv_array *options,
+ int fetch_populated_submodules(struct repository *r,
+                              const struct argv_array *options,
                               const char *prefix, int command_line_option,
                               int default_option,
                               int quiet, int max_parallel_jobs)
        int i;
        struct submodule_parallel_fetch spf = SPF_INIT;
  
-       spf.work_tree = get_git_work_tree();
+       spf.r = r;
        spf.command_line_option = command_line_option;
        spf.default_option = default_option;
        spf.quiet = quiet;
        spf.prefix = prefix;
  
-       if (!spf.work_tree)
+       if (!r->worktree)
                goto out;
  
-       if (read_cache() < 0)
+       if (repo_read_index(r) < 0)
                die("index file corrupt");
  
        argv_array_push(&spf.args, "fetch");