f7b01d3 | Junio C Hamano | 08 August 2016, 21:21:46 UTC | Merge branch 'rs/submodule-config-code-cleanup' into maint Code cleanup. * rs/submodule-config-code-cleanup: submodule-config: fix test binary crashing when no arguments given submodule-config: combine early return code into one goto submodule-config: passing name reference for .gitmodule blobs submodule-config: use explicit empty string instead of strbuf in config_from() | 08 August 2016, 21:21:46 UTC |
6a024a2 | Junio C Hamano | 08 August 2016, 21:21:46 UTC | Merge branch 'sb/submodule-deinit-all' into maint A comment update for a topic that was merged to Git v2.8. * sb/submodule-deinit-all: submodule deinit: remove outdated comment | 08 August 2016, 21:21:46 UTC |
5131967 | Junio C Hamano | 08 August 2016, 21:21:45 UTC | Merge branch 'rs/worktree-use-strbuf-absolute-path' into maint Code simplification. * rs/worktree-use-strbuf-absolute-path: worktree: use strbuf_add_absolute_path() directly | 08 August 2016, 21:21:45 UTC |
2f8c654 | Junio C Hamano | 08 August 2016, 21:21:44 UTC | Merge branch 'jc/doc-diff-filter-exclude' into maint Belated doc update for a feature added in v1.8.5. * jc/doc-diff-filter-exclude: diff: document diff-filter exclusion | 08 August 2016, 21:21:44 UTC |
970994d | Junio C Hamano | 08 August 2016, 21:21:43 UTC | Merge branch 'nd/test-helpers' into maint Build clean-up. * nd/test-helpers: t/test-lib.sh: fix running tests with --valgrind Makefile: use VCSSVN_LIB to refer to svn library Makefile: drop extra dependencies for test helpers | 08 August 2016, 21:21:43 UTC |
48aa37e | Junio C Hamano | 08 August 2016, 21:21:42 UTC | Merge branch 'rs/use-strbuf-addbuf' into maint Code cleanup. * rs/use-strbuf-addbuf: strbuf: avoid calling strbuf_grow() twice in strbuf_addbuf() use strbuf_addbuf() for appending a strbuf to another | 08 August 2016, 21:21:42 UTC |
ee7fd70 | Junio C Hamano | 08 August 2016, 21:21:41 UTC | Merge branch 'lf/recv-sideband-cleanup' into maint Code simplification. * lf/recv-sideband-cleanup: sideband.c: small optimization of strbuf usage sideband.c: refactor recv_sideband() | 08 August 2016, 21:21:41 UTC |
e69771c | Junio C Hamano | 08 August 2016, 21:21:40 UTC | Merge branch 'ah/unpack-trees-advice-messages' into maint Grammofix. * ah/unpack-trees-advice-messages: unpack-trees: fix English grammar in do-this-before-that messages | 08 August 2016, 21:21:40 UTC |
26256c0 | Junio C Hamano | 08 August 2016, 21:21:39 UTC | Merge branch 'lf/sideband-returns-void' into maint A small internal API cleanup. * lf/sideband-returns-void: upload-pack.c: make send_client_data() return void sideband.c: make send_sideband() return void | 08 August 2016, 21:21:40 UTC |
1e274ef | Junio C Hamano | 08 August 2016, 21:21:39 UTC | Merge branch 'jk/send-pack-stdio' into maint Code clean-up. * jk/send-pack-stdio: write_or_die: remove the unused write_or_whine() function send-pack: use buffered I/O to talk to pack-objects | 08 August 2016, 21:21:39 UTC |
a220e2b | Junio C Hamano | 08 August 2016, 21:21:38 UTC | Merge branch 'pb/commit-editmsg-path' into maint Code clean-up. * pb/commit-editmsg-path: builtin/commit.c: memoize git-path for COMMIT_EDITMSG | 08 August 2016, 21:21:38 UTC |
8d64216 | Junio C Hamano | 08 August 2016, 21:21:37 UTC | Merge branch 'ew/find-perl-on-freebsd-in-local' into maint Recent FreeBSD stopped making perl available at /usr/bin/perl; switch the default the built-in path to /usr/local/bin/perl on not too ancient FreeBSD releases. * ew/find-perl-on-freebsd-in-local: config.mak.uname: correct perl path on FreeBSD | 08 August 2016, 21:21:38 UTC |
172b811 | Junio C Hamano | 08 August 2016, 21:21:37 UTC | Merge branch 'ew/daemon-socket-keepalive' into maint Recent update to "git daemon" tries to enable the socket-level KEEPALIVE, but when it is spawned via inetd, the standard input file descriptor may not necessarily be connected to a socket. Suppress an ENOTSOCK error from setsockopt(). * ew/daemon-socket-keepalive: Windows: add missing definition of ENOTSOCK daemon: ignore ENOTSOCK from setsockopt | 08 August 2016, 21:21:37 UTC |
aa9136a | Junio C Hamano | 08 August 2016, 21:21:36 UTC | Merge branch 'nd/pack-ofs-4gb-limit' into maint "git pack-objects" and "git index-pack" mostly operate with off_t when talking about the offset of objects in a packfile, but there were a handful of places that used "unsigned long" to hold that value, leading to an unintended truncation. * nd/pack-ofs-4gb-limit: fsck: use streaming interface for large blobs in pack pack-objects: do not truncate result in-pack object size on 32-bit systems index-pack: correct "offset" type in unpack_entry_data() index-pack: report correct bad object offsets even if they are large index-pack: correct "len" type in unpack_data() sha1_file.c: use type off_t* for object_info->disk_sizep pack-objects: pass length to check_pack_crc() without truncation | 08 August 2016, 21:21:36 UTC |
743fba8 | Junio C Hamano | 08 August 2016, 21:21:35 UTC | Merge branch 'rs/notes-merge-no-toctou' into maint "git notes merge" had a code to see if a path exists (and fails if it does) and then open the path for writing (when it doesn't). Replace it with open with O_EXCL. * rs/notes-merge-no-toctou: notes-merge: use O_EXCL to avoid overwriting existing files | 08 August 2016, 21:21:35 UTC |
a52fb9b | Junio C Hamano | 08 August 2016, 21:21:35 UTC | Merge branch 'js/ignore-space-at-eol' into maint An age old bug that caused "git diff --ignore-space-at-eol" misbehave has been fixed. * js/ignore-space-at-eol: diff: fix a double off-by-one with --ignore-space-at-eol diff: demonstrate a bug with --patience and --ignore-space-at-eol | 08 August 2016, 21:21:35 UTC |
71076e1 | Junio C Hamano | 08 August 2016, 21:21:34 UTC | Merge branch 'jk/push-scrub-url' into maint "git fetch http://user:pass@host/repo..." scrubbed the userinfo part, but "git push" didn't. * jk/push-scrub-url: t5541: fix url scrubbing test when GPG is not set push: anonymize URL in status output | 08 August 2016, 21:21:34 UTC |
880b3fe | Junio C Hamano | 08 August 2016, 21:21:32 UTC | Merge branch 'nd/cache-tree-ita' into maint "git add -N dir/file && git write-tree" produced an incorrect tree when there are other paths in the same directory that sorts after "file". * nd/cache-tree-ita: cache-tree: do not generate empty trees as a result of all i-t-a subentries cache-tree.c: fix i-t-a entry skipping directory updates sometimes test-lib.sh: introduce and use $EMPTY_BLOB test-lib.sh: introduce and use $EMPTY_TREE | 08 August 2016, 21:21:33 UTC |
327b3f8 | Junio C Hamano | 08 August 2016, 21:21:32 UTC | 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 |
55cbe18 | Heiko Voigt | 28 July 2016, 12:50:05 UTC | submodule-config: fix test binary crashing when no arguments given Since arg[0] will be NULL without any argument here and starts_with() does not like NULL-pointers. Signed-off-by: Heiko Voigt <hvoigt@hvoigt.net> Reviewed-by: Stefan Beller <sbeller@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 28 July 2016, 20:05:36 UTC |
0918e25 | Heiko Voigt | 28 July 2016, 12:49:47 UTC | submodule-config: combine early return code into one goto So we have simpler return handling code and all the cleanup code in almost one place. Signed-off-by: Heiko Voigt <hvoigt@hvoigt.net> Reviewed-by: Stefan Beller <sbeller@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 28 July 2016, 20:05:31 UTC |
514dea9 | Heiko Voigt | 28 July 2016, 12:49:11 UTC | submodule-config: passing name reference for .gitmodule blobs Commit 959b5455 (submodule: implement a config API for lookup of .gitmodules values, 2015-08-18) implemented the initial version of the submodule config cache. During development of that initial version we extracted the function gitmodule_sha1_from_commit(). During that process we missed that the strbuf rev was still used in config_from() and now is left empty. Lets fix this by also returning this string. This means that now when reading .gitmodules from revisions, the error messages also contain a reference to the blob they are from. Signed-off-by: Heiko Voigt <hvoigt@hvoigt.net> Reviewed-by: Stefan Beller <sbeller@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 28 July 2016, 20:05:14 UTC |
08df31e | Junio C Hamano | 28 July 2016, 18:28:32 UTC | Some fixes for 2.9.3 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 28 July 2016, 18:28:32 UTC |
1ecc6b2 | Junio C Hamano | 28 July 2016, 18:26:03 UTC | 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 | Junio C Hamano | 28 July 2016, 18:26:03 UTC | 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 | Junio C Hamano | 28 July 2016, 18:26:02 UTC | 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 | Junio C Hamano | 28 July 2016, 18:26:01 UTC | 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 | Junio C Hamano | 28 July 2016, 18:26:00 UTC | 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 | Junio C Hamano | 28 July 2016, 18:25:59 UTC | 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 | Junio C Hamano | 28 July 2016, 18:25:58 UTC | 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 | Junio C Hamano | 28 July 2016, 18:25:57 UTC | 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 | Junio C Hamano | 28 July 2016, 18:25:56 UTC | 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 | Junio C Hamano | 28 July 2016, 18:25:55 UTC | 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 | Junio C Hamano | 28 July 2016, 18:25:54 UTC | 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 | Junio C Hamano | 28 July 2016, 18:25:53 UTC | 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 | Junio C Hamano | 28 July 2016, 18:25:52 UTC | 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 | Junio C Hamano | 28 July 2016, 18:25:51 UTC | 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 | Junio C Hamano | 28 July 2016, 18:25:50 UTC | 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 | Junio C Hamano | 28 July 2016, 18:25:49 UTC | 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 |
406621f | Stefan Beller | 26 July 2016, 00:35:38 UTC | submodule deinit: remove outdated comment Signed-off-by: Stefan Beller <sbeller@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 26 July 2016, 20:52:14 UTC |
259f22a | Nguyễn Thái Ngọc Duy | 25 July 2016, 16:21:25 UTC | config.mak.uname: correct perl path on FreeBSD It looks the the symlink /usr/bin/perl (to /usr/local/bin/perl) has been removed at least on FreeBSD 10.3. See [1] for more information. [1] https://svnweb.freebsd.org/ports/head/UPDATING?r1=386270&r2=386269&pathrev=386270&diff_format=c Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Helped-by: Eric Wong <e@80x24.org> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 26 July 2016, 16:43:06 UTC |
fab6027 | Johannes Sixt | 21 July 2016, 20:59:06 UTC | Windows: add missing definition of ENOTSOCK The previous commit introduced the first use of ENOTSOCK. This macro is not available on Windows. Define it as WSAENOTSOCK because that is the corresponding error value reported by the Windows versions of socket functions. Signed-off-by: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 22 July 2016, 19:28:24 UTC |
31471ba | René Scharfe | 21 July 2016, 16:46:44 UTC | strbuf: avoid calling strbuf_grow() twice in strbuf_addbuf() Implement strbuf_addbuf() as a normal function in order to avoid calling strbuf_grow() twice, with the second callinside strbud_add() being a no-op. This is slightly faster and also reduces the text size a bit. Signed-off-by: Rene Scharfe <l.s.r@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 22 July 2016, 16:22:26 UTC |
68f3c07 | Jeff King | 20 July 2016, 11:32:26 UTC | t5541: fix url scrubbing test when GPG is not set When the GPG prereq is not set, we do not run test 34. That test changes the directory of the test script as a side effect (something we usually frown on, but which matches the style of the rest of this script). When test 35 (the url-scrubbing test) runs, it expects to be in the directory from test 34. If it's not, the test fails; we are in a different sub-repo, our test-commit is built on a different history, and the push becomes a non-fast-forward. We can fix this by unconditionally moving to the directory we expect (again, against our usual style but matching how the rest of the script operates). As an additional protection, let's also switch from "make a new commit and push to master" to just "push to a new branch". We don't care about the branch name; we just want _some_ ref update to trigger the status output. Pushing to a new branch is less likely to run into problems with force-updates, changing the checked-out branch, etc. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 20 July 2016, 22:08:40 UTC |
508a285 | René Scharfe | 19 July 2016, 19:05:43 UTC | submodule-config: use explicit empty string instead of strbuf in config_from() Use a string constant instead of an empty strbuf to shorten the code and make it easier to read. Signed-off-by: Rene Scharfe <l.s.r@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 19 July 2016, 19:16:57 UTC |
8109984 | René Scharfe | 19 July 2016, 18:36:29 UTC | use strbuf_addbuf() for appending a strbuf to another Use strbuf_addbuf() where possible; it's shorter and more efficient. Signed-off-by: Rene Scharfe <l.s.r@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 19 July 2016, 18:48:35 UTC |
c66b470 | Mike Hommey | 15 July 2016, 23:23:46 UTC | 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 | Mike Hommey | 15 July 2016, 23:23:45 UTC | 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 |
6d6a782 | Nguyễn Thái Ngọc Duy | 16 July 2016, 05:06:27 UTC | cache-tree: do not generate empty trees as a result of all i-t-a subentries If a subdirectory contains nothing but i-t-a entries, we generate an empty tree object and add it to its parent tree. Which is wrong. Such a subdirectory should not be added. Note that this has a cascading effect. If subdir 'a/b/c' contains nothing but i-t-a entries, we ignore it. But then if 'a/b' contains only (the non-existing) 'a/b/c', then we should ignore 'a/b' while building 'a' too. And it goes all the way up to top directory. Noticed-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> | 18 July 2016, 20:45:33 UTC |
c041d54 | Nguyễn Thái Ngọc Duy | 16 July 2016, 05:06:26 UTC | cache-tree.c: fix i-t-a entry skipping directory updates sometimes Commit 3cf773e (cache-tree: fix writing cache-tree when CE_REMOVE is present - 2012-12-16) skips i-t-a entries when building trees objects from the index. Unfortunately it may skip too much. The code in question checks if an entry is an i-t-a one, then no tree entry will be written. But it does not take into account that directories can also be written with the same code. Suppose we have this in the index. a-file subdir/file1 subdir/file2 subdir/file3 the-last-file We write an entry for a-file as normal and move on to subdir/file1, where we realize the entry name for this level is simply just "subdir", write down an entry for "subdir" then jump three items ahead to the-last-file. That is what happens normally when the first file in subdir is not an i-t-a entry. If subdir/file1 is an i-t-a, because of the broken condition in this code, we still think "subdir" is an i-t-a file and not writing "subdir" down and jump to the-last-file. The result tree now only has two items: a-file and the-last-file. subdir should be there too (even though it only records two sub-entries, file2 and file3). If the i-t-a entry is subdir/file2 or subdir/file3, this is not a problem because we jump over them anyway. Which may explain why the bug is hidden for nearly four years. Fix it by making sure we only skip i-t-a entries when the entry in question is actual an index entry, not a directory. Reported-by: Yuri Kanivetsky <yuri.kanivetsky@gmail.com> Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 18 July 2016, 20:45:33 UTC |
378932d | Nguyễn Thái Ngọc Duy | 16 July 2016, 05:06:25 UTC | test-lib.sh: introduce and use $EMPTY_BLOB Similar to $EMPTY_TREE this makes it easier to recognize this special SHA-1 and change hash later. Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 18 July 2016, 20:45:32 UTC |
f9e7d9f | Nguyễn Thái Ngọc Duy | 16 July 2016, 05:06:24 UTC | test-lib.sh: introduce and use $EMPTY_TREE This is a special SHA1. Let's keep it at one place, easier to replace later when the hash change comes, easier to recognize. Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 18 July 2016, 20:45:32 UTC |
49c58d8 | Eric Wong | 18 July 2016, 04:59:11 UTC | daemon: ignore ENOTSOCK from setsockopt In inetd mode, we are not guaranteed stdin or stdout is a socket; callers could filter the data through a pipe or be testing with regular files. This prevents t5802 from polluting syslog. Signed-off-by: Eric Wong <e@80x24.org> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 18 July 2016, 18:09:52 UTC |
e634160 | Junio C Hamano | 15 July 2016, 17:48:16 UTC | Git 2.9.2 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 15 July 2016, 17:48:16 UTC |
33eacd3 | Junio C Hamano | 15 July 2016, 16:43:42 UTC | 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 | Jeff King | 11 July 2016, 23:54:18 UTC | 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 |
16726cf | Junio C Hamano | 14 July 2016, 19:17:47 UTC | diff: document diff-filter exclusion In v1.8.5 days, 7f2ea5f0 (diff: allow lowercase letter to specify what change class to exclude, 2013-07-17) taught the "--diff-filter" mechanism to take lowercase letters as exclusion, but we forgot to document it. Signed-off-by: Junio C Hamano <gitster@pobox.com> | 14 July 2016, 19:17:47 UTC |
882d49c | Jeff King | 13 July 2016, 23:36:53 UTC | push: anonymize URL in status output Commit 47abd85 (fetch: Strip usernames from url's before storing them, 2009-04-17) taught fetch to anonymize URLs. The primary purpose there was to avoid sticking passwords in merge-commit messages, but as a side effect, we also avoid printing them to stderr. The push side does not have the merge-commit problem, but it probably should avoid printing them to stderr. We can reuse the same anonymizing function. Note that for this to come up, the credentials would have to appear either on the command line or in a git config file, neither of which is particularly secure. So people _should_ be switching to using credential helpers instead, which makes this problem go away. But that's no excuse not to improve the situation for people who for whatever reason end up using credentials embedded in the URL. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 14 July 2016, 16:23:20 UTC |
ec9d224 | Nguyễn Thái Ngọc Duy | 13 July 2016, 15:44:04 UTC | fsck: use streaming interface for large blobs in pack For blobs, we want to make sure the on-disk data is not corrupted (i.e. can be inflated and produce the expected SHA-1). Blob content is opaque, there's nothing else inside to check for. For really large blobs, we may want to avoid unpacking the entire blob in memory, just to check whether it produces the same SHA-1. On 32-bit systems, we may not have enough virtual address space for such memory allocation. And even on 64-bit where it's not a problem, allocating a lot more memory could result in kicking other parts of systems to swap file, generating lots of I/O and slowing everything down. For this particular operation, not unpacking the blob and letting check_sha1_signature, which supports streaming interface, do the job is sufficient. check_sha1_signature() is not shown in the diff, unfortunately. But if will be called when "data_valid && !data" is false. We will call the callback function "fn" with NULL as "data". The only callback of this function is fsck_obj_buffer(), which does not touch "data" at all if it's a blob. Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 13 July 2016, 16:15:29 UTC |
af92a64 | Nguyễn Thái Ngọc Duy | 13 July 2016, 15:44:03 UTC | pack-objects: do not truncate result in-pack object size on 32-bit systems A typical diff will not show what's going on and you need to see full functions. The core code is like this, at the end of of write_one() e->idx.offset = *offset; size = write_object(f, e, *offset); if (!size) { e->idx.offset = recursing; return WRITE_ONE_BREAK; } written_list[nr_written++] = &e->idx; /* make sure off_t is sufficiently large not to wrap */ if (signed_add_overflows(*offset, size)) die("pack too large for current definition of off_t"); *offset += size; Here we can see that the in-pack object size is returned by write_object (or indirectly by write_reuse_object). And it's used to calculate object offsets, which end up in the pack index file, generated at the end. If "size" overflows (on 32-bit sytems, unsigned long is 32-bit while off_t can be 64-bit), we got wrong offsets and produce incorrect .idx file, which may make it look like the .pack file is corrupted. Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 13 July 2016, 16:15:17 UTC |
da49a7d | Nguyễn Thái Ngọc Duy | 13 July 2016, 15:44:02 UTC | index-pack: correct "offset" type in unpack_entry_data() unpack_entry_data() receives an off_t value from unpack_raw_entry(), which could be larger than unsigned long on 32-bit systems with large file support. Correct the type so truncation does not happen. This only affects bad object reporting though. Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 13 July 2016, 16:15:08 UTC |
fd3e674 | Nguyễn Thái Ngọc Duy | 13 July 2016, 15:44:01 UTC | index-pack: report correct bad object offsets even if they are large Use the right type for offsets in this case, off_t, which makes a difference on 32-bit systems with large file support, and change formatting code accordingly. Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 13 July 2016, 16:14:47 UTC |
7171a0b | Nguyễn Thái Ngọc Duy | 13 July 2016, 15:44:00 UTC | index-pack: correct "len" type in unpack_data() On 32-bit systems with large file support, one entry could be larger than 4GB and overflow "len". Correct it so we can unpack a full entry. Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 13 July 2016, 16:14:38 UTC |
166df26 | Nguyễn Thái Ngọc Duy | 13 July 2016, 15:43:59 UTC | sha1_file.c: use type off_t* for object_info->disk_sizep This field, filled by sha1_object_info() contains the on-disk size of an object, which could go over 4GB limit of unsigned long on 32-bit systems. Use off_t for it instead and update all callers. Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 13 July 2016, 16:14:20 UTC |
fd2e7da | René Scharfe | 09 July 2016, 15:43:59 UTC | worktree: use strbuf_add_absolute_path() directly absolute_path() is a wrapper for strbuf_add_absolute_path(). Call the latter directly for adding absolute paths to a strbuf. That's shorter and avoids an extra string copy. Signed-off-by: Rene Scharfe <l.s.r@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 12 July 2016, 22:11:01 UTC |
211c61c | Nguyễn Thái Ngọc Duy | 05 July 2016, 17:05:54 UTC | pack-objects: pass length to check_pack_crc() without truncation On 32 bit systems with large file support, unsigned long is 32-bit while the two offsets in the subtraction expression (pack-objects has the exact same expression as in sha1_file.c but not shown in diff) are in 64-bit. If an in-pack object is larger than 2^32 len/datalen is truncated and we get a misleading "error: bad packed object CRC for ..." as a result. Use off_t for len and datalen. check_pack_crc() already accepts this argument as off_t and can deal with 4+ GB. Noticed-by: Christoph Michelbach <michelbach94@gmail.com> Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 12 July 2016, 17:14:29 UTC |
503e224 | Johannes Schindelin | 11 July 2016, 11:45:08 UTC | t/test-lib.sh: fix running tests with --valgrind We forgot to adjust this code path after moving the test helpers to t/helper/. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Acked-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 11 July 2016, 19:26:39 UTC |
044fb19 | Johannes Schindelin | 09 July 2016, 07:23:55 UTC | diff: fix a double off-by-one with --ignore-space-at-eol When comparing two lines, ignoring any whitespace at the end, we first try to match as many bytes as possible and break out of the loop only upon mismatch, to let the remainder be handled by the code shared with the other whitespace-ignoring code paths. When comparing the bytes, however, we incremented the counters always, even if the bytes did not match. And because we fall through to the space-at-eol handling at that point, it is as if that mismatch never happened. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 11 July 2016, 18:55:53 UTC |
a5229cc | Johannes Schindelin | 09 July 2016, 07:23:50 UTC | diff: demonstrate a bug with --patience and --ignore-space-at-eol When a single character is added to a line, the combination of these two options results in an empty diff. This bug was noticed and reported by Naja Melan. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 11 July 2016, 18:55:08 UTC |
5c9159d | Junio C Hamano | 11 July 2016, 17:45:50 UTC | Git 2.9.1 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 11 July 2016, 17:45:50 UTC |
3a30c14 | Junio C Hamano | 11 July 2016, 17:44:19 UTC | 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 | Junio C Hamano | 11 July 2016, 17:44:18 UTC | 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 | Junio C Hamano | 11 July 2016, 17:44:17 UTC | 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 | Junio C Hamano | 11 July 2016, 17:44:16 UTC | 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 | Junio C Hamano | 11 July 2016, 17:44:16 UTC | 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 | Junio C Hamano | 11 July 2016, 17:44:15 UTC | 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 | Junio C Hamano | 11 July 2016, 17:44:15 UTC | 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 | Junio C Hamano | 11 July 2016, 17:44:14 UTC | 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 | Junio C Hamano | 11 July 2016, 17:44:13 UTC | 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 | Junio C Hamano | 11 July 2016, 17:44:13 UTC | 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 | Junio C Hamano | 11 July 2016, 17:44:12 UTC | 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 | Junio C Hamano | 11 July 2016, 17:44:11 UTC | 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 | Junio C Hamano | 11 July 2016, 17:44:11 UTC | 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 | Junio C Hamano | 11 July 2016, 17:44:10 UTC | 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 | Junio C Hamano | 11 July 2016, 17:44:09 UTC | 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 | Junio C Hamano | 11 July 2016, 17:44:09 UTC | 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 | Eric Wong | 10 July 2016, 08:20:46 UTC | 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 | Johannes Schindelin | 08 July 2016, 07:17:34 UTC | 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 |
deb9c15 | René Scharfe | 07 July 2016, 20:08:30 UTC | notes-merge: use O_EXCL to avoid overwriting existing files Use the open(2) flag O_EXCL to ensure the file doesn't already exist instead of (racily) calling stat(2) through file_exists(). While at it switch to xopen() to reduce code duplication and get more consistent error messages. Signed-off-by: Rene Scharfe <l.s.r@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 07 July 2016, 21:16:26 UTC |
c61b2af | Nicolas Pitre | 05 July 2016, 20:35:50 UTC | sideband.c: small optimization of strbuf usage Signed-off-by: Nicolas Pitre <nico@fluxnic.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 06 July 2016, 21:09:32 UTC |
674d38f | Junio C Hamano | 06 July 2016, 20:08:02 UTC | More fixes for 2.9.1 Signed-off-by: Junio C Hamano <gitster@pobox.com> | 06 July 2016, 20:08:02 UTC |
f838198 | Junio C Hamano | 06 July 2016, 20:06:46 UTC | 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 | Junio C Hamano | 06 July 2016, 20:06:45 UTC | 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 | Junio C Hamano | 06 July 2016, 20:06:44 UTC | 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 | Junio C Hamano | 06 July 2016, 20:06:43 UTC | 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 | Junio C Hamano | 06 July 2016, 20:06:42 UTC | 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 | Junio C Hamano | 06 July 2016, 20:06:41 UTC | 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 | Junio C Hamano | 06 July 2016, 20:06:40 UTC | 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 | Junio C Hamano | 06 July 2016, 20:06:40 UTC | 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 | Junio C Hamano | 06 July 2016, 20:06:39 UTC | 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 |