Merge branch 'jk/setup-sequence-update'
There were numerous corner cases in which the configuration files are read and used or not read at all depending on the directory a Git command was run, leading to inconsistent behaviour. The code to set-up repository access at the beginning of a Git process has been updated to fix them. * jk/setup-sequence-update: t1007: factor out repeated setup init: reset cached config when entering new repo init: expand comments explaining config trickery config: only read .git/config from configured repos test-config: setup git directory t1302: use "git -C" pager: handle early config pager: use callbacks instead of configset pager: make pager_program a file-local static pager: stop loading git_default_config() pager: remove obsolete comment diff: always try to set up the repository diff: handle --no-index prefixes consistently diff: skip implicit no-index check when given --no-index patch-id: use RUN_SETUP_GENTLY hash-object: always try to set up the git repository
This commit is contained in:
14
cache.h
14
cache.h
@ -453,6 +453,12 @@ static inline enum object_type object_type(unsigned int mode)
|
||||
*/
|
||||
extern const char * const local_repo_env[];
|
||||
|
||||
/*
|
||||
* Returns true iff we have a configured git repository (either via
|
||||
* setup_git_directory, or in the environment via $GIT_DIR).
|
||||
*/
|
||||
int have_git_dir(void);
|
||||
|
||||
extern int is_bare_repository_cfg;
|
||||
extern int is_bare_repository(void);
|
||||
extern int is_inside_git_dir(void);
|
||||
@ -665,8 +671,15 @@ extern size_t delta_base_cache_limit;
|
||||
extern unsigned long big_file_threshold;
|
||||
extern unsigned long pack_size_limit_cfg;
|
||||
|
||||
/*
|
||||
* Accessors for the core.sharedrepository config which lazy-load the value
|
||||
* from the config (if not already set). The "reset" function can be
|
||||
* used to unset "set" or cached value, meaning that the value will be loaded
|
||||
* fresh from the config file on the next call to get_shared_repository().
|
||||
*/
|
||||
void set_shared_repository(int value);
|
||||
int get_shared_repository(void);
|
||||
void reset_shared_repository(void);
|
||||
|
||||
/*
|
||||
* Do replace refs need to be checked this run? This variable is
|
||||
@ -1813,7 +1826,6 @@ extern void write_file(const char *path, const char *fmt, ...);
|
||||
|
||||
/* pager.c */
|
||||
extern void setup_pager(void);
|
||||
extern const char *pager_program;
|
||||
extern int pager_in_use(void);
|
||||
extern int pager_use_color;
|
||||
extern int term_columns(void);
|
||||
|
Reference in New Issue
Block a user