summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2017-03-14read_early_config(): avoid .git/config hack when unneededLibravatar Johannes Schindelin1-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>
2017-03-14setup: make read_early_config() reusableLibravatar Johannes Schindelin3-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>
2017-03-14setup: introduce the discover_git_directory() functionLibravatar Johannes Schindelin2-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>
2017-03-14setup_git_directory_1(): avoid changing global stateLibravatar Johannes Schindelin1-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>
2017-03-14setup: prepare setup_discovered_git_dir() for the root directoryLibravatar Johannes Schindelin1-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>
2017-03-07setup_git_directory(): use is_dir_sep() helperLibravatar Johannes Schindelin1-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>
2017-03-03t7006: replace dubious testLibravatar Johannes Schindelin1-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>
2017-02-24Git 2.12Libravatar Junio C Hamano3-1/+12
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2017-02-24Merge branch 'ps/doc-gc-aggressive-depth-update'Libravatar Junio C Hamano1-1/+1
Doc update. * ps/doc-gc-aggressive-depth-update: docs/git-gc: fix default value for `--aggressiveDepth`
2017-02-24Merge branch 'bc/worktree-doc-fix-detached'Libravatar Junio C Hamano1-1/+1
Doc update. * bc/worktree-doc-fix-detached: Documentation: correctly spell git worktree --detach
2017-02-24Merge branch 'dr/doc-check-ref-format-normalize'Libravatar Junio C Hamano1-3/+3
Doc update. * dr/doc-check-ref-format-normalize: git-check-ref-format: clarify documentation for --normalize
2017-02-24Merge branch 'gp/document-dotfiles-in-templates-are-not-copied'Libravatar Junio C Hamano1-2/+2
Doc update. * gp/document-dotfiles-in-templates-are-not-copied: init: document dotfiles exclusion on template copy
2017-02-24Merge branch 'rt/align-add-i-help-text'Libravatar Junio C Hamano1-1/+1
Doc update. * rt/align-add-i-help-text: git add -i: replace \t with blanks in the help message
2017-02-24Merge branch 'bc/blame-doc-fix'Libravatar Junio C Hamano1-2/+2
Doc update. * bc/blame-doc-fix: Documentation: use brackets for optional arguments
2017-02-24docs/git-gc: fix default value for `--aggressiveDepth`Libravatar Patrick Steinhardt1-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>
2017-02-24Merge tag 'l10n-2.12.0-rnd2' of git://github.com/git-l10n/git-poLibravatar Junio C Hamano11-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 ...
2017-02-25l10n: zh_CN: for git v2.12.0 l10n round 2Libravatar Jiang Xin1-1446/+2761
Translate 241 messages (3139t0f0u) for git v2.12.0-rc1. Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
2017-02-25l10n: Update Catalan translationLibravatar Jordi Mas1-280/+340
Signed-off-by: Jordi Mas <jmas@softcatala.org>
2017-02-23l10n: pt_PT: update Portuguese tranlationLibravatar Vasco Almeida1-1634/+2928
Signed-off-by: Vasco Almeida <vascomalmeida@sapo.pt>
2017-02-22git add -i: replace \t with blanks in the help messageLibravatar Ralf Thielow1-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>
2017-02-22Documentation: use brackets for optional argumentsLibravatar brian m. carlson1-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>
2017-02-22Documentation: correctly spell git worktree --detachLibravatar brian m. carlson1-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>
2017-02-21git-check-ref-format: clarify documentation for --normalizeLibravatar Damien Regad1-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>
2017-02-22Merge branch 'master' of git://github.com/nafmo/git-l10n-svLibravatar Jiang Xin1-168/+176
* 'master' of git://github.com/nafmo/git-l10n-sv: l10n: sv.po: Update Swedish translation (3139t0f0u)
2017-02-20Merge branch 'svn-escape-backslash' of git://bogomips.org/git-svnLibravatar Junio C Hamano1-1/+1
* 'svn-escape-backslash' of git://bogomips.org/git-svn: git-svn: escape backslashes in refnames
2017-02-20l10n: sv.po: Update Swedish translation (3139t0f0u)Libravatar Peter Krefting1-168/+176
Signed-off-by: Peter Krefting <peter@softwolves.pp.se>
2017-02-20l10n: de.po: translate 241 messagesLibravatar Ralf Thielow1-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>
2017-02-19Merge branch 'ko/merge-l10n' of https://github.com/changwoo/git-l10n-koLibravatar Jiang Xin1-178/+200
* 'ko/merge-l10n' of https://github.com/changwoo/git-l10n-ko: l10n: ko.po: Update Korean translation
2017-02-19Merge branch 'master' of https://github.com/vnwildman/gitLibravatar Jiang Xin1-169/+177
* 'master' of https://github.com/vnwildman/git: l10n: vi.po (3139t): Updated 2 new messages for rc1
2017-02-19l10n: ko.po: Update Korean translationLibravatar Changwoo Ryu1-178/+200
Signed-off-by: Changwoo Ryu <cwryu@debian.org>
2017-02-18l10n: vi.po (3139t): Updated 2 new messages for rc1Libravatar Tran Ngoc Quan1-169/+177
Signed-off-by: Tran Ngoc Quan <vnwildman@gmail.com>
2017-02-17init: document dotfiles exclusion on template copyLibravatar Grégoire Paris1-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>
2017-02-18l10n: fr.po: v2.12.0 round 2 3139tLibravatar Jean-Noel Avila1-192/+234
Signed-off-by: Jean-Noel Avila <jn.avila@free.fr>
2017-02-17Git 2.12-rc2Libravatar Junio C Hamano1-1/+1
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2017-02-18l10n: git.pot: v2.12.0 round 2 (2 new)Libravatar Jiang Xin1-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>
2017-02-18Merge branch 'master' of git://github.com/git-l10n/git-poLibravatar Jiang Xin9-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
2017-02-18Merge branch 'master' of https://github.com/vnwildman/gitLibravatar Jiang Xin1-1338/+2669
* 'master' of https://github.com/vnwildman/git: l10n: vi.po: Updated Vietnamese translation (3137t)
2017-02-18Merge branch 'master' of https://github.com/Softcatala/git-poLibravatar Jiang Xin1-1366/+2621
* 'master' of https://github.com/Softcatala/git-po: l10n: update Catalan translation
2017-02-17l10n: vi.po: Updated Vietnamese translation (3137t)Libravatar Tran Ngoc Quan1-1338/+2669
Signed-off-by: Tran Ngoc Quan <vnwildman@gmail.com>
2017-02-16Hopefully the final batch of mini-topics before the finalLibravatar Junio C Hamano1-0/+18
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2017-02-16Merge branch 'jk/tempfile-ferror-fclose-confusion'Libravatar Junio C Hamano1-6/+2
Code clean-up. * jk/tempfile-ferror-fclose-confusion: tempfile: avoid "ferror | fclose" trick
2017-02-16Merge branch 'dp/submodule-doc-markup-fix'Libravatar Junio C Hamano1-1/+1
Doc fix. * dp/submodule-doc-markup-fix: config.txt: fix formatting of submodule.alternateErrorStrategy section
2017-02-16Merge branch 'jk/reset-to-break-a-commit-doc-updated'Libravatar Junio C Hamano1-0/+48
Doc update. * jk/reset-to-break-a-commit-doc-updated: reset: add an example of how to split a commit into two
2017-02-16Merge branch 'jk/reset-to-break-a-commit-doc'Libravatar Junio C Hamano1-38/+0
Doc update. * jk/reset-to-break-a-commit-doc: Revert "reset: add an example of how to split a commit into two"
2017-02-16Merge branch 'js/mingw-isatty'Libravatar Junio C Hamano1-0/+4
A hotfix for a topic already in 'master'. * js/mingw-isatty: mingw: make stderr unbuffered again
2017-02-16Merge branch 'rs/strbuf-cleanup-in-rmdir-recursively'Libravatar Junio C Hamano1-3/+3
Code clean-up. * rs/strbuf-cleanup-in-rmdir-recursively: rm: reuse strbuf for all remove_dir_recursively() calls, again
2017-02-16Merge branch 'rs/ls-files-partial-optim'Libravatar Junio C Hamano1-10/+11
"ls-files" run with pathspec has been micro-optimized to avoid having to memmove(3) unnecessary bytes. * rs/ls-files-partial-optim: ls-files: move only kept cache entries in prune_cache() ls-files: pass prefix length explicitly to prune_cache()
2017-02-16Merge branch 'rs/cocci-check-free-only-null'Libravatar Junio C Hamano1-0/+6
A new coccinelle rule that catches a check of !pointer before the pointer is free(3)d, which most likely is a bug. * rs/cocci-check-free-only-null: cocci: detect useless free(3) calls
2017-02-16Merge branch 'ls/p4-path-encoding'Libravatar Junio C Hamano2-10/+30
When "git p4" imports changelist that removes paths, it failed to convert pathnames when the p4 used encoding different from the one used on the Git side. This has been corrected. * ls/p4-path-encoding: git-p4: fix git-p4.pathEncoding for removed files
2017-02-16tempfile: avoid "ferror | fclose" trickLibravatar Jeff King1-6/+2
The current code wants to record an error condition from either ferror() or fclose(), but makes sure that we always call both functions. So it can't use logical-OR "||", which would short-circuit when ferror() is true. Instead, it uses bitwise-OR "|" to evaluate both functions and set one or more bits in the "err" flag if they reported a failure. Unlike logical-OR, though, bitwise-OR does not introduce a sequence point, and the order of evaluation for its operands is unspecified. So a compiler would be free to generate code which calls fclose() first, and then ferror() on the now-freed filehandle. There's no indication that this has happened in practice, but let's write it out in a way that follows the standard. Noticed-by: Andreas Schwab <schwab@linux-m68k.org> Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>