зеркало из https://github.com/microsoft/git.git
Merge branch 'ab/the-index-compatibility'
Remove more remaining uses of macros that relies on the_index singleton instance without explicitly spelling it out. * ab/the-index-compatibility: cocci & cache.h: remove "USE_THE_INDEX_COMPATIBILITY_MACROS" cache-tree API: remove redundant update_main_cache_tree() cocci & cache-tree.h: migrate "write_cache_as_tree" to "*_index_*" cocci & cache.h: apply pending "index_cache_pos" rule cocci & cache.h: fully apply "active_nr" part of index-compatibility builtin/rm.c: use narrower "USE_THE_INDEX_VARIABLE"
This commit is contained in:
Коммит
24fb150dcd
|
@ -3,7 +3,7 @@
|
|||
*
|
||||
* Based on git-am.sh by Junio C Hamano.
|
||||
*/
|
||||
#define USE_THE_INDEX_COMPATIBILITY_MACROS
|
||||
#define USE_THE_INDEX_VARIABLE
|
||||
#include "cache.h"
|
||||
#include "config.h"
|
||||
#include "builtin.h"
|
||||
|
@ -1655,7 +1655,7 @@ static void do_commit(const struct am_state *state)
|
|||
if (!state->no_verify && run_hooks("pre-applypatch"))
|
||||
exit(1);
|
||||
|
||||
if (write_cache_as_tree(&tree, 0, NULL))
|
||||
if (write_index_as_tree(&tree, &the_index, get_index_file(), 0, NULL))
|
||||
die(_("git write-tree failed to write a tree"));
|
||||
|
||||
if (!get_oid_commit("HEAD", &parent)) {
|
||||
|
@ -2063,7 +2063,7 @@ static int clean_index(const struct object_id *head, const struct object_id *rem
|
|||
if (fast_forward_to(head_tree, head_tree, 1))
|
||||
return -1;
|
||||
|
||||
if (write_cache_as_tree(&index, 0, NULL))
|
||||
if (write_index_as_tree(&index, &the_index, get_index_file(), 0, NULL))
|
||||
return -1;
|
||||
|
||||
index_tree = parse_tree_indirect(&index);
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
* Based on git-commit.sh by Junio C Hamano and Linus Torvalds
|
||||
*/
|
||||
|
||||
#define USE_THE_INDEX_COMPATIBILITY_MACROS
|
||||
#define USE_THE_INDEX_VARIABLE
|
||||
#include "cache.h"
|
||||
#include "config.h"
|
||||
#include "lockfile.h"
|
||||
|
@ -414,7 +414,7 @@ static const char *prepare_index(const char **argv, const char *prefix,
|
|||
discard_index(&the_index);
|
||||
read_index_from(&the_index, get_lock_file_path(&index_lock),
|
||||
get_git_dir());
|
||||
if (update_main_cache_tree(WRITE_TREE_SILENT) == 0) {
|
||||
if (cache_tree_update(&the_index, WRITE_TREE_SILENT) == 0) {
|
||||
if (reopen_lock_file(&index_lock) < 0)
|
||||
die(_("unable to write index file"));
|
||||
if (write_locked_index(&the_index, &index_lock, 0))
|
||||
|
@ -444,7 +444,7 @@ static const char *prepare_index(const char **argv, const char *prefix,
|
|||
LOCK_DIE_ON_ERROR);
|
||||
add_files_to_cache(also ? prefix : NULL, &pathspec, 0);
|
||||
refresh_cache_or_die(refresh_flags);
|
||||
update_main_cache_tree(WRITE_TREE_SILENT);
|
||||
cache_tree_update(&the_index, WRITE_TREE_SILENT);
|
||||
if (write_locked_index(&the_index, &index_lock, 0))
|
||||
die(_("unable to write new_index file"));
|
||||
commit_style = COMMIT_NORMAL;
|
||||
|
@ -467,7 +467,7 @@ static const char *prepare_index(const char **argv, const char *prefix,
|
|||
refresh_cache_or_die(refresh_flags);
|
||||
if (the_index.cache_changed
|
||||
|| !cache_tree_fully_valid(the_index.cache_tree))
|
||||
update_main_cache_tree(WRITE_TREE_SILENT);
|
||||
cache_tree_update(&the_index, WRITE_TREE_SILENT);
|
||||
if (write_locked_index(&the_index, &index_lock,
|
||||
COMMIT_LOCK | SKIP_IF_UNCHANGED))
|
||||
die(_("unable to write new_index file"));
|
||||
|
@ -516,7 +516,7 @@ static const char *prepare_index(const char **argv, const char *prefix,
|
|||
repo_hold_locked_index(the_repository, &index_lock, LOCK_DIE_ON_ERROR);
|
||||
add_remove_files(&partial);
|
||||
refresh_index(&the_index, REFRESH_QUIET, NULL, NULL, NULL);
|
||||
update_main_cache_tree(WRITE_TREE_SILENT);
|
||||
cache_tree_update(&the_index, WRITE_TREE_SILENT);
|
||||
if (write_locked_index(&the_index, &index_lock, 0))
|
||||
die(_("unable to write new_index file"));
|
||||
|
||||
|
@ -991,9 +991,9 @@ static int prepare_to_commit(const char *index_file, const char *prefix,
|
|||
struct object_id oid;
|
||||
const char *parent = "HEAD";
|
||||
|
||||
if (!active_nr) {
|
||||
discard_cache();
|
||||
if (read_cache() < 0)
|
||||
if (!the_index.cache_nr) {
|
||||
discard_index(&the_index);
|
||||
if (repo_read_index(the_repository) < 0)
|
||||
die(_("Cannot read index"));
|
||||
}
|
||||
|
||||
|
@ -1079,7 +1079,7 @@ static int prepare_to_commit(const char *index_file, const char *prefix,
|
|||
}
|
||||
read_index_from(&the_index, index_file, get_git_dir());
|
||||
|
||||
if (update_main_cache_tree(0)) {
|
||||
if (cache_tree_update(&the_index, 0)) {
|
||||
error(_("Error building trees"));
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
* Based on git-merge.sh by Junio C Hamano.
|
||||
*/
|
||||
|
||||
#define USE_THE_INDEX_COMPATIBILITY_MACROS
|
||||
#define USE_THE_INDEX_VARIABLE
|
||||
#include "cache.h"
|
||||
#include "config.h"
|
||||
#include "parse-options.h"
|
||||
|
@ -390,8 +390,8 @@ static void restore_state(const struct object_id *head,
|
|||
run_command(&cmd);
|
||||
|
||||
refresh_cache:
|
||||
discard_cache();
|
||||
if (read_cache() < 0)
|
||||
discard_index(&the_index);
|
||||
if (repo_read_index(the_repository) < 0)
|
||||
die(_("could not read index"));
|
||||
}
|
||||
|
||||
|
@ -706,7 +706,7 @@ static int read_tree_trivial(struct object_id *common, struct object_id *head,
|
|||
|
||||
static void write_tree_trivial(struct object_id *oid)
|
||||
{
|
||||
if (write_cache_as_tree(oid, 0, NULL))
|
||||
if (write_index_as_tree(oid, &the_index, get_index_file(), 0, NULL))
|
||||
die(_("git write-tree failed to write a tree"));
|
||||
}
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
*
|
||||
* Copyright (C) 2006 Johannes Schindelin
|
||||
*/
|
||||
#define USE_THE_INDEX_COMPATIBILITY_MACROS
|
||||
#define USE_THE_INDEX_VARIABLE
|
||||
#include "builtin.h"
|
||||
#include "config.h"
|
||||
#include "pathspec.h"
|
||||
|
@ -489,7 +489,8 @@ remove_entry:
|
|||
if ((mode & SPARSE) &&
|
||||
path_in_sparse_checkout(dst, &the_index)) {
|
||||
/* from out-of-cone to in-cone */
|
||||
int dst_pos = cache_name_pos(dst, strlen(dst));
|
||||
int dst_pos = index_name_pos(&the_index, dst,
|
||||
strlen(dst));
|
||||
struct cache_entry *dst_ce = the_index.cache[dst_pos];
|
||||
|
||||
dst_ce->ce_flags &= ~CE_SKIP_WORKTREE;
|
||||
|
@ -500,7 +501,8 @@ remove_entry:
|
|||
!(mode & SPARSE) &&
|
||||
!path_in_sparse_checkout(dst, &the_index)) {
|
||||
/* from in-cone to out-of-cone */
|
||||
int dst_pos = cache_name_pos(dst, strlen(dst));
|
||||
int dst_pos = index_name_pos(&the_index, dst,
|
||||
strlen(dst));
|
||||
struct cache_entry *dst_ce = the_index.cache[dst_pos];
|
||||
|
||||
/*
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
*
|
||||
* Copyright (C) Linus Torvalds 2006
|
||||
*/
|
||||
#define USE_THE_INDEX_COMPATIBILITY_MACROS
|
||||
#define USE_THE_INDEX_VARIABLE
|
||||
#include "builtin.h"
|
||||
#include "advice.h"
|
||||
#include "config.h"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#define USE_THE_INDEX_COMPATIBILITY_MACROS
|
||||
#define USE_THE_INDEX_VARIABLE
|
||||
#include "builtin.h"
|
||||
#include "config.h"
|
||||
#include "parse-options.h"
|
||||
|
@ -529,7 +529,8 @@ static int do_apply_stash(const char *prefix, struct stash_info *info,
|
|||
NULL, NULL, NULL))
|
||||
return -1;
|
||||
|
||||
if (write_cache_as_tree(&c_tree, 0, NULL))
|
||||
if (write_index_as_tree(&c_tree, &the_index, get_index_file(), 0,
|
||||
NULL))
|
||||
return error(_("cannot apply a stash in the middle of a merge"));
|
||||
|
||||
if (index) {
|
||||
|
@ -553,7 +554,8 @@ static int do_apply_stash(const char *prefix, struct stash_info *info,
|
|||
|
||||
discard_index(&the_index);
|
||||
repo_read_index(the_repository);
|
||||
if (write_cache_as_tree(&index_tree, 0, NULL))
|
||||
if (write_index_as_tree(&index_tree, &the_index,
|
||||
get_index_file(), 0, NULL))
|
||||
return error(_("could not save index tree"));
|
||||
|
||||
reset_head();
|
||||
|
@ -1378,7 +1380,8 @@ static int do_create_stash(const struct pathspec *ps, struct strbuf *stash_msg_b
|
|||
|
||||
strbuf_addf(&commit_tree_label, "index on %s\n", msg.buf);
|
||||
commit_list_insert(head_commit, &parents);
|
||||
if (write_cache_as_tree(&info->i_tree, 0, NULL) ||
|
||||
if (write_index_as_tree(&info->i_tree, &the_index, get_index_file(), 0,
|
||||
NULL) ||
|
||||
commit_tree(commit_tree_label.buf, commit_tree_label.len,
|
||||
&info->i_tree, parents, &info->i_commit, NULL, NULL)) {
|
||||
if (!quiet)
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
*
|
||||
* Copyright (C) Linus Torvalds, 2005
|
||||
*/
|
||||
#define USE_THE_INDEX_COMPATIBILITY_MACROS
|
||||
#define USE_THE_INDEX_VARIABLE
|
||||
#include "cache.h"
|
||||
#include "bulk-checkin.h"
|
||||
#include "config.h"
|
||||
|
@ -381,7 +381,7 @@ static int process_path(const char *path, struct stat *st, int stat_errno)
|
|||
if (has_symlink_leading_path(path, len))
|
||||
return error("'%s' is beyond a symbolic link", path);
|
||||
|
||||
pos = cache_name_pos(path, len);
|
||||
pos = index_name_pos(&the_index, path, len);
|
||||
ce = pos < 0 ? NULL : the_index.cache[pos];
|
||||
if (ce && ce_skip_worktree(ce)) {
|
||||
/*
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
*
|
||||
* Copyright (C) Linus Torvalds, 2005
|
||||
*/
|
||||
#define USE_THE_INDEX_COMPATIBILITY_MACROS
|
||||
#define USE_THE_INDEX_VARIABLE
|
||||
#include "builtin.h"
|
||||
#include "cache.h"
|
||||
#include "config.h"
|
||||
|
@ -38,7 +38,8 @@ int cmd_write_tree(int argc, const char **argv, const char *cmd_prefix)
|
|||
argc = parse_options(argc, argv, cmd_prefix, write_tree_options,
|
||||
write_tree_usage, 0);
|
||||
|
||||
ret = write_cache_as_tree(&oid, flags, tree_prefix);
|
||||
ret = write_index_as_tree(&oid, &the_index, get_index_file(), flags,
|
||||
tree_prefix);
|
||||
switch (ret) {
|
||||
case 0:
|
||||
printf("%s\n", oid_to_hex(&oid));
|
||||
|
|
15
cache-tree.h
15
cache-tree.h
|
@ -53,19 +53,4 @@ int write_index_as_tree(struct object_id *oid, struct index_state *index_state,
|
|||
void prime_cache_tree(struct repository *, struct index_state *, struct tree *);
|
||||
|
||||
int cache_tree_matches_traversal(struct cache_tree *, struct name_entry *ent, struct traverse_info *info);
|
||||
|
||||
#ifdef USE_THE_INDEX_COMPATIBILITY_MACROS
|
||||
static inline int write_cache_as_tree(struct object_id *oid, int flags, const char *prefix)
|
||||
{
|
||||
return write_index_as_tree(oid, &the_index, get_index_file(), flags, prefix);
|
||||
}
|
||||
|
||||
static inline int update_main_cache_tree(int flags)
|
||||
{
|
||||
if (!the_index.cache_tree)
|
||||
the_index.cache_tree = cache_tree();
|
||||
return cache_tree_update(&the_index, flags);
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
12
cache.h
12
cache.h
|
@ -449,18 +449,8 @@ typedef int (*must_prefetch_predicate)(const struct cache_entry *);
|
|||
void prefetch_cache_entries(const struct index_state *istate,
|
||||
must_prefetch_predicate must_prefetch);
|
||||
|
||||
#if defined(USE_THE_INDEX_COMPATIBILITY_MACROS) || defined(USE_THE_INDEX_VARIABLE)
|
||||
#ifdef USE_THE_INDEX_VARIABLE
|
||||
extern struct index_state the_index;
|
||||
|
||||
#ifndef USE_THE_INDEX_VARIABLE
|
||||
#ifdef USE_THE_INDEX_COMPATIBILITY_MACROS
|
||||
#define active_nr (the_index.cache_nr)
|
||||
|
||||
#define read_cache() repo_read_index(the_repository)
|
||||
#define discard_cache() discard_index(&the_index)
|
||||
#define cache_name_pos(name, namelen) index_name_pos(&the_index,(name),(namelen))
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#define TYPE_BITS 3
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
// the_index.* variables
|
||||
@@
|
||||
identifier AC = active_cache;
|
||||
identifier AN = active_nr;
|
||||
identifier ACC = active_cache_changed;
|
||||
identifier ACT = active_cache_tree;
|
||||
@@
|
||||
|
@ -8,6 +9,9 @@ identifier ACT = active_cache_tree;
|
|||
- AC
|
||||
+ the_index.cache
|
||||
|
|
||||
- AN
|
||||
+ the_index.cache_nr
|
||||
|
|
||||
- ACC
|
||||
+ the_index.cache_changed
|
||||
|
|
||||
|
@ -15,19 +19,13 @@ identifier ACT = active_cache_tree;
|
|||
+ the_index.cache_tree
|
||||
)
|
||||
|
||||
@@
|
||||
identifier AN = active_nr;
|
||||
identifier f != prepare_to_commit;
|
||||
@@
|
||||
f(...) {<...
|
||||
- AN
|
||||
+ the_index.cache_nr
|
||||
...>}
|
||||
|
||||
// "the_repository" simple cases
|
||||
@@
|
||||
@@
|
||||
(
|
||||
- read_cache
|
||||
+ repo_read_index
|
||||
|
|
||||
- read_cache_unmerged
|
||||
+ repo_read_index_unmerged
|
||||
|
|
||||
|
@ -96,6 +94,15 @@ identifier f != prepare_to_commit;
|
|||
|
|
||||
- resolve_undo_clear
|
||||
+ resolve_undo_clear_index
|
||||
|
|
||||
- cache_name_pos
|
||||
+ index_name_pos
|
||||
|
|
||||
- update_main_cache_tree
|
||||
+ cache_tree_update
|
||||
|
|
||||
- discard_cache
|
||||
+ discard_index
|
||||
)
|
||||
(
|
||||
+ &the_index,
|
||||
|
@ -137,3 +144,14 @@ identifier f != prepare_to_commit;
|
|||
...
|
||||
+ , NULL, NULL, NULL
|
||||
)
|
||||
|
||||
@@
|
||||
expression O;
|
||||
@@
|
||||
- write_cache_as_tree
|
||||
+ write_index_as_tree
|
||||
(
|
||||
- O,
|
||||
+ O, &the_index, get_index_file(),
|
||||
...
|
||||
)
|
||||
|
|
|
@ -1,24 +0,0 @@
|
|||
// "the_repository" simple cases
|
||||
@@
|
||||
@@
|
||||
(
|
||||
- read_cache
|
||||
+ repo_read_index
|
||||
)
|
||||
(
|
||||
+ the_repository,
|
||||
...)
|
||||
|
||||
// "the_index" simple cases
|
||||
@@
|
||||
@@
|
||||
(
|
||||
- discard_cache
|
||||
+ discard_index
|
||||
|
|
||||
- cache_name_pos
|
||||
+ index_name_pos
|
||||
)
|
||||
(
|
||||
+ &the_index,
|
||||
...)
|
Загрузка…
Ссылка в новой задаче