summaryrefslogtreecommitdiff
path: root/setup.c
diff options
context:
space:
mode:
authorShawn O. Pearce <spearce@spearce.org>2007-10-16 23:32:03 -0400
committerShawn O. Pearce <spearce@spearce.org>2007-10-16 23:32:03 -0400
commit317efa63fc457d1a726902ddf97298c201df627c (patch)
treed4f38c3fd8ec2a422c4db76e00b784f760540f1f /setup.c
parent54f0db79ca11d08a448e45cfcb6e4304c6d16014 (diff)
parent09955207d148c5f3964002b7f3a4e13db3050777 (diff)
downloadgit-317efa63fc457d1a726902ddf97298c201df627c.tar.gz
Merge branch 'maint'
* maint: Document additional 1.5.3.5 fixes in release notes Avoid 'expr index' on Mac OS X as it isn't supported filter-branch: update current branch when rewritten fix filter-branch documentation helpful error message when send-pack finds no refs in common. Fix setup_git_directory_gently() with relative GIT_DIR & GIT_WORK_TREE Correct typos in release notes for 1.5.3.5
Diffstat (limited to 'setup.c')
-rw-r--r--setup.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/setup.c b/setup.c
index 06004f1587..145eca50f4 100644
--- a/setup.c
+++ b/setup.c
@@ -227,9 +227,20 @@ const char *setup_git_directory_gently(int *nongit_ok)
if (PATH_MAX - 40 < strlen(gitdirenv))
die("'$%s' too big", GIT_DIR_ENVIRONMENT);
if (is_git_directory(gitdirenv)) {
+ static char buffer[1024 + 1];
+ const char *retval;
+
if (!work_tree_env)
return set_work_tree(gitdirenv);
- return NULL;
+ retval = get_relative_cwd(buffer, sizeof(buffer) - 1,
+ get_git_work_tree());
+ if (!retval || !*retval)
+ return NULL;
+ set_git_dir(make_absolute_path(gitdirenv));
+ if (chdir(work_tree_env) < 0)
+ die ("Could not chdir to %s", work_tree_env);
+ strcat(buffer, "/");
+ return retval;
}
if (nongit_ok) {
*nongit_ok = 1;