]> git.ipfire.org Git - thirdparty/git.git/commit - alias.c
alias: use the early config machinery to expand aliases
authorJohannes Schindelin <johannes.schindelin@gmx.de>
Wed, 14 Jun 2017 11:36:00 +0000 (13:36 +0200)
committerJunio C Hamano <gitster@pobox.com>
Thu, 15 Jun 2017 19:31:50 +0000 (12:31 -0700)
commita9bcf6586d1a4888aea91553d73cda20494b8335
treeda27bd4c2204d171c8752abddb467447eac86cfb
parent3f9c5dfb7118256747de5efbaa4b5cd3f0e02331
alias: use the early config machinery to expand aliases

Instead of discovering the .git/ directory, reading the config and then
trying to painstakingly reset all the global state if we did not find a
matching alias, let's use the early config machinery instead.

It may look like unnecessary work to discover the .git/ directory in the
early config machinery and then call setup_git_directory_gently() in the
case of a shell alias, repeating the very same discovery *again*.
However, we have to do this as the early config machinery takes pains
*not* to touch any global state, while shell aliases expect a possibly
changed working directory and at least the GIT_PREFIX and GIT_DIR
variables to be set.

This change also fixes a known issue where Git tried to read the pager
config from an incorrect path in a subdirectory of a Git worktree if an
alias expanded to a shell command.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Reviewed-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
alias.c
git.c
t/t7006-pager.sh