Browse Source

setup: allow for prefix to be passed to git commands

In a future patch child processes which act on submodules need a little
more context about the original command that was invoked.  This patch
teaches git to use the prefix stored in `GIT_INTERNAL_TOPLEVEL_PREFIX`
instead of the prefix that was potentally found during the git directory
setup process.

Signed-off-by: Brandon Williams <bmwill@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Brandon Williams 8 years ago committed by Junio C Hamano
parent
commit
b58a68c1c1
  1. 1
      cache.h
  2. 2
      git.c
  3. 7
      setup.c

1
cache.h

@ -410,6 +410,7 @@ static inline enum object_type object_type(unsigned int mode) @@ -410,6 +410,7 @@ static inline enum object_type object_type(unsigned int mode)
#define GIT_WORK_TREE_ENVIRONMENT "GIT_WORK_TREE"
#define GIT_PREFIX_ENVIRONMENT "GIT_PREFIX"
#define GIT_SUPER_PREFIX_ENVIRONMENT "GIT_INTERNAL_SUPER_PREFIX"
#define GIT_TOPLEVEL_PREFIX_ENVIRONMENT "GIT_INTERNAL_TOPLEVEL_PREFIX"
#define DEFAULT_GIT_DIR_ENVIRONMENT ".git"
#define DB_ENVIRONMENT "GIT_OBJECT_DIRECTORY"
#define INDEX_ENVIRONMENT "GIT_INDEX_FILE"

2
git.c

@ -361,8 +361,6 @@ static int run_builtin(struct cmd_struct *p, int argc, const char **argv) @@ -361,8 +361,6 @@ static int run_builtin(struct cmd_struct *p, int argc, const char **argv)
if (!help && get_super_prefix()) {
if (!(p->option & SUPPORT_SUPER_PREFIX))
die("%s doesn't support --super-prefix", p->cmd);
if (prefix)
die("can't use --super-prefix from a subdirectory");
}

if (!help && p->option & NEED_WORK_TREE)

7
setup.c

@ -939,9 +939,14 @@ static const char *setup_git_directory_gently_1(int *nongit_ok) @@ -939,9 +939,14 @@ static const char *setup_git_directory_gently_1(int *nongit_ok)

const char *setup_git_directory_gently(int *nongit_ok)
{
const char *prefix;
const char *prefix, *env_prefix;

prefix = setup_git_directory_gently_1(nongit_ok);
env_prefix = getenv(GIT_TOPLEVEL_PREFIX_ENVIRONMENT);

if (env_prefix)
prefix = env_prefix;

if (prefix)
setenv(GIT_PREFIX_ENVIRONMENT, prefix, 1);
else

Loading…
Cancel
Save