From 41894ae3a315f75ebc924881c6ce9a69d70ce9c0 Mon Sep 17 00:00:00 2001 From: Jiang Xin Date: Mon, 14 Oct 2013 10:29:40 +0800 Subject: Use simpler relative_path when set_git_dir Using a relative_path as git_dir first appears in v1.5.6-1-g044bbbc. It will make git_dir shorter only if git_dir is inside work_tree, and this will increase performance. But my last refactor effort on relative_path function (commit v1.8.3-rc2-12-ge02ca72) changed that. Always use relative_path as git_dir may bring troubles like $gmane/234434. Because new relative_path is a combination of original relative_path from path.c and original path_relative from quote.c, so in order to restore the origin implementation, save the original relative_path as remove_leading_path, and call it in setup.c. Suggested-by: Karsten Blees Signed-off-by: Jiang Xin Signed-off-by: Jonathan Nieder --- setup.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) (limited to 'setup.c') diff --git a/setup.c b/setup.c index 0d9ea6239f..dad39c1aba 100644 --- a/setup.c +++ b/setup.c @@ -360,7 +360,6 @@ int is_inside_work_tree(void) void setup_work_tree(void) { - struct strbuf sb = STRBUF_INIT; const char *work_tree, *git_dir; static int initialized = 0; @@ -380,10 +379,8 @@ void setup_work_tree(void) if (getenv(GIT_WORK_TREE_ENVIRONMENT)) setenv(GIT_WORK_TREE_ENVIRONMENT, ".", 1); - set_git_dir(relative_path(git_dir, work_tree, &sb)); + set_git_dir(remove_leading_path(git_dir, work_tree)); initialized = 1; - - strbuf_release(&sb); } static int check_repository_format_gently(const char *gitdir, int *nongit_ok) -- cgit v1.2.3