sort by:
Revision Author Date Message Commit Date
327b3f8 Merge branch 'mh/blame-worktree' into maint "git blame file" allowed the lineage of lines in the uncommitted, unadded contents of "file" to be inspected, but it refused when "file" did not appear in the current commit. When "file" was created by renaming an existing file (but the change has not been committed), this restriction was unnecessarily tight. * mh/blame-worktree: t/t8003-blame-corner-cases.sh: Use here documents blame: allow to blame paths freshly added to the index 08 August 2016, 21:21:32 UTC
08df31e Some fixes for 2.9.3 Signed-off-by: Junio C Hamano <gitster@pobox.com> 28 July 2016, 18:28:32 UTC
1ecc6b2 Merge branch 'ak/lazy-prereq-mktemp' into maint A test that unconditionally used "mktemp" learned that the command is not necessarily available everywhere. * ak/lazy-prereq-mktemp: t7610: test for mktemp before test execution 28 July 2016, 18:26:03 UTC
6cbec0d Merge branch 'nd/icase' into maint "git grep -i" has been taught to fold case in non-ascii locales correctly. * nd/icase: grep.c: reuse "icase" variable diffcore-pickaxe: support case insensitive match on non-ascii diffcore-pickaxe: Add regcomp_or_die() grep/pcre: support utf-8 gettext: add is_utf8_locale() grep/pcre: prepare locale-dependent tables for icase matching grep: rewrite an if/else condition to avoid duplicate expression grep/icase: avoid kwsset when -F is specified grep/icase: avoid kwsset on literal non-ascii strings test-regex: expose full regcomp() to the command line test-regex: isolate the bug test code grep: break down an "if" stmt in preparation for next changes 28 July 2016, 18:26:03 UTC
8e4571e Merge branch 'sb/submodule-parallel-fetch' into maint Fix recently introduced codepaths that are involved in parallel submodule operations, which gave up on reading too early, and could have wasted CPU while attempting to write under a corner case condition. * sb/submodule-parallel-fetch: hoist out handle_nonblock function for xread and xwrite xwrite: poll on non-blocking FDs xread: retry after poll on EAGAIN/EWOULDBLOCK 28 July 2016, 18:26:02 UTC
c81d283 Merge branch 'dk/blame-move-no-reason-for-1-line-context' into maint "git blame -M" missed a single line that was moved within the file. * dk/blame-move-no-reason-for-1-line-context: blame: require 0 context lines while finding moved lines with -M 28 July 2016, 18:26:01 UTC
e5a730a Merge branch 'jk/test-match-signal' into maint The test framework learned a new helper test_match_signal to check an exit code from getting killed by an expected signal. * jk/test-match-signal: t/lib-git-daemon: use test_match_signal test_must_fail: use test_match_signal t0005: use test_match_signal as appropriate tests: factor portable signal check out of t0005 28 July 2016, 18:26:00 UTC
174f9e6 Merge branch 'js/am-call-theirs-theirs-in-fallback-3way' into maint One part of "git am" had an oddball helper function that called stuff from outside "his" as opposed to calling what we have "ours", which was not gender-neutral and also inconsistent with the rest of the system where outside stuff is usuall called "theirs" in contrast to "ours". * js/am-call-theirs-theirs-in-fallback-3way: am: counteract gender bias 28 July 2016, 18:25:59 UTC
8a81d5f Merge branch 'js/t3404-grammo-fix' into maint Grammofix. * js/t3404-grammo-fix: t3404: fix a grammo (commands are ran -> commands are run) 28 July 2016, 18:25:59 UTC
dcfb9d7 Merge branch 'nd/doc-new-command' into maint Typofix in a doc. * nd/doc-new-command: new-command.txt: correct the command description file 28 July 2016, 18:25:57 UTC
87be95b Merge branch 'ew/gc-auto-pack-limit-fix' into maint "gc.autoPackLimit" when set to 1 should not trigger a repacking when there is only one pack, but the code counted poorly and did so. * ew/gc-auto-pack-limit-fix: gc: fix off-by-one error with gc.autoPackLimit 28 July 2016, 18:25:56 UTC
52d637c Merge branch 'js/color-on-windows-comment' into maint For a long time, we carried an in-code comment that said our colored output would work only when we use fprintf/fputs on Windows, which no longer is the case for the past few years. * js/color-on-windows-comment: color.h: remove obsolete comment about limitations on Windows 28 July 2016, 18:25:55 UTC
1032eb9 Merge branch 'mm/doc-tt' into maint More mark-up updates to typeset strings that are expected to literally typed by the end user in fixed-width font. * mm/doc-tt: doc: typeset HEAD and variants as literal CodingGuidelines: formatting HEAD in documentation doc: typeset long options with argument as literal doc: typeset '--' as literal doc: typeset long command-line options as literal doc: typeset short command-line options as literal Documentation/git-mv.txt: fix whitespace indentation 28 July 2016, 18:25:54 UTC
475495f Merge branch 'js/sign-empty-commit-fix' into maint "git commit --amend --allow-empty-message -S" for a commit without any message body could have misidentified where the header of the commit object ends. * js/sign-empty-commit-fix: commit -S: avoid invalid pointer with empty message 28 July 2016, 18:25:53 UTC
ae8daba Merge branch 'ps/rebase-i-auto-unstash-upon-abort' into maint "git rebase -i --autostash" did not restore the auto-stashed change when the operation was aborted. * ps/rebase-i-auto-unstash-upon-abort: rebase -i: restore autostash on abort 28 July 2016, 18:25:52 UTC
c12c71f Merge branch 'nd/ita-cleanup' into maint Git does not know what the contents in the index should be for a path added with "git add -N" yet, so "git grep --cached" should not show hits (or show lack of hits, with -L) in such a path, but that logic does not apply to "git grep", i.e. searching in the working tree files. But we did so by mistake, which has been corrected. * nd/ita-cleanup: grep: fix grepping for "intent to add" files t7810-grep.sh: fix a whitespace inconsistency t7810-grep.sh: fix duplicated test name 28 July 2016, 18:25:51 UTC
4966b58 Merge branch 'js/find-commit-subject-ignore-leading-blanks' into maint A helper function that takes the contents of a commit object and finds its subject line did not ignore leading blank lines, as is commonly done by other codepaths. Make it ignore leading blank lines to match. * js/find-commit-subject-ignore-leading-blanks: reset --hard: skip blank lines when reporting the commit subject sequencer: use skip_blank_lines() to find the commit subject commit -C: skip blank lines at the beginning of the message commit.c: make find_commit_subject() more robust pretty: make the skip_blank_lines() function public 28 July 2016, 18:25:50 UTC
053e2fb Merge branch 'dg/subtree-rebase-test' into maint Add a test to specify the desired behaviour that currently is not available in "git rebase -Xsubtree=...". * dg/subtree-rebase-test: contrib/subtree: Add a test for subtree rebase that loses commits 28 July 2016, 18:25:49 UTC
c66b470 t/t8003-blame-corner-cases.sh: Use here documents Somehow, this test was using: { echo A echo B } > file block to feed file contents. This changes those to the form most common in git test scripts: cat >file <<-\EOF A B EOF Signed-off-by: Mike Hommey <mh@glandium.org> Signed-off-by: Junio C Hamano <gitster@pobox.com> 18 July 2016, 21:33:38 UTC
3b75ee9 blame: allow to blame paths freshly added to the index When blaming files, changes in the work tree are taken into account and displayed as being "Not Committed Yet". However, when blaming a file that is not known to the current HEAD, git blame fails with `no such path 'foo' in HEAD`, even when the file was git add'ed. Allowing such a blame is useful when the new file added to the index (not yet committed) was created by renaming an existing file. It also is useful when the new file was created from pieces already in HEAD, moved or copied from other files and blaming with copy detection (i.e. "-C"). Signed-off-by: Mike Hommey <mh@glandium.org> Signed-off-by: Junio C Hamano <gitster@pobox.com> 18 July 2016, 21:33:38 UTC
e634160 Git 2.9.2 Signed-off-by: Junio C Hamano <gitster@pobox.com> 15 July 2016, 17:48:16 UTC
33eacd3 Merge branch 'jk/tzoffset-fix' into maint Skip tests that are unrunnable on platforms without 64-bit long to avoid unnecessary test failures. * jk/tzoffset-fix: t0006: skip "far in the future" test when unsigned long is not long enough 15 July 2016, 16:43:42 UTC
6b9c38e t0006: skip "far in the future" test when unsigned long is not long enough Git's source code refers to timestamps as unsigned longs. On 32-bit platforms, as well as on Windows, unsigned long is not large enough to capture dates that are "absurdly far in the future". While we can fix this issue properly by replacing unsigned long with a larger type, we want to be a bit more conservative and just skip those tests on the maint track. Signed-off-by: Jeff King <peff@peff.net> Helped-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> 15 July 2016, 16:05:53 UTC
5c9159d Git 2.9.1 Signed-off-by: Junio C Hamano <gitster@pobox.com> 11 July 2016, 17:45:50 UTC
3a30c14 Merge branch 'jc/t2300-setup' into maint Portability fix for Windows. * jc/t2300-setup: t2300: "git --exec-path" is not usable in $PATH on Windows as-is 11 July 2016, 17:44:19 UTC
438d4e7 Merge branch 'cb/t7810-test-label-fix' into maint Test clean-up. * cb/t7810-test-label-fix: t7810: fix duplicated test title 11 July 2016, 17:44:18 UTC
3e69d1b Merge branch 'sb/t5614-modernize' into maint Test clean-up. * sb/t5614-modernize: t5614: don't use subshells 11 July 2016, 17:44:17 UTC
9f0aa03 Merge branch 'jn/preformatted-doc-url' into maint The top level documentation "git help git" still pointed at the documentation set hosted at now-defunct google-code repository. Update it to point to https://git.github.io/htmldocs/git.html instead. * jn/preformatted-doc-url: doc: git-htmldocs.googlecode.com is no more 11 July 2016, 17:44:16 UTC
8e3e28b Merge branch 'ao/p4-has-branch-prefix-fix' into maint A bug, which caused "git p4" while running under verbose mode to report paths that are omitted due to branch prefix incorrectly, has been fixed; the command said "Ignoring file outside of prefix" for paths that are _inside_. * ao/p4-has-branch-prefix-fix: git-p4: correct hasBranchPrefix verbose output 11 July 2016, 17:44:16 UTC
ce22ea2 Merge branch 'js/perf-on-apple' into maint t/perf needs /usr/bin/time with GNU extension; the invocation of it is updated to "gtime" on Darwin. * js/perf-on-apple: perf: accommodate for MacOSX 11 July 2016, 17:44:15 UTC
c4cdde4 Merge branch 'ak/t7800-wo-readlink' into maint One among four invocations of readlink(1) in our test suite has been rewritten so that the test can run on systems without the command (others are in valgrind test framework and t9802). * ak/t7800-wo-readlink: t7800: readlink may not be available 11 July 2016, 17:44:15 UTC
0c72d6d Merge branch 'jk/tzoffset-fix' into maint The internal code used to show local timezone offset is not prepared to handle timestamps beyond year 2100, and gave a bogus offset value to the caller. Use a more benign looking +0000 instead and let "git log" going in such a case, instead of aborting. * jk/tzoffset-fix: local_tzoffset: detect errors from tm_to_time_t t0006: test various date formats t0006: rename test-date's "show" to "relative" 11 July 2016, 17:44:14 UTC
76180a2 Merge branch 'js/mingw-parameter-less-c-functions' into maint Some platform-specific code had non-ANSI strict declarations of C functions that do not take any parameters, which has been corrected. * js/mingw-parameter-less-c-functions: mingw: let the build succeed with DEVELOPER=1 11 July 2016, 17:44:13 UTC
5220b75 Merge branch 'lc/shell-default-value-noexpand' into maint Fix unnecessarily waste in the idiomatic use of ': ${VAR=default}' to set the default value, without enclosing it in double quotes. * lc/shell-default-value-noexpand: sh-setup: enclose setting of ${VAR=default} in double-quotes 11 July 2016, 17:44:13 UTC
1a88ca9 Merge branch 'sb/clone-shallow-passthru' into maint Fix an unintended regression in v2.9 that breaks "clone --depth" that recurses down to submodules by forcing the submodules to also be cloned shallowly, which many server instances that host upstream of the submodules are not prepared for. * sb/clone-shallow-passthru: clone: do not let --depth imply --shallow-submodules 11 July 2016, 17:44:12 UTC
4212e48 Merge branch 'mg/signature-doc' into maint Formats of the various data (and how to validate them) where we use GPG signature have been documented. * mg/signature-doc: Documentation/technical: signed merge tag format Documentation/technical: signed commit format Documentation/technical: signed tag format Documentation/technical: describe signature formats 11 July 2016, 17:44:11 UTC
b853030 Merge branch 'jk/bisect-show-tree' into maint "git bisect" makes an internal call to "git diff-tree" when bisection finds the culprit, but this call did not initialize the data structure to pass to the diff-tree API correctly. * jk/bisect-show-tree: bisect: always call setup_revisions after init_revisions 11 July 2016, 17:44:11 UTC
1401236 Merge branch 'km/fetch-do-not-free-remote-name' into maint The ownership rule for the piece of memory that hold references to be fetched in "git fetch" was screwy, which has been cleaned up. * km/fetch-do-not-free-remote-name: builtin/fetch.c: don't free remote->name after fetch 11 July 2016, 17:44:10 UTC
5f30bb4 Merge branch 'nd/graph-width-padded' into maint "log --graph --format=" learned that "%>|(N)" specifies the width relative to the terminal's left edge, not relative to the area to draw text that is to the right of the ancestry-graph section. It also now accepts negative N that means the column limit is relative to the right border. * nd/graph-width-padded: pretty.c: support <direction>|(<negative number>) forms pretty: pass graph width to pretty formatting for use in '%>|(N)' 11 July 2016, 17:44:09 UTC
52debb6 Merge branch 'jk/add-i-diff-compact-heuristics' into maint "git add -i/-p" learned to honor diff.compactionHeuristic experimental knob, so that the user can work on the same hunk split as "git diff" output. * jk/add-i-diff-compact-heuristics: add--interactive: respect diff.compactionHeuristic 11 July 2016, 17:44:09 UTC
d751dd1 hoist out handle_nonblock function for xread and xwrite At least for me, this improves the readability of xread and xwrite; hopefully allowing missing "continue" statements to be spotted more easily. Signed-off-by: Eric Wong <e@80x24.org> Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> 11 July 2016, 16:51:45 UTC
715a51b am: counteract gender bias Since 47f0b6d5 (Fall back to three-way merge when applying a patch., 2005-10-06), i.e. for almost 11 years already, we used a male form to describe "the other tree". While it was unintended, this gave the erroneous impression as if the Git developers thought of users as male, and were unaware of the important role in software development played by female actors such as Ada Lovelace, Grace Hopper and Margaret Hamilton. In fact, the first professional software developers were all female. Let's change those unfortunate references to the gender neutral "their tree". Doing so also makes the fallback_merge_recursive(), which is an oddball, more in line with the other parts of the system where we contrast what we have vs what we obtain from others by saying "ours" vs "theirs". This inconsistency was also unintended. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> 08 July 2016, 21:39:48 UTC
674d38f More fixes for 2.9.1 Signed-off-by: Junio C Hamano <gitster@pobox.com> 06 July 2016, 20:08:02 UTC
f838198 Merge branch 'jc/deref-tag' into maint Code clean-up. * jc/deref-tag: blame, line-log: do not loop around deref_tag() 06 July 2016, 20:06:46 UTC
f792731 Merge branch 'pb/strbuf-read-file-doc' into maint Minor doc update. * pb/strbuf-read-file-doc: strbuf: describe the return value of strbuf_read_file 06 July 2016, 20:06:45 UTC
1c22105 Merge branch 'jk/fetch-prune-doc' into maint Minor doc update. * jk/fetch-prune-doc: fetch: document that pruning happens before fetching 06 July 2016, 20:06:44 UTC
9d3d0db Merge branch 'pc/occurred' into maint Typofix. * pc/occurred: config.c: fix misspelt "occurred" in an error message refs.h: fix misspelt "occurred" in a comment 06 July 2016, 20:06:43 UTC
25227f0 Merge branch 'mg/cherry-pick-multi-on-unborn' into maint "git cherry-pick A" worked on an unborn branch, but "git cherry-pick A..B" didn't. * mg/cherry-pick-multi-on-unborn: cherry-pick: allow to pick to unborn branches 06 July 2016, 20:06:42 UTC
af3a43c Merge branch 'em/newer-freebsd-shells-are-fine-with-returns' into maint Comments about misbehaving FreeBSD shells have been clarified with the version number (9.x and before are broken, newer ones are OK). * em/newer-freebsd-shells-are-fine-with-returns: rebase: update comment about FreeBSD /bin/sh 06 July 2016, 20:06:41 UTC
89aef71 Merge branch 'lv/status-say-working-tree-not-directory' into maint "git status" used to say "working directory" when it meant "working tree". * lv/status-say-working-tree-not-directory: Use "working tree" instead of "working directory" for git status 06 July 2016, 20:06:40 UTC
1729853 Merge branch 'nb/gnome-keyring-build' into maint Build improvements for gnome-keyring (in contrib/) * nb/gnome-keyring-build: gnome-keyring: Don't hard-code pkg-config executable 06 July 2016, 20:06:40 UTC
c8b080a Merge branch 'et/add-chmod-x' into maint "git update-index --add --chmod=+x file" may be usable as an escape hatch, but not a friendly thing to force for people who do need to use it regularly. "git add --chmod=+x file" can be used instead. * et/add-chmod-x: add: add --chmod=+x / --chmod=-x options 06 July 2016, 20:06:39 UTC
1f5d429 Merge branch 'jk/avoid-unbounded-alloca' into maint A codepath that used alloca(3) to place an unbounded amount of data on the stack has been updated to avoid doing so. * jk/avoid-unbounded-alloca: tree-diff: avoid alloca for large allocations 06 July 2016, 20:06:39 UTC
c014445 Merge branch 'rj/compat-regex-size-max-fix' into maint A compilation fix. * rj/compat-regex-size-max-fix: regex: fix a SIZE_MAX macro redefinition warning 06 July 2016, 20:06:38 UTC
8162401 Merge branch 'vs/prompt-avoid-unset-variable' into maint The git-prompt scriptlet (in contrib/) was not friendly with those who uses "set -u", which has been fixed. * vs/prompt-avoid-unset-variable: git-prompt.sh: Don't error on null ${ZSH,BASH}_VERSION, $short_sha 06 July 2016, 20:06:38 UTC
7949837 Merge branch 'sg/reflog-past-root' into maint "git reflog" stopped upon seeing an entry that denotes a branch creation event (aka "unborn"), which made it appear as if the reflog was truncated. * sg/reflog-past-root: reflog: continue walking the reflog past root commits 06 July 2016, 20:06:37 UTC
17eb7a7 Merge branch 'dn/gpg-doc' into maint The documentation tries to consistently spell "GPG"; when referring to the specific program name, "gpg" is used. * dn/gpg-doc: Documentation: GPG capitalization 06 July 2016, 20:06:36 UTC
7f223b1 Merge branch 'ap/git-svn-propset-doc' into maint "git svn propset" subcommand that was added in 2.3 days is documented now. * ap/git-svn-propset-doc: git-svn: document the 'git svn propset' command 06 July 2016, 20:06:35 UTC
073d0b0 Merge branch 'tr/doc-tt' into maint The documentation set has been updated so that literal commands, configuration variables and environment variables are consistently typeset in fixed-width font and bold in manpages. * tr/doc-tt: doc: change configuration variables format doc: more consistency in environment variables format doc: change environment variables format doc: clearer rule about formatting literals 06 July 2016, 20:06:34 UTC
c578a09 t7610: test for mktemp before test execution mktemp is not available on all platforms, so the test 'temporary filenames are used with mergetool.writeToTemp' fails there. This patch does not replace mktemp but just disables the test that otherwise would fail. mergetool checks itself before executing mktemp and reports an error. Signed-off-by: Armin Kunaschik <megabreit@googlemail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 06 July 2016, 19:18:09 UTC
a199a7c mailmap: use main email address for dturner Signed-off-by: David Turner <novalis@novalis.org> Signed-off-by: Junio C Hamano <gitster@pobox.com> 06 July 2016, 17:57:01 UTC
03c39b3 t/lib-git-daemon: use test_match_signal When git-daemon exits, we expect it to be with the SIGTERM we just sent it. If we see anything else, we'll complain. But our check against exit code "143" is not portable. For example: $ ksh93 t5570-git-daemon.sh [...] error: git daemon exited with status: 271 We can fix this by using test_match_signal. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> 06 July 2016, 14:44:25 UTC
2472448 test_must_fail: use test_match_signal In 8bf4bec (add "ok=sigpipe" to test_must_fail and use it to fix flaky tests, 2015-11-27), test_must_fail learned to recognize "141" as a sigpipe failure. However, testing for a signal is more complicated than that; we should use test_match_signal to implement more portable checking. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> 06 July 2016, 14:44:25 UTC
6f5f9d7 t0005: use test_match_signal as appropriate The first test already uses this more portable construct (that was where it was factored from initially), but the later tests do a raw comparison against 141 to look for SIGPIPE, which can fail on some shells and platforms. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> 06 July 2016, 14:44:25 UTC
9b67c99 tests: factor portable signal check out of t0005 In POSIX shells, a program which exits due to a signal generally has an exit code of 128 plus the signal number. However, ksh uses 256 plus the signal number. We've accounted for that in t0005, but not in other tests. Let's pull out the logic so we can use it elsewhere. It would be nice for debugging if this additionally printed errors to stderr, like our other test_* helpers. But we're going to need to use it in other places besides the innards of a test_expect block. So let's leave it as generic as possible. Note that we also leave the magic "3" for Windows out of the generic helper. This is an artifact of the way we use raise() to kill ourselves in test-sigchain.c, and will not necessarily apply to all programs. So it's better to keep it out of the helper, to reduce the chance of confusing it with a real call to exit(3). Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> 06 July 2016, 14:43:29 UTC
b8e47d1 grep: fix grepping for "intent to add" files This reverts commit 4d5520053 (grep: make it clear i-t-a entries are ignored, 2015-12-27) and adds an alternative fix to maintain the -L --cached behavior. 4d5520053 caused 'git grep' to no longer find matches in new files in the working tree where the corresponding index entry had the "intent to add" bit set, despite the fact that these files are tracked. The content in the index of a file for which the "intent to add" bit is set is considered indeterminate and not empty. For most grep queries we want these to behave the same, however for -L --cached (files without a match) we don't want to respond positively for "intent to add" files as their contents are indeterminate. This is in contrast to files with empty contents in the index (no lines implies no matches for any grep query expression) which should be reported in the output of a grep -L --cached invocation. Add tests to cover this case and a few related cases which previously lacked coverage. Helped-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Charles Bailey <cbailey32@bloomberg.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> 01 July 2016, 20:27:41 UTC
89e6410 t7810-grep.sh: fix a whitespace inconsistency Signed-off-by: Charles Bailey <charles@hashpling.org> Signed-off-by: Junio C Hamano <gitster@pobox.com> 01 July 2016, 20:27:38 UTC
878452b t7810-grep.sh: fix duplicated test name Signed-off-by: Charles Bailey <charles@hashpling.org> Signed-off-by: Junio C Hamano <gitster@pobox.com> 01 July 2016, 20:26:30 UTC
695f95b grep.c: reuse "icase" variable Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 01 July 2016, 19:44:57 UTC
b51a9c1 diffcore-pickaxe: support case insensitive match on non-ascii Similar to the "grep -F -i" case, we can't use kws on icase search outside ascii range, so we quote the string and pass it to regcomp as a basic regexp and let regex engine deal with case sensitivity. The new test is put in t7812 instead of t4209-log-pickaxe because lib-gettext.sh might cause problems elsewhere, probably. Noticed-by: Plamen Totev <plamen.totev@abv.bg> Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 01 July 2016, 19:44:57 UTC
3d5b23a diffcore-pickaxe: Add regcomp_or_die() There's another regcomp code block coming in this function that needs the same error handling. This function can help avoid duplicating error handling code. Helped-by: Jeff King <peff@peff.com> Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 01 July 2016, 19:44:57 UTC
18547aa grep/pcre: support utf-8 In the previous change in this function, we add locale support for single-byte encodings only. It looks like pcre only supports utf-* as multibyte encodings, the others are left in the cold (which is fine). We need to enable PCRE_UTF8 so pcre can find character boundary correctly. It's needed for case folding (when --ignore-case is used) or '*', '+' or similar syntax is used. The "has_non_ascii()" check is to be on the conservative side. If there's non-ascii in the pattern, the searched content could still be in utf-8, but we can treat it just like a byte stream and everything should work. If we force utf-8 based on locale only and pcre validates utf-8 and the file content is in non-utf8 encoding, things break. Noticed-by: Plamen Totev <plamen.totev@abv.bg> Helped-by: Plamen Totev <plamen.totev@abv.bg> Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 01 July 2016, 19:44:57 UTC
e8c1672 gettext: add is_utf8_locale() This function returns true if git is running under an UTF-8 locale. pcre in the next patch will need this. is_encoding_utf8() is used instead of strcmp() to catch both "utf-8" and "utf8" suffixes. When built with no gettext support, we peek in several env variables to detect UTF-8. pcre library might support utf-8 even if libc is built without locale support.. The peeking code is a copy from compat/regex/regcomp.c Helped-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 01 July 2016, 19:44:57 UTC
9d9babb grep/pcre: prepare locale-dependent tables for icase matching The default tables are usually built with C locale and only suitable for LANG=C or similar. This should make case insensitive search work correctly for all single-byte charsets. Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 01 July 2016, 19:44:57 UTC
e944d9d grep: rewrite an if/else condition to avoid duplicate expression "!icase || ascii_only" is repeated twice in this if/else chain as this series evolves. Rewrite it (and basically revert the first if condition back to before the "grep: break down an "if" stmt..." commit). Helped-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 01 July 2016, 19:44:57 UTC
793dc67 grep/icase: avoid kwsset when -F is specified Similar to the previous commit, we can't use kws on icase search outside ascii range. But we can't simply pass the pattern to regcomp/pcre like the previous commit because it may contain regex special characters, so we need to quote the regex first. To avoid misquote traps that could lead to undefined behavior, we always stick to basic regex engine in this case. We don't need fancy features for grepping a literal string anyway. basic_regex_quote_buf() assumes that if the pattern is in a multibyte encoding, ascii chars must be unambiguously encoded as single bytes. This is true at least for UTF-8. For others, let's wait until people yell up. Chances are nobody uses multibyte, non utf-8 charsets anymore. Noticed-by: Plamen Totev <plamen.totev@abv.bg> Helped-by: René Scharfe <l.s.r@web.de> Helped-by: Eric Sunshine <sunshine@sunshineco.com> Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 01 July 2016, 19:44:30 UTC
3324dd8 commit -S: avoid invalid pointer with empty message While it is not recommended, fsck.c says: Not having a body is not a crime [...] ... which means that we cannot assume that the commit buffer contains an empty line to separate header from body. A commit object with only a header without any body, not even without a blank line after the header, is valid. So let's tread carefully here. strstr("\n\n") may find nothing and return NULL. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> 29 June 2016, 22:07:02 UTC
054a5ae reset --hard: skip blank lines when reporting the commit subject When there are blank lines at the beginning of a commit message, the pretty printing machinery already skips them when showing a commit subject (or the complete commit message). We shall henceforth do the same when reporting the commit subject after the user called git reset --hard <commit> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> 29 June 2016, 22:03:36 UTC
88ef402 sequencer: use skip_blank_lines() to find the commit subject Just like we already taught the find_commit_subject() function (to make it consistent with the code in pretty.c), we now simply skip leading blank lines of the commit message. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> 29 June 2016, 22:03:06 UTC
84e213a commit -C: skip blank lines at the beginning of the message Consistent with the pretty-printing machinery, we skip leading blank lines (if any) of existing commit messages. While Git itself only produces commit objects with a single empty line between commit header and commit message, it is legal to have more than one blank line (i.e. lines containing only white space, or no characters) at the beginning of the commit message, and the pretty-printing code already handles that. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> 29 June 2016, 21:56:37 UTC
fa90ab4 t3404: fix a grammo (commands are ran -> commands are run) Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> 29 June 2016, 19:43:44 UTC
33ba9c6 rebase -i: restore autostash on abort When we abort an interactive rebase we do so by calling `die_abort`, which cleans up after us by removing the rebase state directory. If the user has requested to use the autostash feature, though, the state directory may also contain a reference to the autostash, which will now be deleted. Fix the issue by trying to re-apply the autostash in `die_abort`. This will also handle the case where the autostash does not apply cleanly anymore by recording it in a user-visible stash. Reported-by: Daniel Hahler <git@thequod.de> Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com> 29 June 2016, 16:51:00 UTC
5f35900 contrib/subtree: Add a test for subtree rebase that loses commits This test merges an external tree in as a subtree, makes some commits on top of it and splits it back out. In the process the added commits are lost or the rebase aborts with an internal error. The tests are marked to expect failure so that we don't forget to fix it. Signed-off-by: David A. Greene <greened@obbligato.org> Signed-off-by: Junio C Hamano <gitster@pobox.com> 28 June 2016, 16:21:28 UTC
3d0a833 color.h: remove obsolete comment about limitations on Windows Originally, ANSI color sequences were supported on Windows only by overriding the printf() and fprintf() functions, as mentioned in e7821d7 (Add a notice that only certain functions can print color escape codes, 2009-11-27). As of eac14f8 (Win32: Thread-safe windows console output, 2012-01-14), however, this is no longer the case, as the ANSI color sequence support code needed to be replaced with a thread-safe version, one side effect being that stdout and stderr handled no matter which function is used to write to it. So let's just remove the comment that is now obsolete. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> 28 June 2016, 16:18:50 UTC
661c3e9 doc: typeset HEAD and variants as literal This is an application of the newly added CodingGuidelines to HEAD and variants like FETCH_HEAD. It was obtained with: perl -pi -e "s/'([A-Z_]*HEAD)'/\`\$1\`/g" *.txt Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr> Signed-off-by: Junio C Hamano <gitster@pobox.com> 28 June 2016, 15:36:45 UTC
57103db CodingGuidelines: formatting HEAD in documentation The current practice is: git/Documentation$ git grep "'HEAD'" | wc -l 24 git/Documentation$ git grep "\`HEAD\`" | wc -l 66 Let's adopt the majority as a guideline. Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr> Signed-off-by: Junio C Hamano <gitster@pobox.com> 28 June 2016, 15:36:45 UTC
bb72e10 doc: typeset long options with argument as literal We previously reformatted '--option' to `--option`. This patch reformats '--option <arg>' to `--option <arg>`. Obtained with: perl -pi -e "s/'(--[a-z][a-z=<>-]* <[^>]*>)'/\`\$1\`/g" *.txt Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr> Signed-off-by: Junio C Hamano <gitster@pobox.com> 28 June 2016, 15:36:45 UTC
04b125d doc: typeset '--' as literal This was obtained with: perl -pi -e "s/'--'/\`--\`/g" *.txt Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr> Signed-off-by: Junio C Hamano <gitster@pobox.com> 28 June 2016, 15:36:45 UTC
bcf9626 doc: typeset long command-line options as literal Similarly to the previous commit, use backquotes instead of forward-quotes, for long options. This was obtained with: perl -pi -e "s/'(--[a-z][a-z=<>-]*)'/\`\$1\`/g" *.txt and manual tweak to remove false positive in ascii-art (o'--o'--o' to describe rewritten history). Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr> Signed-off-by: Junio C Hamano <gitster@pobox.com> 28 June 2016, 15:36:45 UTC
23f8239 doc: typeset short command-line options as literal It was common in our documentation to surround short option names with forward quotes, which renders as italic in HTML. Instead, use backquotes which renders as monospace. This is one more step toward conformance to Documentation/CodingGuidelines. This was obtained with: perl -pi -e "s/'(-[a-z])'/\`\$1\`/g" *.txt Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr> Signed-off-by: Junio C Hamano <gitster@pobox.com> 28 June 2016, 15:20:52 UTC
46e22b7 Documentation/git-mv.txt: fix whitespace indentation Replace spaces with tabs to avoid a warning when further patches change these lines. Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr> Signed-off-by: Junio C Hamano <gitster@pobox.com> 28 June 2016, 15:20:52 UTC
2ff7dff Start preparing for 2.9.1 Signed-off-by: Junio C Hamano <gitster@pobox.com> 27 June 2016, 16:59:51 UTC
fda65fa Merge branch 'rs/xdiff-hunk-with-func-line' into maint "git show -W" (extend hunks to cover the entire function, delimited by lines that match the "funcname" pattern) used to show the entire file when a change added an entire function at the end of the file, which has been fixed. * rs/xdiff-hunk-with-func-line: xdiff: fix merging of appended hunk with -W grep: -W: don't extend context to trailing empty lines t7810: add test for grep -W and trailing empty context lines xdiff: don't trim common tail with -W xdiff: -W: don't include common trailing empty lines in context xdiff: ignore empty lines before added functions with -W xdiff: handle appended chunks better with -W xdiff: factor out match_func_rec() t4051: rewrite, add more tests 27 June 2016, 16:56:24 UTC
df5a925 Merge branch 'jk/rev-list-count-with-bitmap' into maint "git rev-list --count" whose walk-length is limited with "-n" option did not work well with the counting optimized to look at the bitmap index. * jk/rev-list-count-with-bitmap: rev-list: disable bitmaps when "-n" is used with listing objects rev-list: "adjust" results of "--count --use-bitmap-index -n" 27 June 2016, 16:56:24 UTC
fbb4138 Merge branch 'et/pretty-format-c-auto' into maint The commands in `git log` family take %C(auto) in a custom format string. This unconditionally turned the color on, ignoring --no-color or with --color=auto when the output is not connected to a tty; this was corrected to make the format truly behave as "auto". * et/pretty-format-c-auto: format_commit_message: honor `color=auto` for `%C(auto)` 27 June 2016, 16:56:23 UTC
0a20325 Merge branch 'ew/daemon-socket-keepalive' into maint When "git daemon" is run without --[init-]timeout specified, a connection from a client that silently goes offline can hang around for a long time, wasting resources. The socket-level KEEPALIVE has been enabled to allow the OS to notice such failed connections. * ew/daemon-socket-keepalive: daemon: enable SO_KEEPALIVE for all sockets 27 June 2016, 16:56:22 UTC
ef1cf01 xwrite: poll on non-blocking FDs write(2) can hit the same EAGAIN/EWOULDBLOCK errors as read(2), so busy-looping on a non-blocking FD is a waste of resources. Currently, I do not know of a way for this happen: * the NonBlocking directive in systemd does not apply to stdin, stdout, or stderr. * xinetd provides no way to set the non-blocking flag at all But theoretically, it's possible a careless C10K HTTP server could use pipe2(..., O_NONBLOCK) to setup a pipe for git-http-backend with only the intent to use non-blocking reads; but accidentally leave non-blocking set on the write end passed as stdout to git-upload-pack. Followup-to: 1079c4be0b720 ("xread: poll on non blocking fds") Signed-off-by: Eric Wong <e@80x24.org> Reviewed-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> 27 June 2016, 15:34:15 UTC
c22f620 xread: retry after poll on EAGAIN/EWOULDBLOCK We should continue to loop after EAGAIN/EWOULDBLOCK as the intent of xread is to try until there is available data, EOF, or an unrecoverable error. Fixes: 1079c4be0b720 ("xread: poll on non blocking fds") Signed-off-by: Eric Wong <e@80x24.org> Signed-off-by: Junio C Hamano <gitster@pobox.com> 27 June 2016, 15:33:21 UTC
5f4e3bf gc: fix off-by-one error with gc.autoPackLimit This matches the documentation and allows gc.autoPackLimit=1 to maintain a single pack without attempting a repack on every "git gc --auto" invocation. Signed-off-by: Eric Wong <e@80x24.org> Signed-off-by: Junio C Hamano <gitster@pobox.com> 27 June 2016, 15:28:47 UTC
5c1ebcc grep/icase: avoid kwsset on literal non-ascii strings When we detect the pattern is just a literal string, we avoid heavy regex engine and use fast substring search implemented in kwsset.c. But kws uses git-ctype which is locale-independent so it does not know how to fold case properly outside ascii range. Let regcomp or pcre take care of this case instead. Slower, but accurate. Noticed-by: Plamen Totev <plamen.totev@abv.bg> Helped-by: René Scharfe <l.s.r@web.de> Helped-by: Eric Sunshine <sunshine@sunshineco.com> Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 27 June 2016, 14:31:35 UTC
back to top