git-commit-vandalism/Documentation
SZEDER Gábor a2f5a87626 rev-parse: add '--absolute-git-dir' option
The output of 'git rev-parse --git-dir' can be either a relative or an
absolute path, depending on whether the current working directory is
at the top of the worktree or the .git directory or not, or how the
path to the repository is specified via the '--git-dir=<path>' option
or the $GIT_DIR environment variable.  And if that output is a
relative path, then it is relative to the directory where any 'git
-C <path>' options might have led us.

This doesn't matter at all for regular scripts, because the git
wrapper automatically takes care of changing directories according to
the '-C <path>' options, and the scripts can then simply follow any
path returned by 'git rev-parse --git-dir', even if it's a relative
path.

Our Bash completion script, however, is unique in that it must run
directly in the user's interactive shell environment.  This means that
it's not executed through the git wrapper and would have to take care
of any '-C <path> options on its own, and it can't just change
directories as it pleases.  Consequently, adding support for taking
any '-C <path>' options on the command line into account during
completion turned out to be considerably more difficult, error prone
and required more subshells and git processes when it had to cope with
a relative path to the .git directory.

Help this rather special use case and teach 'git rev-parse' a new
'--absolute-git-dir' option which always outputs a canonicalized
absolute path to the .git directory, regardless of whether the path is
discovered automatically or is specified via $GIT_DIR or 'git
--git-dir=<path>'.

Signed-off-by: SZEDER Gábor <szeder.dev@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2017-02-03 22:18:41 -08:00
..
howto Merge branch 'po/fix-doc-merge-base-illustration' into maint 2016-10-28 09:01:21 -07:00
RelNotes Git 2.12-rc0 2017-02-03 11:29:52 -08:00
technical Merge branch 'sb/in-core-index-doc' 2017-01-31 13:14:59 -08:00
.gitattributes
.gitignore
asciidoc.conf
asciidoctor-extensions.rb Documentation: implement linkgit macro for Asciidoctor 2017-01-31 12:18:18 -08:00
blame-options.txt
build-docdep.perl
cat-texi.perl Documentation: remove unneeded argument in cat-texi.perl 2017-01-23 10:56:47 -08:00
cmd-list.perl
CodingGuidelines CodingGuidelines: clarify multi-line brace style 2017-01-17 14:32:47 -08:00
config.txt Merge branch 'cw/log-updates-for-all-refs-really' 2017-02-03 11:25:19 -08:00
date-formats.txt Merge branch 'lr/doc-fix-cet' into maint 2017-01-17 15:19:08 -08:00
diff-config.txt Merge branch 'rh/diff-orderfile-doc' 2017-01-23 15:59:23 -08:00
diff-format.txt
diff-generate-patch.txt
diff-heuristic-options.txt diff: retire "compaction" heuristics 2016-12-23 12:32:22 -08:00
diff-options.txt Merge branch 'rh/diff-orderfile-doc' 2017-01-23 15:59:23 -08:00
docbook-xsl.css
docbook.xsl
everyday.txto
fetch-options.txt Merge branch 'nd/shallow-deepen' 2016-10-10 14:03:50 -07:00
fix-texi.perl
fmt-merge-msg-config.txt
git-add.txt add: document the chmod option 2016-09-12 15:03:32 -07:00
git-am.txt Merge branch 'mm/doc-tt' 2016-07-13 11:24:14 -07:00
git-annotate.txt blame: honor the diff heuristic options and config 2016-09-19 10:25:11 -07:00
git-apply.txt
git-archimport.txt
git-archive.txt
git-bisect-lk2009.txt
git-bisect.txt Merge branch 'ad/bisect-terms' into maint 2017-01-31 13:32:10 -08:00
git-blame.txt Merge branch 'jc/blame-reverse' 2016-10-10 14:03:51 -07:00
git-branch.txt doc: add note about ignoring '--no-create-reflog' 2017-02-01 15:53:40 -08:00
git-bundle.txt
git-cat-file.txt cat-file: support --textconv/--filters in batch mode 2016-09-11 14:48:15 -07:00
git-check-attr.txt
git-check-ignore.txt
git-check-mailmap.txt
git-check-ref-format.txt git-check-ref-format.txt: fixup documentation 2016-09-21 11:12:41 -07:00
git-checkout-index.txt
git-checkout.txt checkout.txt: document a common case that ignores ambiguation rules 2016-09-21 08:44:41 -07:00
git-cherry-pick.txt Merge branch 'mm/doc-tt' into maint 2016-07-28 11:25:54 -07:00
git-cherry.txt
git-citool.txt
git-clean.txt
git-clone.txt Merge branch 'nd/shallow-deepen' 2016-10-10 14:03:50 -07:00
git-column.txt
git-commit-tree.txt Merge branch 'mm/doc-tt' into maint 2016-07-28 11:25:54 -07:00
git-commit.txt Merge branch 'ak/commit-only-allow-empty' into maint 2017-01-17 15:11:03 -08:00
git-config.txt Merge branch 'dg/document-git-c-in-git-config-doc' into maint 2016-09-08 21:35:56 -07:00
git-count-objects.txt count-objects: report alternates via verbose mode 2016-10-10 13:52:37 -07:00
git-credential-cache--daemon.txt
git-credential-cache.txt
git-credential-store.txt
git-credential.txt
git-cvsexportcommit.txt
git-cvsimport.txt Merge branch 'jk/doc-cvs-update' into maint 2016-10-03 13:22:25 -07:00
git-cvsserver.txt
git-daemon.txt
git-describe.txt
git-diff-files.txt
git-diff-index.txt
git-diff-tree.txt
git-diff.txt
git-difftool.txt
git-fast-export.txt
git-fast-import.txt Merge branch 'mm/doc-tt' 2016-07-13 11:24:14 -07:00
git-fetch-pack.txt upload-pack: optionally allow fetching any sha1 2016-11-18 13:06:14 -08:00
git-fetch.txt Merge branch 'mm/push-social-engineering-attack-doc' into maint 2017-01-17 15:19:10 -08:00
git-filter-branch.txt
git-fmt-merge-msg.txt Documentation/fmt-merge-msg: fix markup in example 2016-10-28 05:51:51 -07:00
git-for-each-ref.txt Merge branch 'jk/trailers-placeholder-in-pretty' 2016-12-19 14:45:34 -08:00
git-format-patch.txt format-patch: add "--rfc" for the common case of [RFC PATCH] 2016-09-21 08:58:10 -07:00
git-fsck-objects.txt
git-fsck.txt fsck: optionally show more helpful info for broken links 2016-07-18 15:15:59 -07:00
git-gc.txt Merge branch 'mm/gc-safety-doc' into maint 2017-01-17 15:19:11 -08:00
git-get-tar-commit-id.txt
git-grep.txt grep: enable recurse-submodules to work on <tree> objects 2016-12-22 11:47:33 -08:00
git-gui.txt doc: git-gui browser does not default to HEAD 2017-01-13 12:23:28 -08:00
git-hash-object.txt
git-help.txt
git-http-backend.txt
git-http-fetch.txt
git-http-push.txt
git-imap-send.txt
git-index-pack.txt index-pack: add --max-input-size=<size> option 2016-08-24 12:31:05 -07:00
git-init-db.txt
git-init.txt
git-instaweb.txt
git-interpret-trailers.txt doc: mention user-configured trailers 2016-11-21 12:49:57 -08:00
git-log.txt Merge branch 'mj/log-show-signature-conf' 2016-07-11 10:31:08 -07:00
git-ls-files.txt ls-files: add pathspec matching for submodules 2016-10-10 12:14:58 -07:00
git-ls-remote.txt
git-ls-tree.txt
git-mailinfo.txt
git-mailsplit.txt
git-merge-base.txt doc: fix merge-base ASCII art tab spacing 2016-10-21 09:46:48 -07:00
git-merge-file.txt
git-merge-index.txt
git-merge-one-file.txt
git-merge-tree.txt
git-merge.txt merge: add '--continue' option as a synonym for 'git commit' 2016-12-14 10:02:04 -08:00
git-mergetool--lib.txt
git-mergetool.txt mergetool: honor -O<orderfile> 2016-10-11 10:04:31 -07:00
git-mktag.txt
git-mktree.txt
git-mv.txt
git-name-rev.txt
git-notes.txt
git-p4.txt Merge branch 'ls/p4-retry-thrice' 2017-01-18 15:12:12 -08:00
git-pack-objects.txt document git-repack interaction of pack.threads and pack.windowMemory 2016-08-10 10:55:13 -07:00
git-pack-redundant.txt
git-pack-refs.txt
git-parse-remote.txt
git-patch-id.txt
git-prune-packed.txt
git-prune.txt
git-pull.txt Merge branch 'mm/push-social-engineering-attack-doc' into maint 2017-01-17 15:19:10 -08:00
git-push.txt Merge branch 'mm/push-social-engineering-attack-doc' into maint 2017-01-17 15:19:10 -08:00
git-quiltimport.txt
git-read-tree.txt
git-rebase.txt Merge branch 'nd/rebase-forget' 2016-12-19 14:45:35 -08:00
git-receive-pack.txt receive-pack: allow a maximum input size to be specified 2016-08-24 12:31:05 -07:00
git-reflog.txt
git-remote-ext.txt
git-remote-fd.txt Spelling fixes 2016-08-11 14:35:42 -07:00
git-remote-helpers.txto
git-remote-testgit.txt
git-remote.txt
git-repack.txt Merge branch 'ms/document-pack-window-memory-is-per-thread' 2016-08-12 09:47:35 -07:00
git-replace.txt
git-request-pull.txt
git-rerere.txt
git-reset.txt
git-rev-list.txt
git-rev-parse.txt rev-parse: add '--absolute-git-dir' option 2017-02-03 22:18:41 -08:00
git-revert.txt
git-rm.txt
git-send-email.txt Merge branch 'mm/doc-tt' into maint 2016-07-28 11:25:54 -07:00
git-send-pack.txt
git-sh-i18n--envsubst.txt
git-sh-i18n.txt
git-sh-setup.txt
git-shell.txt
git-shortlog.txt shortlog: test and document --committer option 2016-12-16 09:39:10 -08:00
git-show-branch.txt
git-show-index.txt
git-show-ref.txt
git-show.txt
git-stage.txt
git-stash.txt stash: allow stashes to be referenced by index only 2016-10-26 09:58:10 -07:00
git-status.txt git-status.txt: describe --porcelain=v2 format 2016-08-11 11:15:56 -07:00
git-stripspace.txt
git-submodule.txt submodule: add absorb-git-dir function 2016-12-12 15:15:07 -08:00
git-svn.txt git-svn: document useLogAuthor and addAuthorFrom config keys 2016-12-12 10:49:50 -08:00
git-symbolic-ref.txt
git-tag.txt Merge branch 'cw/log-updates-for-all-refs-really' 2017-02-03 11:25:19 -08:00
git-tools.txt
git-unpack-file.txt
git-unpack-objects.txt unpack-objects: add --max-input-size=<size> option 2016-08-24 12:31:05 -07:00
git-update-index.txt
git-update-ref.txt
git-update-server-info.txt
git-upload-archive.txt
git-upload-pack.txt
git-var.txt
git-verify-commit.txt
git-verify-pack.txt
git-verify-tag.txt builtin/verify-tag: add --format to verify-tag 2017-01-17 16:10:22 -08:00
git-web--browse.txt
git-whatchanged.txt
git-worktree.txt Merge branch 'nd/worktree-lock' into maint 2016-11-29 13:28:02 -08:00
git-write-tree.txt
git.txt Merge branch 'maint' 2017-01-17 15:20:16 -08:00
gitattributes.txt docs: warn about possible '=' in clean/smudge filter process values 2016-12-06 11:29:52 -08:00
gitcli.txt
gitcore-tutorial.txt doc: omit needless "for" 2016-12-09 15:14:01 -08:00
gitcredentials.txt
gitcvs-migration.txt docs/cvs-migration: mention cvsimport caveats 2016-09-22 11:23:45 -07:00
gitdiffcore.txt
giteveryday.txt giteveryday: unbreak rendering with AsciiDoctor 2017-01-07 14:03:40 -08:00
gitglossary.txt
githooks.txt push options: {pre,post}-receive hook learns about push options 2016-07-14 15:50:17 -07:00
gitignore.txt
gitk.txt Merge branch 'sb/remove-gitview' 2017-01-18 15:12:18 -08:00
gitmodules.txt Merge branch 'bw/submodule-branch-dot-doc' into maint 2016-10-28 09:01:19 -07:00
gitnamespaces.txt doc: mention transfer data leaks in more places 2016-11-14 11:23:07 -08:00
gitremote-helpers.txt Merge branch 'nd/shallow-deepen' 2016-10-10 14:03:50 -07:00
gitrepository-layout.txt doc: fix location of 'info/' with $GIT_COMMON_DIR 2016-11-11 09:37:33 -08:00
gitrevisions.txt doc: gitrevisions - clarify 'latter case' is revision walk 2016-08-13 19:36:44 -07:00
gittutorial-2.txt
gittutorial.txt
gitweb.conf.txt gitweb: use highlight's shebang detection 2016-09-25 16:39:11 -07:00
gitweb.txt
gitworkflows.txt
glossary-content.txt
howto-index.sh
i18n.txt
install-doc-quick.sh
install-webdoc.sh
line-range-format.txt
lint-gitlink.perl
mailmap.txt
Makefile Merge branch 'bc/use-asciidoctor-opt' 2017-02-02 13:36:57 -08:00
manpage-1.72.xsl
manpage-base-url.xsl.in
manpage-base.xsl
manpage-bold-literal.xsl
manpage-normal.xsl
manpage-quote-apos.xsl
manpage-suppress-sp.xsl
merge-config.txt
merge-options.txt
merge-strategies.txt
pretty-formats.txt pretty: add %(trailers) format for displaying trailers of a commit message 2016-12-11 13:58:41 -08:00
pretty-options.txt
pull-fetch-param.txt
rev-list-options.txt Merge branch 'pb/rev-list-reverse-with-count' into maint 2016-10-11 14:20:06 -07:00
revisions.txt revision: new rev^-n shorthand for rev^n..rev 2016-09-27 10:59:28 -07:00
sequencer.txt
SubmittingPatches doc: clarify distinction between sign-off and pgp-signing 2017-01-27 13:41:30 -08:00
texi.xsl Documentation: add XSLT to fix DocBook for Texinfo 2017-01-23 10:56:53 -08:00
transfer-data-leaks.txt doc: mention transfer data leaks in more places 2016-11-14 11:23:07 -08:00
urls-remotes.txt
urls.txt
user-manual.conf
user-manual.txt asciidoctor: fix user-manual to be built by asciidoctor 2017-01-13 10:30:16 -08:00