[PATCH v2 03/19] rev-parse --git-dir: print relative gitdir correctly
- From
Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
- Date
- Mar 21, 2010, 10:30 UTC
- Message-ID
- <1269167446-7799-4-git-send-email-pclouds@gmail.com>
- In-Reply-To
- <1269167446-7799-1-git-send-email-pclouds@gmail.com>
When git_dir is relative, it is relative to Git's current working directory, which is worktree top directory. "git rev-parse --git-dir" is expected to output relative to user's current working directory.
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> --- builtin/rev-parse.c | 8 ++++++++ 1 files changed, 8 insertions(+), 0 deletions(-)
diff --git a/builtin/rev-parse.c b/builtin/rev-parse.c index 8fbf9d0..8819e8a 100644 --- a/builtin/rev-parse.c +++ b/builtin/rev-parse.c @@ -646,6 +646,14 @@ int cmd_rev_parse(int argc, const char **argv, const char *prefix) static char cwd[PATH_MAX]; int len; if (gitdir) { + if (prefix && !is_absolute_path(gitdir)) { + int len; + if (!getcwd(cwd, PATH_MAX)) + die_errno("unable to get current working directory"); + len = strlen(cwd); + printf("%s%s%s\n", cwd, len && cwd[len-1] != '/' ? "/" : "", gitdir); + continue; + } puts(gitdir); continue; }
-- 1.7.0.2.425.gb99f1