summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2017-11-20branch: respect `pager.branch` in list-mode onlyLibravatar Martin Ågren4-4/+13
Similar to de121ffe5 (tag: respect `pager.tag` in list-mode only, 2017-08-02), use the DELAY_PAGER_CONFIG-mechanism to only respect `pager.branch` when we are listing branches. We have two possibilities of generalizing what that earlier commit made to `git tag`. One is to interpret, e.g., --set-upstream-to as "it does not use an editor, so we should page". Another, the one taken by this commit, is to say "it does not list, so let's not page". That is in line with the approach of the series on `pager.tag` and in particular the wording in Documentation/git-tag.txt, which this commit reuses for git-branch.txt. This fixes the failing test added in the previous commit. Also adapt the test for whether `git branch --set-upstream-to` respects `pager.branch`. Signed-off-by: Martin Ågren <martin.agren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2017-11-20t7006: add tests for how git branch paginatesLibravatar Martin Ågren1-0/+38
The next couple of commits will change how `git branch` handles `pager.branch`, similar to how de121ffe5 (tag: respect `pager.tag` in list-mode only, 2017-08-02) and ff1e72483 (tag: change default of `pager.tag` to "on", 2017-08-02) changed `git tag`. Add tests in this area to make sure that we don't regress and so that the upcoming commits can be made clearer by adapting the tests. Add some tests for `--list` (implied), one for `--edit-description`, and one for `--set-upstream-to` as a representative of "something other than the first two". In particular, use `test_expect_failure` to document that we currently respect the pager-configuration with `--edit-description`. The current behavior is buggy since the pager interferes with the editor and makes the end result completely broken. See also b3ee740c8 (t7006: add tests for how git tag paginates, 2017-08-02). Signed-off-by: Martin Ågren <martin.agren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2017-08-03git.c: ignore pager.* when launching builtin as dashed externalLibravatar Martin Ågren2-2/+2
When running, e.g., `git -c alias.bar=foo bar`, we expand the alias and execute `git-foo` as a dashed external. This is true even if git foo is a builtin. That is on purpose, and is motivated in a comment which was added in commit 441981bc ("git: simplify environment save/restore logic", 2016-01-26). Shortly before we launch a dashed external, and unless we have already found out whether we should use a pager, we check `pager.foo`. This was added in commit 92058e4d ("support pager.* for external commands", 2011-08-18). If the dashed external is a builtin, this does not match that commit's intention and is arguably wrong, since it would be cleaner if we let the "dashed external builtin" handle `pager.foo`. This has not mattered in practice, but a recent patch taught `git-tag` to ignore `pager.tag` under certain circumstances. But, when started using an alias, it doesn't get the chance to do so, as outlined above. That recent patch added a test to document this breakage. Do not check `pager.foo` before launching a builtin as a dashed external, i.e., if we recognize the name of the external as a builtin. Change the test to use `test_expect_success`. Signed-off-by: Martin Ågren <martin.agren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2017-08-03tag: change default of `pager.tag` to "on"Libravatar Martin Ågren3-16/+16
The previous patch taught `git tag` to only respect `pager.tag` in list-mode. That patch left the default value of `pager.tag` at "off". After that patch, it makes sense to let the default value be "on" instead, since it will help with listing many tags, but will not hurt users of `git tag -a` as it would have before. Make that change. Update documentation and tests. Signed-off-by: Martin Ågren <martin.agren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2017-08-03tag: respect `pager.tag` in list-mode onlyLibravatar Martin Ågren4-2/+21
Using, e.g., `git -c pager.tag tag -a new-tag` results in errors such as "Vim: Warning: Output is not to a terminal" and a garbled terminal. Someone who makes use of both `git tag -a` and `git tag -l` will probably not set `pager.tag`, so that `git tag -a` will actually work, at the cost of not paging output of `git tag -l`. Use the mechanisms introduced in two earlier patches to ignore `pager.tag` in git.c and let the `git tag` builtin handle it on its own. Only respect `pager.tag` when running in list-mode. There is a window between where the pager is started before and after this patch. This means that early errors can behave slightly different before and after this patch. Since operation-parsing has to happen inside this window, this can be seen with `git -c pager.tag="echo pager is used" tag -l --unknown-option`. This change in paging-behavior should be acceptable since it only affects erroneous usages. Update the documentation and update tests. If an alias is used to run `git tag -a`, then `pager.tag` will still be respected. Document this known breakage. It will be fixed in a later commit. Add a similar test for `-l`, which works. Noticed-by: Anatoly Borodin <anatoly.borodin@gmail.com> Suggested-by: Jeff King <peff@peff.net> Signed-off-by: Martin Ågren <martin.agren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2017-08-03t7006: add tests for how git tag paginatesLibravatar Martin Ågren1-0/+67
Using, e.g., `git -c pager.tag tag -a new-tag` results in errors such as "Vim: Warning: Output is not to a terminal" and a garbled terminal. Someone who makes use of both `git tag -a` and `git tag -l` will probably not set `pager.tag`, so that `git tag -a` will actually work, at the cost of not paging output of `git tag -l`. Since we're about to change how `git tag` respects `pager.tag`, add tests around this, including how the configuration is ignored if --no-pager or --paginate are used. Construct tests with a few different subcommands. First, use -l. Second, use "no arguments" and --contains, since those imply -l. (There are more arguments which imply -l, but using these two should be enough.) Third, use -a as a representative for "not -l". Actually, the tests use `git tag -am` so no editor is launched, but that is irrelevant, since we just want to see whether the pager is used or not. Make one of the tests demonstrate the broken behavior mentioned above, where `git tag -a` respects `pager.tag`. Signed-off-by: Martin Ågren <martin.agren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2017-08-03git.c: provide setup_auto_pager()Libravatar Martin Ågren2-0/+22
The previous patch introduced a way for builtins to declare that they will take responsibility for handling the `pager.foo`-config item. (See the commit message of that patch for why that could be useful.) Provide setup_auto_pager(), which builtins can call in order to handle `pager.<cmd>`, including possibly starting the pager. Make this function don't do anything if a pager has already been started, as indicated by use_pager or pager_in_use(). Whenever this function is called from a builtin, git.c will already have called commit_pager_choice(). Since commit_pager_choice() treats the special value -1 as "punt" or "not yet decided", it is not a problem that we might end up calling commit_pager_choice() once in git.c and once (or more) in the builtin. Make the new function use -1 in the same way and document it as "punt". Don't add any users of setup_auto_pager just yet, one will follow in a later patch. Suggested-by: Jeff King <peff@peff.net> Signed-off-by: Martin Ågren <martin.agren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2017-08-03git.c: let builtins opt for handling `pager.foo` themselvesLibravatar Martin Ågren2-1/+11
Before launching a builtin git foo and unless mechanisms with precedence are in use, we check for and handle the `pager.foo` config. This is done without considering exactly how git foo is being used, and indeed, git.c cannot (and should not) know what the arguments to git foo are supposed to achieve. In practice this means that, e.g., `git -c pager.tag tag -a new-tag` results in errors such as "Vim: Warning: Output is not to a terminal" and a garbled terminal. Someone who makes use of both `git tag -a` and `git tag -l` will probably not set `pager.tag`, so that `git tag -a` will actually work, at the cost of not paging output of `git tag -l`. To allow individual builtins to make more informed decisions about when to respect `pager.foo`, introduce a flag DELAY_PAGER_CONFIG. If the flag is set, do not check `pager.foo`. Do not check for DELAY_PAGER_CONFIG in `execv_dashed_external()`. That call site is arguably wrong, although in a way that is not yet visible, and will be changed in a slightly different direction in a later patch. Don't add any users of DELAY_PAGER_CONFIG just yet, one will follow in a later patch. Suggested-by: Jeff King <peff@peff.net> Signed-off-by: Martin Ågren <martin.agren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2017-08-03builtin.h: take over documentation from api-builtin.txtLibravatar Martin Ågren2-73/+80
Delete Documentation/technical/api-builtin.txt and move its content into builtin.h. Format it as a comment. Remove a '+' which was needed when the information was formatted for AsciiDoc. Similarly, change "::" to ":". Document SUPPORT_SUPER_PREFIX, thereby bringing the documentation up to date with the available flags. While at it, correct '3 more things to do' to '4 more things to do'. Signed-off-by: Martin Ågren <martin.agren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2017-08-02Merge tag 'l10n-2.14.0-rnd2' of git://github.com/git-l10n/git-poLibravatar Junio C Hamano9-15801/+17022
l10n for Git 2.14.0 round 2 * tag 'l10n-2.14.0-rnd2' of git://github.com/git-l10n/git-po: l10n: zh_CN: review for git v2.14.0 l10n l10n: ko.po: Update Korean translation l10n: zh_CN: for git v2.14.0 l10n round 2 l10n: de.po: various fixes in German translation l10n: ru.po: update Russian translation l10n: fr.po v2.14.0 rnd 2 l10n: fr.po Fix some french typos l10n: fr.po Fix typo l10n: fr.po Fix some translations l10n: de.po: update German translation l10n: vi.po (3213t): Updated 9 new strings l10n: Update Catalan translation l10n: bg.po: Updated Bulgarian translation (3213t)
2017-08-02l10n: zh_CN: review for git v2.14.0 l10nLibravatar Jiang Xin2-8/+10
Reviewed-by: 依云 <lilydjwg@gmail.com> Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
2017-08-01Sync with v2.13.4Libravatar Junio C Hamano0-0/+0
2017-08-01Git 2.13.4Libravatar Junio C Hamano1-1/+1
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2017-08-01l10n: ko.po: Update Korean translationLibravatar Changwoo Ryu1-13/+56
Signed-off-by: Changwoo Ryu <cwryu@debian.org>
2017-08-01l10n: zh_CN: for git v2.14.0 l10n round 2Libravatar Jiang Xin1-3165/+3147
Translate new l10n messages for git 2.14.0, and update translations on "stash". Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
2017-07-31Sync with maintLibravatar Junio C Hamano1-0/+18
* maint: Preparation for 2.13.4 continues
2017-07-31Preparation for 2.13.4 continuesLibravatar Junio C Hamano1-0/+18
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2017-07-31Merge branch 'ks/doc-fixes' into maintLibravatar Junio C Hamano2-10/+11
Doc clean-up. * ks/doc-fixes: doc: reformat the paragraph containing the 'cut-line' doc: camelCase the i18n config variables to improve readability
2017-07-31Merge branch 'jk/test-copy-bytes-fix' into maintLibravatar Junio C Hamano1-0/+1
A test fix. * jk/test-copy-bytes-fix: t: handle EOF in test_copy_bytes()
2017-07-31Merge branch 'pw/unquote-path-in-git-pm' into maintLibravatar Junio C Hamano3-43/+61
Code refactoring. * pw/unquote-path-in-git-pm: t9700: add tests for Git::unquote_path() Git::unquote_path(): throw an exception on bad path Git::unquote_path(): handle '\a' add -i: move unquote_path() to Git.pm
2017-07-31Merge branch 'jk/gc-pre-detach-under-hook' into maintLibravatar Junio C Hamano2-0/+25
We run an early part of "git gc" that deals with refs before daemonising (and not under lock) even when running a background auto-gc, which caused multiple gc processes attempting to run the early part at the same time. This is now prevented by running the early part also under the GC lock. * jk/gc-pre-detach-under-hook: gc: run pre-detach operations under lock
2017-07-31Merge branch 'jn/hooks-pre-rebase-sample-fix' into maintLibravatar Junio C Hamano1-3/+3
Code clean-up, that makes us in sync with Debian by one patch. * jn/hooks-pre-rebase-sample-fix: pre-rebase hook: capture documentation in a <<here document
2017-07-31Merge branch 'rs/progress-overall-throughput-at-the-end' into maintLibravatar Junio C Hamano1-2/+6
The progress meter did not give a useful output when we haven't had 0.5 seconds to measure the throughput during the interval. Instead show the overall throughput rate at the end, which is a much more useful number. * rs/progress-overall-throughput-at-the-end: progress: show overall rate in last update
2017-07-31Merge branch 'tb/push-to-cygwin-unc-path' into maintLibravatar Junio C Hamano5-0/+27
On Cygwin, similar to Windows, "git push //server/share/repository" ought to mean a repository on a network share that can be accessed locally, but this did not work correctly due to stripping the double slashes at the beginning. This may need to be heavily tested before it gets unleashed to the wild, as the change is at a fairly low-level code and would affect not just the code to decide if the push destination is local. There may be unexpected fallouts in the path normalization. * tb/push-to-cygwin-unc-path: cygwin: allow pushing to UNC paths
2017-07-31Merge branch 'rs/apply-avoid-over-reading' into maintLibravatar Junio C Hamano1-4/+2
Code cleanup. * rs/apply-avoid-over-reading: apply: use strcmp(3) for comparing strings in gitdiff_verify_name() apply: use starts_with() in gitdiff_verify_name()
2017-07-31Merge branch 'js/blame-lib'Libravatar Junio C Hamano1-2/+4
A hotfix to a topic already in 'master'. * js/blame-lib: blame: fix memory corruption scrambling revision name in error message
2017-07-30l10n: de.po: various fixes in German translationLibravatar Hartmut Henkel1-27/+25
Signed-off-by: Hartmut Henkel <henkel@vh-s.de> Helped-by: Stefan Beller <sbeller@google.com> Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com> Acked-by: Matthias Rüster <matthias.ruester@gmail.com>
2017-07-30Merge branch 'russian-l10n' of https://github.com/DJm00n/git-po-ruLibravatar Jiang Xin1-3027/+3137
* 'russian-l10n' of https://github.com/DJm00n/git-po-ru: l10n: ru.po: update Russian translation
2017-07-30l10n: ru.po: update Russian translationLibravatar Dimitriy Ryazantcev1-3027/+3137
Signed-off-by: Dimitriy Ryazantcev <dimitriy.ryazantcev@gmail.com>
2017-07-27Merge branch 'master' of https://github.com/ralfth/git-po-deLibravatar Jiang Xin1-3010/+3181
* 'master' of https://github.com/ralfth/git-po-de: l10n: de.po: update German translation
2017-07-27Merge branch 'fr_l10n_v2.14.0rnd2' of git://github.com/jnavila/gitLibravatar Jiang Xin1-3038/+3222
* 'fr_l10n_v2.14.0rnd2' of git://github.com/jnavila/git: l10n: fr.po v2.14.0 rnd 2 l10n: fr.po Fix some french typos l10n: fr.po Fix typo l10n: fr.po Fix some translations
2017-07-27l10n: fr.po v2.14.0 rnd 2Libravatar Jean-Noel Avila1-3009/+3193
Signed-off-by: Jean-Noel Avila <jean-noel.avila@scantech.fr>
2017-07-27l10n: fr.po Fix some french typosLibravatar Sylvestre Ledru1-17/+17
Signed-off-by: Sylvestre Ledru <sylvestre@debian.org>
2017-07-27l10n: fr.po Fix typoLibravatar Louis1-1/+1
Signed-off-by: Louis <spalax@gresille.org>
2017-07-27l10n: fr.po Fix some translationsLibravatar Hugues Peccatte1-13/+13
Signed-off-by: Hugues Peccatte <hugues.peccatte@aareon.fr> Signed-off-by: Jean-Noel Avila <jn.avila@free.fr>
2017-07-26l10n: de.po: update German translationLibravatar Ralf Thielow1-3010/+3181
Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
2017-07-26Merge branch 'master' of https://github.com/Softcatala/git-poLibravatar Jiang Xin1-3453/+4119
* 'master' of https://github.com/Softcatala/git-po: l10n: Update Catalan translation
2017-07-26Merge branch 'master' of git://github.com/alshopov/git-poLibravatar Jiang Xin1-17/+67
* 'master' of git://github.com/alshopov/git-po: l10n: bg.po: Updated Bulgarian translation (3213t)
2017-07-25l10n: vi.po (3213t): Updated 9 new stringsLibravatar Tran Ngoc Quan1-50/+65
Signed-off-by: Tran Ngoc Quan <vnwildman@gmail.com>
2017-07-24Git 2.14-rc1Libravatar Junio C Hamano1-1/+1
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2017-07-24blame: fix memory corruption scrambling revision name in error messageLibravatar SZEDER Gábor1-2/+4
When attempting to blame a non-existing path, git should show an error message like this: $ git blame e83c51633 -- nonexisting-file fatal: no such path nonexisting-file in e83c51633 Since the recent commit 835c49f7d (blame: rework methods that determine 'final' commit, 2017-05-24) the revision name is either missing or some scrambled characters are shown instead. The reason is that the revision name must be duplicated, because it is invalidated when the pending objects array is cleared in the meantime, but this commit dropped the duplication. Restore the duplication of the revision name in the affected functions (find_single_final() and find_single_initial()). Signed-off-by: SZEDER Gábor <szeder.dev@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2017-07-24Merge https://github.com/git-l10n/git-poLibravatar Junio C Hamano7-18800/+20664
* https://github.com/git-l10n/git-po: l10n: git.pot: v2.14.0 round 2 (9 new, 2 removed) l10n: sv.po: Update Swedish translation (3206t0f0u) l10n: ko.po: Update Korean translation l10n: Update Catalan translation l10n: bg.po: Updated Bulgarian translation (3206t) l10n: vi.po(3206t): Update Vietnamese translation l10n: git.pot: v2.14.0 round 1 (34 new, 23 removed) l10n: ru.po: update Russian translation l10n: Fixes to Catalan translation
2017-07-24l10n: Update Catalan translationLibravatar Jordi Mas1-3453/+4119
Signed-off-by: Jordi Mas <jmas@softcatala.org>
2017-07-24l10n: bg.po: Updated Bulgarian translation (3213t)Libravatar Alexander Shopov1-17/+67
Signed-off-by: Alexander Shopov <ash@kambanaria.org>
2017-07-24l10n: git.pot: v2.14.0 round 2 (9 new, 2 removed)Libravatar Jiang Xin1-10/+60
Generate po/git.pot from v2.14.0-rc0-40-g5eada8987e for git v2.14.0 l10n round 2. Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
2017-07-24Merge branch 'master' of git://github.com/git-l10n/git-poLibravatar Jiang Xin7-18830/+20644
* 'master' of git://github.com/git-l10n/git-po: l10n: sv.po: Update Swedish translation (3206t0f0u) l10n: ko.po: Update Korean translation l10n: Update Catalan translation l10n: bg.po: Updated Bulgarian translation (3206t) l10n: vi.po(3206t): Update Vietnamese translation l10n: git.pot: v2.14.0 round 1 (34 new, 23 removed) l10n: ru.po: update Russian translation l10n: Fixes to Catalan translation
2017-07-22Merge branch 'master' of git://github.com/nafmo/git-l10n-svLibravatar Jiang Xin1-3103/+3271
* 'master' of git://github.com/nafmo/git-l10n-sv: l10n: sv.po: Update Swedish translation (3206t0f0u)
2017-07-21Sync with maintLibravatar Junio C Hamano1-0/+10
* maint: fixes from 'master' for 2.13.4
2017-07-21fixes from 'master' for 2.13.4Libravatar Junio C Hamano2-1/+11
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2017-07-21Merge branch 'ew/fd-cloexec-fix' into maintLibravatar Junio C Hamano1-3/+3
Portability/fallback fix. * ew/fd-cloexec-fix: set FD_CLOEXEC properly when O_CLOEXEC is not supported