Allow to control where the replace refs are looked for
It can be useful to have grafts or replace refs for specific use-cases while keeping the default "view" of the repository pristine (or with a different set of grafts/replace refs). It is possible to use a different graft file with GIT_GRAFT_FILE, but while replace refs are more powerful, they don't have an equivalent override. Add a GIT_REPLACE_REF_BASE environment variable to control where git is going to look for replace refs. Signed-off-by: Mike Hommey <mh@glandium.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
f86f31ab33
commit
58d121b22b
@ -47,6 +47,7 @@ const char *askpass_program;
|
||||
const char *excludes_file;
|
||||
enum auto_crlf auto_crlf = AUTO_CRLF_FALSE;
|
||||
int check_replace_refs = 1;
|
||||
char *git_replace_ref_base;
|
||||
enum eol core_eol = EOL_UNSET;
|
||||
enum safe_crlf safe_crlf = SAFE_CRLF_WARN;
|
||||
unsigned whitespace_rule_cfg = WS_DEFAULT_RULE;
|
||||
@ -110,6 +111,7 @@ const char * const local_repo_env[] = {
|
||||
GRAFT_ENVIRONMENT,
|
||||
INDEX_ENVIRONMENT,
|
||||
NO_REPLACE_OBJECTS_ENVIRONMENT,
|
||||
GIT_REPLACE_REF_BASE_ENVIRONMENT,
|
||||
GIT_PREFIX_ENVIRONMENT,
|
||||
GIT_SHALLOW_FILE_ENVIRONMENT,
|
||||
GIT_COMMON_DIR_ENVIRONMENT,
|
||||
@ -156,6 +158,7 @@ static void setup_git_env(void)
|
||||
struct strbuf sb = STRBUF_INIT;
|
||||
const char *gitfile;
|
||||
const char *shallow_file;
|
||||
const char *replace_ref_base;
|
||||
|
||||
git_dir = getenv(GIT_DIR_ENVIRONMENT);
|
||||
if (!git_dir)
|
||||
@ -173,6 +176,9 @@ static void setup_git_env(void)
|
||||
"info/grafts", &git_graft_env);
|
||||
if (getenv(NO_REPLACE_OBJECTS_ENVIRONMENT))
|
||||
check_replace_refs = 0;
|
||||
replace_ref_base = getenv(GIT_REPLACE_REF_BASE_ENVIRONMENT);
|
||||
git_replace_ref_base = xstrdup(replace_ref_base ? replace_ref_base
|
||||
: "refs/replace/");
|
||||
namespace = expand_namespace(getenv(GIT_NAMESPACE_ENVIRONMENT));
|
||||
namespace_len = strlen(namespace);
|
||||
shallow_file = getenv(GIT_SHALLOW_FILE_ENVIRONMENT);
|
||||
|
||||
Reference in New Issue
Block a user