From 8ac069ac0ab34e751e5f96b0244a5fec10f3e54f Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Mon, 9 May 2005 22:57:58 -0700 Subject: Introduce GIT_DIR environment variable. During the mailing list discussion on renaming GIT_ environment variables, people felt that having one environment that lets the user (or Porcelain) specify both SHA1_FILE_DIRECTORY (now GIT_OBJECT_DIRECTORY) and GIT_INDEX_FILE for the default layout would be handy. This change introduces GIT_DIR environment variable, from which the defaults for GIT_INDEX_FILE and GIT_OBJECT_DIRECTORY are derived. When GIT_DIR is not defined, it defaults to ".git". GIT_INDEX_FILE defaults to "$GIT_DIR/index" and GIT_OBJECT_DIRECTORY defaults to "$GIT_DIR/objects". Special thanks for ideas and discussions go to Petr Baudis and Daniel Barkalow. Bugs are mine ;-) Signed-off-by: Junio C Hamano --- init-db.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'init-db.c') diff --git a/init-db.c b/init-db.c index 157b92b47..b6bb78356 100644 --- a/init-db.c +++ b/init-db.c @@ -27,11 +27,12 @@ int main(int argc, char **argv) char *path; int len, i; - safe_create_dir(".git"); - - sha1_dir = gitenv(DB_ENVIRONMENT); - if (!sha1_dir) { - sha1_dir = DEFAULT_DB_ENVIRONMENT; + sha1_dir = get_object_directory(); + if (!gitenv(DB_ENVIRONMENT) && !gitenv(GIT_DIR_ENVIRONMENT)) { + /* We create leading paths only when we fall back + * to local .git/objects, at least for now. + */ + safe_create_dir(DEFAULT_GIT_DIR_ENVIRONMENT); fprintf(stderr, "defaulting to local storage area\n"); } len = strlen(sha1_dir); -- cgit v1.2.1