diff options
author | Junio C Hamano <gitster@pobox.com> | 2017-02-27 13:57:14 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2017-02-27 13:57:14 -0800 |
commit | fdeb89fdeb1db8f8910bc33547dd819065bc4e9d (patch) | |
tree | 1b31156dd553df1241dee44e0bdc33dd31135eb7 /builtin | |
parent | 015fba38345c685275864e5b216c74e8ba0633bb (diff) | |
parent | 3ba042017a63492d8709b1991def43414ce87976 (diff) | |
download | git-fdeb89fdeb1db8f8910bc33547dd819065bc4e9d.tar.gz git-fdeb89fdeb1db8f8910bc33547dd819065bc4e9d.tar.xz |
Merge branch 'sg/completion'
Clean-up and updates to command line completion (in contrib/).
* sg/completion: (22 commits)
completion: restore removed line continuating backslash
completion: cache the path to the repository
completion: extract repository discovery from __gitdir()
completion: don't guard git executions with __gitdir()
completion: consolidate silencing errors from git commands
completion: don't use __gitdir() for git commands
completion: respect 'git -C <path>'
rev-parse: add '--absolute-git-dir' option
completion: fix completion after 'git -C <path>'
completion: don't offer commands when 'git --opt' needs an argument
completion: list short refs from a remote given as a URL
completion: don't list 'HEAD' when trying refs completion outside of a repo
completion: list refs from remote when remote's name matches a directory
completion: respect 'git --git-dir=<path>' when listing remote refs
completion: fix most spots not respecting 'git --git-dir=<path>'
completion: ensure that the repository path given on the command line exists
completion tests: add tests for the __git_refs() helper function
completion tests: check __gitdir()'s output in the error cases
completion tests: consolidate getting path of current working directory
completion tests: make the $cur variable local to the test helper functions
...
Diffstat (limited to 'builtin')
-rw-r--r-- | builtin/rev-parse.c | 26 |
1 files changed, 18 insertions, 8 deletions
diff --git a/builtin/rev-parse.c b/builtin/rev-parse.c index ff13e59e1..1967bafba 100644 --- a/builtin/rev-parse.c +++ b/builtin/rev-parse.c @@ -802,17 +802,27 @@ int cmd_rev_parse(int argc, const char **argv, const char *prefix) putchar('\n'); continue; } - if (!strcmp(arg, "--git-dir")) { + if (!strcmp(arg, "--git-dir") || + !strcmp(arg, "--absolute-git-dir")) { const char *gitdir = getenv(GIT_DIR_ENVIRONMENT); char *cwd; int len; - if (gitdir) { - puts(gitdir); - continue; - } - if (!prefix) { - puts(".git"); - continue; + if (arg[2] == 'g') { /* --git-dir */ + if (gitdir) { + puts(gitdir); + continue; + } + if (!prefix) { + puts(".git"); + continue; + } + } else { /* --absolute-git-dir */ + if (!gitdir && !prefix) + gitdir = ".git"; + if (gitdir) { + puts(real_path(gitdir)); + continue; + } } cwd = xgetcwd(); len = strlen(cwd); |