diff options
author | Shawn O. Pearce <spearce@spearce.org> | 2007-10-16 23:32:03 -0400 |
---|---|---|
committer | Shawn O. Pearce <spearce@spearce.org> | 2007-10-16 23:32:03 -0400 |
commit | 317efa63fc457d1a726902ddf97298c201df627c (patch) | |
tree | d4f38c3fd8ec2a422c4db76e00b784f760540f1f /setup.c | |
parent | 54f0db79ca11d08a448e45cfcb6e4304c6d16014 (diff) | |
parent | 09955207d148c5f3964002b7f3a4e13db3050777 (diff) | |
download | git-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.c | 13 |
1 files changed, 12 insertions, 1 deletions
@@ -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; |