summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* setup: avoid double slashes when looking for HEADjs/early-configJeff King2017-11-031-1/+3
| | | | | | | | | | | | | | | | | | | | Andrew Baumann reported that when called outside of any Git worktree, `git rev-parse --is-inside-work-tree` eventually tries to access `//HEAD`, i.e. any `HEAD` file in the root directory, but with a double slash. This double slash is not only unintentional, but is allowed by the POSIX standard to have a special meaning. And most notably on Windows, it does, where it refers to a UNC path of the form `//server/share/`. As a consequence, afore-mentioned `rev-parse` call not only looks for the wrong thing, but it also causes serious delays, as Windows will try to access a server called `HEAD`. Let's simply avoid the unintended double slash. Signed-off-by: Jeff King <peff@peff.net> Acked-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* setup.c: mention unresolved problemsJohannes Schindelin2017-03-141-0/+2
| | | | | | | | | During the review of the `early-config` patch series, two issues have been identified that have been with us forever. Mark the identified problems for later so that we do not forget them. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* t1309: document cases where we would want early config not to die()Johannes Schindelin2017-03-141-0/+24
| | | | | | | | | | | | Jeff King came up with a couple examples that demonstrate how the new read_early_config() that looks harder for the current .git/ directory could die() in an undesirable way. Let's add those cases to the test script, to document what we would like to happen when early config encounters problems. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* setup_git_directory_gently_1(): avoid die()ingJohannes Schindelin2017-03-141-8/+17
| | | | | | | | | | | | | | | | | | | This function now has a new caller in addition to setup_git_directory(): the newly introduced discover_git_directory(). That function wants to discover the current .git/ directory, and in case of a corrupted one simply pretend that there is none to be found. Example: if a stale .git file exists in the parent directory, and the user calls `git -p init`, we want Git to simply *not* read any repository config for the pager (instead of aborting with a message that the .git file is corrupt). Let's actually pretend that there was no GIT_DIR to be found in that case when being called from discover_git_directory(), but keep the previous behavior (i.e. to die()) for the setup_git_directory() case. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* t1309: test read_early_config()Johannes Schindelin2017-03-142-0/+65
| | | | | | | So far, we had no explicit tests of that function. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* read_early_config(): really discover .git/Johannes Schindelin2017-03-142-23/+16
| | | | | | | | | | | | | | | | | | | | | | Earlier, we punted and simply assumed that we are in the top-level directory of the project, and that there is no .git file but a .git/ directory so that we can read directly from .git/config. However, that is not necessarily true. We may be in a subdirectory. Or .git may be a gitfile. Or the environment variable GIT_DIR may be set. To remedy this situation, we just refactored the way setup_git_directory() discovers the .git/ directory, to make it reusable, and more importantly, to leave all global variables and the current working directory alone. Let's discover the .git/ directory correctly in read_early_config() by using that new function. This fixes 4 known breakages in t7006. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* read_early_config(): avoid .git/config hack when unneededJohannes Schindelin2017-03-141-2/+3
| | | | | | | | | | | | | | | | | | So far, we only look whether the startup_info claims to have seen a git_dir. However, do_git_config_sequence() (and consequently the git_config_with_options() call used by read_early_config() asks the have_git_dir() function whether we have a .git/ directory, which in turn also looks at git_dir and at the environment variable GIT_DIR. And when this is the case, the repository config is handled already, so we do not have to do that again explicitly. Let's just use the same function, have_git_dir(), to determine whether we have to handle .git/config explicitly. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* setup: make read_early_config() reusableJohannes Schindelin2017-03-143-31/+32
| | | | | | | | | | | The pager configuration needs to be read early, possibly before discovering any .git/ directory. Let's not hide this function in pager.c, but make it available to other callers. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* setup: introduce the discover_git_directory() functionJohannes Schindelin2017-03-142-0/+50
| | | | | | | | | | | | | | | We modified the setup_git_directory_gently_1() function earlier to make it possible to discover the GIT_DIR without changing global state. However, it is still a bit cumbersome to use if you only need to figure out the (possibly absolute) path of the .git/ directory. Let's just provide a convenient wrapper function with an easier signature that *just* discovers the .git/ directory. We will use it in a subsequent patch to fix the early config. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* setup_git_directory_1(): avoid changing global stateJohannes Schindelin2017-03-141-75/+118
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For historical reasons, Git searches for the .git/ directory (or the .git file) by changing the working directory successively to the parent directory of the current directory, until either anything was found or until a ceiling or a mount point is hit. Further global state may be changed in case a .git/ directory was found. We do have a use case, though, where we would like to find the .git/ directory without having any global state touched, though: when we read the early config e.g. for the pager or for alias expansion. Let's just move all of code that changes any global state out of the function `setup_git_directory_gently_1()` into `setup_git_directory_gently()`. In subsequent patches, we will use the _1() function in a new `discover_git_directory()` function that we will then use for the early config code. Note: the new loop is a *little* tricky, as we have to handle the root directory specially: we cannot simply strip away the last component including the slash, as the root directory only has that slash. To remedy that, we introduce the `min_offset` variable that holds the minimal length of an absolute path, and using that to special-case the root directory, including an early exit before trying to find the parent of the root directory. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* setup: prepare setup_discovered_git_dir() for the root directoryJohannes Schindelin2017-03-141-2/+4
| | | | | | | | | | | | | | | | | | | | Currently, the offset parameter (indicating what part of the cwd parameter corresponds to the current directory after discovering the .git/ directory) is set to 0 when we are running in the root directory. However, in the next patches we will avoid changing the current working directory while searching for the .git/ directory, meaning that the offset corresponding to the root directory will have to be 1 to reflect that this directory is characterized by the path "/" (and not ""). So let's make sure that setup_discovered_git_directory() only tries to append the trailing slash to non-root directories. Note: the setup_bare_git_directory() does not need a corresponding change, as it does not want to return a prefix. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* setup_git_directory(): use is_dir_sep() helperJohannes Schindelin2017-03-071-1/+3
| | | | | | | | | | | | | It is okay in practice to test for forward slashes in the output of getcwd(), because we go out of our way to convert backslashes to forward slashes in getcwd()'s output on Windows. Still, the correct way to test for a dir separator is by using the helper function we introduced for that very purpose. It also serves as a good documentation what the code tries to do (not "how"). Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* t7006: replace dubious testJohannes Schindelin2017-03-031-1/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | The idea of the test case "git -p - core.pager is not used from subdirectory" was to verify that the setup_git_directory() function had not been called just to obtain the core.pager setting. However, we are about to fix the early config machinery so that it *does* work, without messing up the global state. Once that is done, the core.pager setting *will* be used, even when running from a subdirectory, and that is a Good Thing. The intention of that test case, however, was to verify that the setup_git_directory() function has not run, because it changes global state such as the current working directory. To keep that spirit, but fix the incorrect assumption, this patch replaces that test case by a new one that verifies that the pager is run in the subdirectory, i.e. that the current working directory has not been changed at the time the pager is configured and launched, even if the `rev-parse` command requires a .git/ directory and *will* change the working directory. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* Git 2.12v2.12.0Junio C Hamano2017-02-243-1/+12
| | | | Signed-off-by: Junio C Hamano <gitster@pobox.com>
* Merge branch 'ps/doc-gc-aggressive-depth-update'Junio C Hamano2017-02-241-1/+1
|\ | | | | | | | | | | | | Doc update. * ps/doc-gc-aggressive-depth-update: docs/git-gc: fix default value for `--aggressiveDepth`
| * docs/git-gc: fix default value for `--aggressiveDepth`ps/doc-gc-aggressive-depth-updatePatrick Steinhardt2017-02-241-1/+1
| | | | | | | | | | | | | | | | | | | | | | In commit 07e7dbf0d (gc: default aggressive depth to 50, 2016-08-11), the default aggressive depth of git-gc has been changed to 50. While git-config(1) has been updated to represent the new default value, git-gc(1) still mentions the old value. This patch fixes it. Signed-off-by: Patrick Steinhardt <ps@pks.im> Reviewed-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Merge branch 'bc/worktree-doc-fix-detached'Junio C Hamano2017-02-241-1/+1
|\ \ | | | | | | | | | | | | | | | | | | Doc update. * bc/worktree-doc-fix-detached: Documentation: correctly spell git worktree --detach
| * | Documentation: correctly spell git worktree --detachbc/worktree-doc-fix-detachedbrian m. carlson2017-02-221-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | The option is “--detach”, but we accidentally spelled it “--detached” at one point in the man page. Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net> Reported-by: Casey Rodarmor <casey@rodarmor.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | | Merge branch 'dr/doc-check-ref-format-normalize'Junio C Hamano2017-02-241-3/+3
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | Doc update. * dr/doc-check-ref-format-normalize: git-check-ref-format: clarify documentation for --normalize
| * | | git-check-ref-format: clarify documentation for --normalizedr/doc-check-ref-format-normalizeDamien Regad2017-02-211-3/+3
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | Use of 'iff' may be confusing to people not familiar with this term. Improving the --normalize option's documentation to remove the use of 'iff', and clearly describe what happens when the condition is not met. Signed-off-by: Damien Regad <dregad@mantisbt.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | | Merge branch 'gp/document-dotfiles-in-templates-are-not-copied'Junio C Hamano2017-02-241-2/+2
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | Doc update. * gp/document-dotfiles-in-templates-are-not-copied: init: document dotfiles exclusion on template copy
| * | | init: document dotfiles exclusion on template copygp/document-dotfiles-in-templates-are-not-copiedGrégoire Paris2017-02-171-2/+2
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Not just . and .., but any path that begins with dot is not copied when copying the template directory to a new repository. You can customize the template directory, copying some dotfiles might make sense, but it's actually a good thing not to, because you would not want to have your git directory copied in every git directory that is created should you decide to put your template directory under version control, for example. Plus, it might be used as a feature by people who would want to exclude some files. Signed-off-by: Grégoire Paris <postmaster@greg0ire.fr> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | | Merge branch 'rt/align-add-i-help-text'Junio C Hamano2017-02-241-1/+1
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | Doc update. * rt/align-add-i-help-text: git add -i: replace \t with blanks in the help message
| * | | git add -i: replace \t with blanks in the help messagert/align-add-i-help-textRalf Thielow2017-02-221-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Within the help message of 'git add -i', the 'diff' command uses one tab character and blanks to create the space between the name and the description while the others use blanks only. So if the tab size is not at 4 characters, this description will not be in range. Replace the tab character with blanks. Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | | | Merge branch 'bc/blame-doc-fix'Junio C Hamano2017-02-241-2/+2
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Doc update. * bc/blame-doc-fix: Documentation: use brackets for optional arguments
| * | | | Documentation: use brackets for optional argumentsbc/blame-doc-fixbrian m. carlson2017-02-221-2/+2
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The documentation for git blame used vertical bars for optional arguments to -M and -C, which is unusual and potentially confusing. Since most man pages use brackets for optional items, and that's consistent with how we document the same options for git diff and friends, use brackets here, too. Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | | | Merge tag 'l10n-2.12.0-rnd2' of git://github.com/git-l10n/git-poJunio C Hamano2017-02-2411-16381/+30174
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | l10n-2.12.0-rnd2 * tag 'l10n-2.12.0-rnd2' of git://github.com/git-l10n/git-po: (22 commits) l10n: zh_CN: for git v2.12.0 l10n round 2 l10n: Update Catalan translation l10n: pt_PT: update Portuguese tranlation l10n: sv.po: Update Swedish translation (3139t0f0u) l10n: de.po: translate 241 messages l10n: ko.po: Update Korean translation l10n: vi.po (3139t): Updated 2 new messages for rc1 l10n: fr.po: v2.12.0 round 2 3139t l10n: git.pot: v2.12.0 round 2 (2 new) l10n: vi.po: Updated Vietnamese translation (3137t) l10n: update Catalan translation l10n: sv.po: Update Swedish translation (3137t0f0u) l10n: fr.po: v2.11-rc0 first round l10n: ko.po: Update Korean translation l10n: fr.po: Fix a typo in the French translation l10n: fr.po: Remove gender specific adjectives l10n: fr.po: Fix typos l10n: git.pot: v2.12.0 round 1 (239 new, 15 removed) l10n: bg: Updated Bulgarian translation (2913t+0f+0u) l10n: fixes to Catalan translation ...
| * | | | l10n: zh_CN: for git v2.12.0 l10n round 2Jiang Xin2017-02-251-1446/+2761
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Translate 241 messages (3139t0f0u) for git v2.12.0-rc1. Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
| * | | | l10n: Update Catalan translationJordi Mas2017-02-251-280/+340
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Jordi Mas <jmas@softcatala.org>
| * | | | l10n: pt_PT: update Portuguese tranlationVasco Almeida2017-02-231-1634/+2928
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Vasco Almeida <vascomalmeida@sapo.pt>
| * | | | Merge branch 'master' of git://github.com/nafmo/git-l10n-svJiang Xin2017-02-221-168/+176
| |\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | * 'master' of git://github.com/nafmo/git-l10n-sv: l10n: sv.po: Update Swedish translation (3139t0f0u)
| | * | | | l10n: sv.po: Update Swedish translation (3139t0f0u)Peter Krefting2017-02-201-168/+176
| | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Peter Krefting <peter@softwolves.pp.se>
| * | | | | l10n: de.po: translate 241 messagesRalf Thielow2017-02-201-1472/+2859
| |/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Translate 241 messages came from git.pot update in 673bfad09 (l10n: git.pot: v2.12.0 round 1 (239 new, 15 removed)) and a4d94835a (l10n: git.pot: v2.12.0 round 2 (2 new)). Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com> Acked-by: Phillip Sz <phillip.szelat@gmail.com>
| * | | | Merge branch 'ko/merge-l10n' of https://github.com/changwoo/git-l10n-koJiang Xin2017-02-191-178/+200
| |\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | * 'ko/merge-l10n' of https://github.com/changwoo/git-l10n-ko: l10n: ko.po: Update Korean translation
| | * | | | l10n: ko.po: Update Korean translationChangwoo Ryu2017-02-191-178/+200
| | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Changwoo Ryu <cwryu@debian.org>
| * | | | | Merge branch 'master' of https://github.com/vnwildman/gitJiang Xin2017-02-191-169/+177
| |\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 'master' of https://github.com/vnwildman/git: l10n: vi.po (3139t): Updated 2 new messages for rc1
| | * | | | | l10n: vi.po (3139t): Updated 2 new messages for rc1Tran Ngoc Quan2017-02-181-169/+177
| | |/ / / / | | | | | | | | | | | | | | | | | | Signed-off-by: Tran Ngoc Quan <vnwildman@gmail.com>
| * | | | | l10n: fr.po: v2.12.0 round 2 3139tJean-Noel Avila2017-02-181-192/+234
| |/ / / / | | | | | | | | | | | | | | | Signed-off-by: Jean-Noel Avila <jn.avila@free.fr>
| * | | | l10n: git.pot: v2.12.0 round 2 (2 new)Jiang Xin2017-02-181-167/+175
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Generate po/git.pot from v2.12.0-rc1 for git v2.12.0 l10n round 2. Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
| * | | | Merge branch 'master' of git://github.com/git-l10n/git-poJiang Xin2017-02-189-11031/+20680
| |\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 'master' of git://github.com/git-l10n/git-po: l10n: vi.po: Updated Vietnamese translation (3137t) l10n: update Catalan translation l10n: sv.po: Update Swedish translation (3137t0f0u) l10n: fr.po: v2.11-rc0 first round l10n: ko.po: Update Korean translation l10n: fr.po: Fix a typo in the French translation l10n: fr.po: Remove gender specific adjectives l10n: fr.po: Fix typos l10n: git.pot: v2.12.0 round 1 (239 new, 15 removed) l10n: bg: Updated Bulgarian translation (2913t+0f+0u) l10n: fixes to Catalan translation l10n: zh_CN: review for git v2.11.0 l10n l10n: New Catalan translation maintainer
| | * \ \ \ Merge branch 'master' of https://github.com/vnwildman/gitJiang Xin2017-02-181-1338/+2669
| | |\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 'master' of https://github.com/vnwildman/git: l10n: vi.po: Updated Vietnamese translation (3137t)
| | | * | | | l10n: vi.po: Updated Vietnamese translation (3137t)Tran Ngoc Quan2017-02-171-1338/+2669
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Tran Ngoc Quan <vnwildman@gmail.com>
| | * | | | | Merge branch 'master' of https://github.com/Softcatala/git-poJiang Xin2017-02-181-1366/+2621
| | |\ \ \ \ \ | | | |/ / / / | | |/| | | | | | | | | | | | | | | | | | * 'master' of https://github.com/Softcatala/git-po: l10n: update Catalan translation
| | | * | | | l10n: update Catalan translationJordi Mas2017-02-161-1366/+2621
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Jordi Mas <jmas@softcatala.org>
| | * | | | | Merge branch 'master' of git://github.com/nafmo/git-l10n-svJiang Xin2017-02-141-1337/+2670
| | |\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 'master' of git://github.com/nafmo/git-l10n-sv: l10n: sv.po: Update Swedish translation (3137t0f0u)
| | | * | | | | l10n: sv.po: Update Swedish translation (3137t0f0u)Peter Krefting2017-02-111-1337/+2670
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Peter Krefting <peter@softwolves.pp.se>
| | * | | | | | Merge branch 'fr_v2.11.0_rnd1' of git://github.com/jnavila/gitJiang Xin2017-02-141-1344/+2655
| | |\ \ \ \ \ \ | | | |/ / / / / | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 'fr_v2.11.0_rnd1' of git://github.com/jnavila/git: l10n: fr.po: v2.11-rc0 first round l10n: fr.po: Fix a typo in the French translation l10n: fr.po: Remove gender specific adjectives l10n: fr.po: Fix typos
| | | * | | | | l10n: fr.po: v2.11-rc0 first roundJean-Noel Avila2017-02-111-1337/+2648
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Jean-Noel Avila <jn.avila@free.fr>
| | | * | | | | l10n: fr.po: Fix a typo in the French translationAnthony Ramine2017-02-041-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Anthony Ramine <n.oxyde@gmail.com>
| | | * | | | | l10n: fr.po: Remove gender specific adjectivesJoachim Jablon2017-02-041-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Joachim Jablon <ewjoachim@gmail.com> Reviewed-by: Jean-Noel Avila <jn.avila@free.fr>