summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2018-02-27Merge branch 'jk/sq-dequote-on-bogus-input'Libravatar Junio C Hamano2-3/+32
Code to unquote single-quoted string (used in the parser for configuration files, etc.) did not diagnose bogus input correctly and produced bogus results instead. * jk/sq-dequote-on-bogus-input: sq_dequote: fix extra consumption of source string
2018-02-27Merge branch 'bp/fsmonitor'Libravatar Junio C Hamano1-2/+2
Doc update for a recently added feature. * bp/fsmonitor: fsmonitor: update documentation to remove reference to invalid config settings
2018-02-27Merge branch 'bc/doc-interpret-trailers-grammofix'Libravatar Junio C Hamano1-1/+1
Docfix. * bc/doc-interpret-trailers-grammofix: docs/interpret-trailers: fix agreement error
2018-02-27Merge branch 'as/ll-i18n'Libravatar Junio C Hamano5-54/+54
Some messages in low level start-up codepath have been i18n-ized. * as/ll-i18n: Mark messages for translations
2018-02-27Merge branch 'sg/doc-test-must-fail-args'Libravatar Junio C Hamano2-2/+22
Devdoc update. * sg/doc-test-must-fail-args: t: document 'test_must_fail ok=<signal-name>'
2018-02-27Merge branch 'sb/describe-blob'Libravatar Junio C Hamano2-1/+9
"git describe $garbage" stopped giving any errors when the garbage happens to be a string with 40 hexadecimal letters. * sb/describe-blob: describe: confirm that blobs actually exist
2018-02-27Merge branch 'rs/check-ignore-multi'Libravatar Junio C Hamano2-1/+22
"git check-ignore" with multiple paths got confused when one is a file and the other is a directory, which has been fixed. * rs/check-ignore-multi: check-ignore: fix mix of directories and other file types
2018-02-27Merge branch 'rj/sparse-updates'Libravatar Junio C Hamano2-1/+2
Devtool update. * rj/sparse-updates: Makefile: suppress a sparse warning for pack-revindex.c config.mak.uname: remove SPARSE_FLAGS setting for cygwin
2018-02-27Merge branch 'jk/t0002-simplify'Libravatar Junio C Hamano1-43/+10
Code cleanup. * jk/t0002-simplify: t0002: simplify error checking
2018-02-27Merge branch 'js/packet-read-line-check-null'Libravatar Junio C Hamano4-3/+7
Some low level protocol codepath could crash when they get an unexpected flush packet, which is now fixed. * js/packet-read-line-check-null: always check for NULL return from packet_read_line() correct error messages for NULL packet_read_line()
2018-02-27Merge branch 'js/fix-merge-arg-quoting-in-rebase-p'Libravatar Junio C Hamano2-2/+26
"git rebase -p" mangled log messages of a merge commit, which is now fixed. * js/fix-merge-arg-quoting-in-rebase-p: rebase -p: fix incorrect commit message when calling `git merge`.
2018-02-27Merge branch 'jk/gettext-poison'Libravatar Junio C Hamano2-8/+4
Test updates. * jk/gettext-poison: git-sh-i18n: check GETTEXT_POISON before USE_GETTEXT_SCHEME t0205: drop redundant test
2018-02-27Merge branch 'jk/doc-do-not-write-extern'Libravatar Junio C Hamano1-0/+5
Devdoc update. * jk/doc-do-not-write-extern: CodingGuidelines: mention "static" and "extern"
2018-02-27Merge branch 'bp/name-hash-dirname-fix'Libravatar Junio C Hamano2-4/+18
"git add" files in the same directory, but spelling the directory path in different cases on case insensitive filesystem, corrupted the name hash data structure and led to unexpected results. This has been corrected. * bp/name-hash-dirname-fix: name-hash: properly fold directory names in adjust_dirname_case()
2018-02-27Merge branch 'jc/blame-missing-path'Libravatar Junio C Hamano1-6/+14
"git blame HEAD COPYING" in a bare repository failed to run, while "git blame HEAD -- COPYING" run just fine. This has been corrected. * jc/blame-missing-path: blame: tighten command line parser
2018-02-27Merge branch 'ab/untracked-cache-invalidation-docs'Libravatar Junio C Hamano1-0/+26
Doc update to warn against remaining bugs in untracked cache. * ab/untracked-cache-invalidation-docs: update-index doc: note the caveat with "could not open..." update-index doc: note a fixed bug in the untracked cache
2018-02-27Merge branch 'nd/fix-untracked-cache-invalidation'Libravatar Junio C Hamano7-18/+157
Some bugs around "untracked cache" feature have been fixed. * nd/fix-untracked-cache-invalidation: dir.c: ignore paths containing .git when invalidating untracked cache dir.c: stop ignoring opendir() error in open_cached_dir() dir.c: fix missing dir invalidation in untracked code dir.c: avoid stat() in valid_cached_dir() status: add a failing test showing a core.untrackedCache bug
2018-02-21Fourth batch for 2.17Libravatar Junio C Hamano1-0/+12
2018-02-21Merge branch 'sg/test-i18ngrep'Libravatar Junio C Hamano8-43/+72
Test fixes. * sg/test-i18ngrep: t: make 'test_i18ngrep' more informative on failure t: validate 'test_i18ngrep's parameters t: move 'test_i18ncmp' and 'test_i18ngrep' to 'test-lib-functions.sh' t5536: let 'test_i18ngrep' read the file without redirection t5510: consolidate 'grep' and 'test_i18ngrep' patterns t4001: don't run 'git status' upstream of a pipe t6022: don't run 'git merge' upstream of a pipe t5812: add 'test_i18ngrep's missing filename parameter t5541: add 'test_i18ngrep's missing filename parameter
2018-02-21Merge branch 'gs/rebase-allow-empty-message'Libravatar Junio C Hamano7-11/+53
"git rebase" learned to take "--allow-empty-message" option. * gs/rebase-allow-empty-message: rebase: add --allow-empty-message option
2018-02-21Merge branch 'lw/daemon-log-destination'Libravatar Junio C Hamano2-10/+64
The log from "git daemon" can be redirected with a new option; one relevant use case is to send the log to standard error (instead of syslog) when running it from inetd. * lw/daemon-log-destination: daemon: add --log-destination=(stderr|syslog|none)
2018-02-21Merge branch 'nd/format-patch-stat-width'Libravatar Junio C Hamano2-16/+37
"git format-patch" learned to give 72-cols to diffstat, which is consistent with other line length limits the subcommand uses for its output meant for e-mails. * nd/format-patch-stat-width: format-patch: reduce patch diffstat width to 72 format-patch: keep cover-letter diffstat wrapped in 72 columns
2018-02-15Sync with 2.16.2Libravatar Junio C Hamano1-0/+30
* tag 'v2.16.2': Git 2.16.2
2018-02-15Git 2.16.2Libravatar Junio C Hamano3-2/+32
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2018-02-15Merge branch 'ab/doc-cat-file-e-still-shows-errors' into maintLibravatar Junio C Hamano1-3/+4
Doc update. * ab/doc-cat-file-e-still-shows-errors: cat-file doc: document that -e will return some output
2018-02-15Merge branch 'as/read-tree-prefix-doc-fix' into maintLibravatar Junio C Hamano1-3/+2
Doc update. * as/read-tree-prefix-doc-fix: doc/read-tree: remove obsolete remark
2018-02-15Merge branch 'nd/add-i-ignore-submodules' into maintLibravatar Junio C Hamano2-1/+49
"git add -p" was taught to ignore local changes to submodules as they do not interfere with the partial addition of regular changes anyway. * nd/add-i-ignore-submodules: add--interactive: ignore submodule changes except HEAD
2018-02-15Merge branch 'tg/stash-with-pathspec-fix' into maintLibravatar Junio C Hamano2-3/+34
"git stash -- <pathspec>" incorrectly blew away untracked files in the directory that matched the pathspec, which has been corrected. * tg/stash-with-pathspec-fix: stash: don't delete untracked files that match pathspec
2018-02-15Merge branch 'jk/abort-clone-with-existing-dest' into maintLibravatar Junio C Hamano2-33/+98
"git clone $there $here" is allowed even when here directory exists as long as it is an empty directory, but the command incorrectly removed it upon a failure of the operation. * jk/abort-clone-with-existing-dest: clone: do not clean up directories we didn't create clone: factor out dir_exists() helper t5600: modernize style t5600: fix outdated comment about unborn HEAD
2018-02-15Merge branch 'jc/merge-symlink-ours-theirs' into maintLibravatar Junio C Hamano2-4/+45
"git merge -Xours/-Xtheirs" learned to use our/their version when resolving a conflicting updates to a symbolic link. * jc/merge-symlink-ours-theirs: merge: teach -Xours/-Xtheirs to symbolic link merge
2018-02-15Merge branch 'rs/lose-leak-pending' into maintLibravatar Junio C Hamano10-86/+46
API clean-up around revision traversal. * rs/lose-leak-pending: commit: remove unused function clear_commit_marks_for_object_array() revision: remove the unused flag leak_pending checkout: avoid using the rev_info flag leak_pending bundle: avoid using the rev_info flag leak_pending bisect: avoid using the rev_info flag leak_pending object: add clear_commit_marks_all() ref-filter: use clear_commit_marks_many() in do_merge_filter() commit: use clear_commit_marks_many() in remove_redundant() commit: avoid allocation in clear_commit_marks_many()
2018-02-15Merge branch 'jm/svn-pushmergeinfo-fix' into maintLibravatar Junio C Hamano1-0/+1
"git svn dcommit" did not take into account the fact that a svn+ssh:// URL with a username@ (typically used for pushing) refers to the same SVN repository without the username@ and failed when svn.pushmergeinfo option is set. * jm/svn-pushmergeinfo-fix: git-svn: fix svn.pushmergeinfo handling of svn+ssh usernames.
2018-02-15Merge branch 'dk/describe-all-output-fix' into maintLibravatar Junio C Hamano2-3/+10
An old regression in "git describe --all $annotated_tag^0" has been fixed. * dk/describe-all-output-fix: describe: prepend "tags/" when describing tags with embedded name
2018-02-15Merge branch 'ab/perf-grep-threads' into maintLibravatar Junio C Hamano2-21/+86
More perf tests for threaded grep * ab/perf-grep-threads: perf: amend the grep tests to test grep.threads
2018-02-15Third batch for 2.17Libravatar Junio C Hamano1-0/+26
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2018-02-15Merge branch 'bc/hash-algo'Libravatar Junio C Hamano15-344/+348
More abstraction of hash function from the codepath. * bc/hash-algo: hash: update obsolete reference to SHA1_HEADER bulk-checkin: abstract SHA-1 usage csum-file: abstract uses of SHA-1 csum-file: rename sha1file to hashfile read-cache: abstract away uses of SHA-1 pack-write: switch various SHA-1 values to abstract forms pack-check: convert various uses of SHA-1 to abstract forms fast-import: switch various uses of SHA-1 to the_hash_algo sha1_file: switch uses of SHA-1 to the_hash_algo builtin/unpack-objects: switch uses of SHA-1 to the_hash_algo builtin/index-pack: improve hash function abstraction hash: create union for hash context allocation hash: move SHA-1 macros to hash.h
2018-02-15Merge branch 'nd/ignore-glob-doc-update'Libravatar Junio C Hamano1-6/+5
Doc update. * nd/ignore-glob-doc-update: gitignore.txt: elaborate shell glob syntax
2018-02-15Merge branch 'tg/reset-hard-show-head-with-pretty'Libravatar Junio C Hamano1-18/+10
The way "git reset --hard" reports the commit the updated HEAD points at is made consistent with the way how the commit title is generated by the other parts of the system. This matters when the title is spread across physically multiple lines. * tg/reset-hard-show-head-with-pretty: reset --hard: make use of the pretty machinery
2018-02-15Merge branch 'rs/cocci-strbuf-addf-to-addstr'Libravatar Junio C Hamano1-16/+1
* rs/cocci-strbuf-addf-to-addstr: cocci: simplify check for trivial format strings
2018-02-15Merge branch 'nd/trace-index-ops'Libravatar Junio C Hamano5-0/+18
* nd/trace-index-ops: trace: measure where the time is spent in the index-heavy operations
2018-02-15Merge branch 'cc/perf-aggregate'Libravatar Junio C Hamano1-11/+37
"make perf" enhancement. * cc/perf-aggregate: perf/aggregate: sort JSON fields in output perf/aggregate: add --reponame option perf/aggregate: add --subsection option
2018-02-15Merge branch 'ab/wildmatch-tests'Libravatar Junio C Hamano3-245/+416
More tests for wildmatch functions. * ab/wildmatch-tests: wildmatch test: mark test as EXPENSIVE_ON_WINDOWS test-lib: add an EXPENSIVE_ON_WINDOWS prerequisite wildmatch test: create & test files on disk in addition to in-memory wildmatch test: perform all tests under all wildmatch() modes wildmatch test: use test_must_fail, not ! for test-wildmatch wildmatch test: remove dead fnmatch() test code wildmatch test: use a paranoia pattern from nul_match() wildmatch test: don't try to vertically align our output wildmatch test: use more standard shell style wildmatch test: indent with tabs, not spaces
2018-02-15Merge branch 'po/object-id'Libravatar Junio C Hamano39-281/+302
Conversion from uchar[20] to struct object_id continues. * po/object-id: sha1_file: rename hash_sha1_file_literally sha1_file: convert write_loose_object to object_id sha1_file: convert force_object_loose to object_id sha1_file: convert write_sha1_file to object_id notes: convert write_notes_tree to object_id notes: convert combine_notes_* to object_id commit: convert commit_tree* to object_id match-trees: convert splice_tree to object_id cache: clear whole hash buffer with oidclr sha1_file: convert hash_sha1_file to object_id dir: convert struct sha1_stat to use object_id sha1_file: convert pretend_sha1_file to object_id
2018-02-15Merge branch 'sb/pull-rebase-submodule'Libravatar Junio C Hamano1-0/+2
"git pull --rebase" did not pass verbosity setting down when recursing into a submodule. * sb/pull-rebase-submodule: builtin/pull: respect verbosity settings in submodules
2018-02-15Merge branch 'kg/packed-ref-cache-fix'Libravatar Junio C Hamano1-51/+55
Avoid mmapping small files while using packed refs (especially ones with zero size, which would cause later munmap() to fail). * kg/packed-ref-cache-fix: packed_ref_cache: don't use mmap() for small files load_contents(): don't try to mmap an empty file packed_ref_iterator_begin(): make optimization more general find_reference_location(): make function safe for empty snapshots create_snapshot(): use `xmemdupz()` rather than a strbuf struct snapshot: store `start` rather than `header_len`
2018-02-15Merge branch 'jt/fsck-code-cleanup'Libravatar Junio C Hamano1-1/+7
Plug recently introduced leaks in fsck. * jt/fsck-code-cleanup: fsck: fix leak when traversing trees
2018-02-15Merge branch 'en/merge-recursive-fixes'Libravatar Junio C Hamano3-4/+29
* en/merge-recursive-fixes: merge-recursive: add explanation for src_entry and dst_entry merge-recursive: fix logic ordering issue Tighten and correct a few testcases for merging and cherry-picking
2018-02-15Merge branch 'jc/worktree-add-short-help'Libravatar Junio C Hamano1-1/+1
Error message fix. * jc/worktree-add-short-help: worktree: say that "add" takes an arbitrary commit in short-help
2018-02-15Merge branch 'ab/sha1dc-build'Libravatar Junio C Hamano2-3/+20
Push the submodule version of collision-detecting SHA-1 hash implementation a bit harder on builders. * ab/sha1dc-build: sha1dc_git.h: re-arrange an ifdef chain for a subsequent change Makefile: under "make dist", include the sha1collisiondetection submodule Makefile: don't error out under DC_SHA1_EXTERNAL if DC_SHA1_SUBMODULE=auto
2018-02-14sq_dequote: fix extra consumption of source stringLibravatar Jeff King2-3/+32
This fixes a (probably harmless) parsing problem in sq_dequote_step(), in which we parse some bogus input incorrectly rather than complaining that it's bogus. Our shell-dequoting function is very strict: it can unquote everything generated by sq_quote(), but not arbitrary strings. In particular, it only allows characters outside of the single-quoted string if they are immediately backslashed and then the single-quoted string is resumed. So: 'foo'\''bar' is OK. But these are not: 'foo'\'bar 'foo'\' 'foo'\'\''bar' even though they are all valid shell. The parser has a funny corner case here. When we see a backslashed character, we keep incrementing the "src" pointer as we parse it. For a single sq_dequote() call, that's OK; our next step is to bail with an error, and we don't care where "src" points. But if we're parsing multiple strings with sq_dequote_to_argv(), then our next step is to see if the string is followed by whitespace. Because we erroneously incremented the "src" pointer, we don't barf on the bogus backslash that we skipped. Instead, we may find whitespace that immediately follows it, and continue as if all is well (skipping the backslashed character completely!). In practice, this shouldn't be a big deal. The input is bogus, and our sq_quote() would never generate this bogus input. In all but one callers, we are parsing input created by an earlier call to sq_quote(). That final case is "git shell", which parses shell-quoting generated by the client. And in that case we use the singular sq_quote(), which has always behaved correctly. One might also wonder if you could provoke a read past the end of the string. But the answer is no; we still parse character by character, and would never advance past a NUL. This patch implements the minimal fix, along with documenting the restriction (which confused at least me while reading the code). We should possibly consider being more liberal in accepting valid shell-quoted words. I suspect the code may actually be simpler, and it would be more friendly to anybody generating or editing input by hand. But I wanted to fix just the immediate bug in this patch. We don't have a direct way to unit-test the sq_dequote() functions, but we can do this by feeding input to GIT_CONFIG_PARAMETERS (which is not normally a user-facing interface, but serves here as it expects to see sq_quote() input from "git -c"). I've included both a bogus example, and a related "good" one to confirm that we still parse it correctly. Noticed-by: Michael Haggerty <mhagger@alum.mit.edu> Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>