summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2019-10-18Merge branch 'rs/http-push-simplify'Libravatar Junio C Hamano1-4/+4
Code cleanup. * rs/http-push-simplify: http-push: simplify deleting a list item
2019-10-18Merge branch 'jj/stash-reset-only-toplevel'Libravatar Junio C Hamano3-3/+43
"git stash save" lost local changes to submodules, which has been corrected. * jj/stash-reset-only-toplevel: stash: avoid recursive hard reset on submodules
2019-10-18Merge branch 'bw/format-patch-o-create-leading-dirs'Libravatar Junio C Hamano4-2/+42
"git format-patch -o <outdir>" did an equivalent of "mkdir <outdir>" not "mkdir -p <outdir>", which is being corrected. * bw/format-patch-o-create-leading-dirs: format-patch: create leading components of output directory
2019-10-18Merge branch 'bb/compat-util-comment-fix'Libravatar Junio C Hamano1-1/+1
Code cleanup. * bb/compat-util-comment-fix: git-compat-util: fix documentation syntax
2019-10-18Merge branch 'bb/utf8-wcwidth-cleanup'Libravatar Junio C Hamano1-4/+2
Code cleanup. * bb/utf8-wcwidth-cleanup: utf8: use ARRAY_SIZE() in git_wcwidth()
2019-10-18Merge branch 'dl/allow-running-cocci-verbosely'Libravatar Junio C Hamano1-1/+2
Dev support update. * dl/allow-running-cocci-verbosely: Makefile: respect $(V) in %.cocci.patch target
2019-10-18Merge branch 'dl/compat-cleanup'Libravatar Junio C Hamano1-1/+1
Code formatting micronit fix. * dl/compat-cleanup: pthread.h: manually align parameter lists
2019-10-18Merge branch 'ta/t1308-typofix'Libravatar Junio C Hamano1-4/+4
Test fix. * ta/t1308-typofix: t1308-config-set: fix a test that has a typo
2019-10-18Merge branch 'js/doc-stash-save'Libravatar Junio C Hamano1-2/+3
Doc clarification. * js/doc-stash-save: doc(stash): clarify the description of `save`
2019-10-15Ninth batchLibravatar Junio C Hamano1-0/+33
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2019-10-15Merge branch 'jk/coc'Libravatar Junio C Hamano1-0/+93
Code-of-conduct document. * jk/coc: CODE_OF_CONDUCT: mention individual project-leader emails add a Code of Conduct document
2019-10-15Merge branch 'js/trace2-fetch-push'Libravatar Junio C Hamano4-10/+41
Dev support. * js/trace2-fetch-push: transport: push codepath can take arbitrary repository push: add trace2 instrumentation fetch: add trace2 instrumentation
2019-10-15Merge branch 'jt/push-avoid-lazy-fetch'Libravatar Junio C Hamano1-1/+2
Performance hack. * jt/push-avoid-lazy-fetch: send-pack: never fetch when checking exclusions
2019-10-15Merge branch 'dl/format-patch-doc-test-cleanup'Libravatar Junio C Hamano1-2/+3
test cleanup. * dl/format-patch-doc-test-cleanup: t4014: treat rev-list output as the expected value
2019-10-15Merge branch 'js/xdiffi-comment-updates'Libravatar Junio C Hamano1-44/+55
Comment update. * js/xdiffi-comment-updates: xdiffi: fix typos and touch up comments
2019-10-15Merge branch 'dl/t0000-skip-test-test'Libravatar Junio C Hamano1-0/+38
test update. * dl/t0000-skip-test-test: t0000: cover GIT_SKIP_TESTS blindspots
2019-10-15Merge branch 'tg/range-diff-output-update'Libravatar Junio C Hamano3-22/+92
"git range-diff" failed to handle mode-only change, which has been corrected. * tg/range-diff-output-update: range-diff: don't segfault with mode-only changes
2019-10-15Merge branch 'gs/sq-quote-buf-pretty'Libravatar Junio C Hamano2-0/+13
Pretty-printed command line formatter (used in e.g. reporting the command being run by the tracing API) had a bug that lost an argument that is an empty string, which has been corrected. * gs/sq-quote-buf-pretty: sq_quote_buf_pretty: don't drop empty arguments
2019-10-15Merge branch 'ew/hashmap'Libravatar Junio C Hamano31-381/+667
Code clean-up of the hashmap API, both users and implementation. * ew/hashmap: hashmap_entry: remove first member requirement from docs hashmap: remove type arg from hashmap_{get,put,remove}_entry OFFSETOF_VAR macro to simplify hashmap iterators hashmap: introduce hashmap_free_entries hashmap: hashmap_{put,remove} return hashmap_entry * hashmap: use *_entry APIs for iteration hashmap_cmp_fn takes hashmap_entry params hashmap_get{,_from_hash} return "struct hashmap_entry *" hashmap: use *_entry APIs to wrap container_of hashmap_get_next returns "struct hashmap_entry *" introduce container_of macro hashmap_put takes "struct hashmap_entry *" hashmap_remove takes "const struct hashmap_entry *" hashmap_get takes "const struct hashmap_entry *" hashmap_add takes "struct hashmap_entry *" hashmap_get_next takes "const struct hashmap_entry *" hashmap_entry_init takes "struct hashmap_entry *" packfile: use hashmap_entry in delta_base_cache_entry coccicheck: detect hashmap_entry.hash assignment diff: use hashmap_entry_init on moved_entry.ent
2019-10-15Merge branch 'js/trace2-cap-max-output-files'Libravatar Junio C Hamano11-28/+184
The trace2 output, when sending them to files in a designated directory, can populate the directory with too many files; a mechanism is introduced to set the maximum number of files and discard further logs when the maximum is reached. * js/trace2-cap-max-output-files: trace2: write discard message to sentinel files trace2: discard new traces if target directory has too many files docs: clarify trace2 version invariants docs: mention trace2 target-dir mode in git-config
2019-10-15Merge branch 'am/t0028-utf16-tests'Libravatar Junio C Hamano1-1/+40
Test fixes. * am/t0028-utf16-tests: t0028: add more tests t0028: fix test for UTF-16-LE-BOM
2019-10-15Merge branch 'dl/octopus-graph-bug'Libravatar Junio C Hamano2-27/+308
"git log --graph" for an octopus merge is sometimes colored incorrectly, which is demonstrated and documented but not yet fixed. * dl/octopus-graph-bug: t4214: demonstrate octopus graph coloring failure t4214: explicitly list tags in log t4214: generate expect in their own test cases t4214: use test_merge test-lib: let test_merge() perform octopus merges
2019-10-15Merge branch 'en/fast-imexport-nested-tags'Libravatar Junio C Hamano6-38/+266
Updates to fast-import/export. * en/fast-imexport-nested-tags: fast-export: handle nested tags t9350: add tests for tags of things other than a commit fast-export: allow user to request tags be marked with --mark-tags fast-export: add support for --import-marks-if-exists fast-import: add support for new 'alias' command fast-import: allow tags to be identified by mark labels fast-import: fix handling of deleted tags fast-export: fix exporting a tag and nothing else
2019-10-15Merge branch 'js/azure-pipelines-msvc'Libravatar Junio C Hamano14-33/+430
CI updates. * js/azure-pipelines-msvc: ci: also build and test with MS Visual Studio on Azure Pipelines ci: really use shallow clones on Azure Pipelines tests: let --immediate and --write-junit-xml play well together test-tool run-command: learn to run (parts of) the testsuite vcxproj: include more generated files vcxproj: only copy `git-remote-http.exe` once it was built msvc: work around a bug in GetEnvironmentVariable() msvc: handle DEVELOPER=1 msvc: ignore some libraries when linking compat/win32/path-utils.h: add #include guards winansi: use FLEX_ARRAY to avoid compiler warning msvc: avoid using minus operator on unsigned types push: do not pretend to return `int` from `die_push_simple()`
2019-10-15Merge branch 'gs/commit-graph-trace-with-cmd'Libravatar Junio C Hamano1-0/+6
Dev support. * gs/commit-graph-trace-with-cmd: commit-graph: emit trace2 cmd_mode for each sub-command
2019-10-15Merge branch 'js/fetch-jobs'Libravatar Junio C Hamano4-21/+137
"git fetch --jobs=<n>" allowed <n> parallel jobs when fetching submodules, but this did not apply to "git fetch --multiple" that fetches from multiple remote repositories. It now does. * js/fetch-jobs: fetch: let --jobs=<n> parallelize --multiple, too
2019-10-15Merge branch 'en/merge-recursive-cleanup'Libravatar Junio C Hamano12-334/+736
The merge-recursive machiery is one of the most complex parts of the system that accumulated cruft over time. This large series cleans up the implementation quite a bit. * en/merge-recursive-cleanup: (26 commits) merge-recursive: fix the fix to the diff3 common ancestor label merge-recursive: fix the diff3 common ancestor label for virtual commits merge-recursive: alphabetize include list merge-recursive: add sanity checks for relevant merge_options merge-recursive: rename MERGE_RECURSIVE_* to MERGE_VARIANT_* merge-recursive: split internal fields into a separate struct merge-recursive: avoid losing output and leaking memory holding that output merge-recursive: comment and reorder the merge_options fields merge-recursive: consolidate unnecessary fields in merge_options merge-recursive: move some definitions around to clean up the header merge-recursive: rename merge_options argument to opt in header merge-recursive: rename 'mrtree' to 'result_tree', for clarity merge-recursive: use common name for ancestors/common/base_list merge-recursive: fix some overly long lines cache-tree: share code between functions writing an index as a tree merge-recursive: don't force external callers to do our logging merge-recursive: remove useless parameter in merge_trees() merge-recursive: exit early if index != head Ensure index matches head before invoking merge machinery, round N merge-recursive: remove another implicit dependency on the_repository ...
2019-10-15http-push: simplify deleting a list itemLibravatar René Scharfe1-4/+4
The first step for deleting an item from a linked list is to locate the item preceding it. Be more careful in release_request() and handle an empty list. This only has consequences for invalid delete requests (removing the same item twice, or deleting an item that was never added to the list), but simplifies the loop condition as well as the check after the loop. Once we found the item's predecessor in the list, update its next pointer to skip over the item, which removes it from the list. In other words: Make the item's successor the successor of its predecessor. (At this point entry->next == request and prev->next == lock, respectively.) This is a bit simpler and saves a pointer dereference. Signed-off-by: René Scharfe <l.s.r@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2019-10-15stash: avoid recursive hard reset on submodulesLibravatar Jakob Jarmar3-3/+43
git stash push does not recursively stash submodules, but if submodule.recurse is set, it may recursively reset --hard them. Having only the destructive action recurse is likely to be surprising behaviour, and unlikely to be desirable, so the easiest fix should be to ensure that the call to git reset --hard never recurses into submodules. This matches the behavior of check_changes_tracked_files, which ignores submodules. Signed-off-by: Jakob Jarmar <jakob@jarmar.se> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2019-10-12format-patch: create leading components of output directoryLibravatar Bert Wesarg4-2/+42
'git format-patch -o <outdir>' did an equivalent of 'mkdir <outdir>' not 'mkdir -p <outdir>', which is being corrected. Avoid the usage of 'adjust_shared_perm' on the leading directories which may have security implications. Achieved by temporarily disabling of 'config.sharedRepository' like 'git init' does. Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2019-10-12git-compat-util: fix documentation syntaxLibravatar Beat Bolli1-1/+1
The parameter marker for x was garbled in its introduction in 89c855ed3c ("git-compat-util.h: implement a different ARRAY_SIZE macro for for safely deriving the size of array", 2015-04-30). Signed-off-by: Beat Bolli <dev+git@drbeat.li> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2019-10-12utf8: use ARRAY_SIZE() in git_wcwidth()Libravatar Beat Bolli1-4/+2
This macro has been available globally since b4f2a6ac92 ("Use #define ARRAY_SIZE(x) (sizeof(x)/sizeof(x[0]))", 2006-03-09), so let's use it. Signed-off-by: Beat Bolli <dev+git@drbeat.li> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2019-10-12Makefile: respect $(V) in %.cocci.patch targetLibravatar Denton Liu1-1/+2
When the %.cocci.patch target was defined in 63f0a758a0 (add coccicheck make target, 2016-09-15), it included a mechanism to suppress the noisy output, similar to the $(QUIET_<x>) family of variables. In the case where one wants to inspect the output hidden by $(QUIET_<x>), one could define $(V) for verbose output. In the %.cocci.patch target, this was not implemented. Move the output suppression into the $(QUIET_SPATCH) variable which is used like the other $(QUIET_<x>) variables. While we're at it, change the number of spaces printed from 5 to 4, like the other variables there. Signed-off-by: Denton Liu <liu.denton@gmail.com> Acked-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2019-10-11pthread.h: manually align parameter listsLibravatar Denton Liu1-1/+1
In previous patches, extern was mechanically removed from function declarations without care to formatting, causing parameter lists to be misaligned. Manually format changed sections such that the parameter lists are realigned. Viewing this patch with 'git diff -w' should produce no output. Signed-off-by: Denton Liu <liu.denton@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2019-10-11t1308-config-set: fix a test that has a typoLibravatar Tanay Abhra1-4/+4
Change test 'find value_list for a key from a configset' to redirect the result to 'expect' instead of 'except' which was a typo. With this change, the test case actually fails because it uses `configset_get_value`. Clearly, this was intended to be `configset_get_value_multi` since the test expects a list of values instead of a single value, so let's fix that, too. Signed-off-by: Tanay Abhra <tanayabh@gmail.com> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2019-10-11doc(stash): clarify the description of `save`Libravatar Johannes Schindelin1-2/+3
The original phrasing of this paragraph made at least one person stumble over the word "from" (thinking that it was a typo and "from" was intended), and other readers chimed in, agreeing that it was confusing: https://public-inbox.org/git/0102016b8d597569-c1f6cfdc-cb45-4428-8737-cb1bc30655d8-000000@eu-west-1.amazonses.com/#t Let's rewrite that paragraph for clarity. Inspired-by-a-patch-by: Catalin Criste <cris_linu_w@yahoo.com> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2019-10-11Eighth batchLibravatar Junio C Hamano1-0/+30
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2019-10-11Merge branch 'dl/rev-list-doc-cleanup'Libravatar Junio C Hamano1-53/+1
Doc update. * dl/rev-list-doc-cleanup: git-rev-list.txt: prune options in synopsis
2019-10-11Merge branch 'kt/add-i-progress'Libravatar Junio C Hamano2-2/+2
"git add -i" has been taught to show the total number of hunks and the hunks that has been processed so far when showing prompts. * kt/add-i-progress: add -i: show progress counter in the prompt
2019-10-11Merge branch 'js/stash-apply-in-secondary-worktree'Libravatar Junio C Hamano2-0/+31
"git stash apply" in a subdirectory of a secondary worktree failed to access the worktree correctly, which has been corrected. * js/stash-apply-in-secondary-worktree: stash apply: report status correctly even in a worktree's subdirectory
2019-10-11Merge branch 'rs/dedup-includes'Libravatar Junio C Hamano10-12/+0
Code cleanup. * rs/dedup-includes: treewide: remove duplicate #include directives
2019-10-11Merge branch 'js/range-diff-noprefix'Libravatar Junio C Hamano2-1/+6
"git range-diff" segfaulted when diff.noprefix configuration was used, as it blindly expected the patch it internally generates to have the standard a/ and b/ prefixes. The command now forces the internal patch to be built without any prefix, not to be affected by any end-user configuration. * js/range-diff-noprefix: range-diff: internally force `diff.noprefix=true`
2019-10-11Merge branch 'cb/pcre1-cleanup'Libravatar Junio C Hamano3-24/+12
PCRE fixes. * cb/pcre1-cleanup: grep: refactor and simplify PCRE1 support grep: make sure NO_LIBPCRE1_JIT disable JIT in PCRE1
2019-10-11Merge branch 'ab/pcre-jit-fixes'Libravatar Junio C Hamano9-222/+286
A few simplification and bugfixes to PCRE interface. * ab/pcre-jit-fixes: grep: under --debug, show whether PCRE JIT is enabled grep: do not enter PCRE2_UTF mode on fixed matching grep: stess test PCRE v2 on invalid UTF-8 data grep: create a "is_fixed" member in "grep_pat" grep: consistently use "p->fixed" in compile_regexp() grep: stop using a custom JIT stack with PCRE v1 grep: stop "using" a custom JIT stack with PCRE v2 grep: remove overly paranoid BUG(...) code grep: use PCRE v2 for optimized fixed-string search grep: remove the kwset optimization grep: drop support for \0 in --fixed-strings <pattern> grep: make the behavior for NUL-byte in patterns sane grep tests: move binary pattern tests into their own file grep tests: move "grep binary" alongside the rest grep: inline the return value of a function call used only once t4210: skip more command-line encoding tests on MinGW grep: don't use PCRE2?_UTF8 with "log --encoding=<non-utf8>" log tests: test regex backends in "--encode=<enc>" tests
2019-10-11Merge branch 'pw/rebase-i-show-HEAD-to-reword'Libravatar Junio C Hamano5-103/+75
"git rebase -i" showed a wrong HEAD while "reword" open the editor. * pw/rebase-i-show-HEAD-to-reword: sequencer: simplify root commit creation rebase -i: check for updated todo after squash and reword rebase -i: always update HEAD before rewording
2019-10-11Merge branch 'tk/git-svn-trim-author-name'Libravatar Junio C Hamano1-0/+4
The author names taken from SVN repositories may have extra leading or trailing whitespaces, which are now munged away. * tk/git-svn-trim-author-name: git-svn: trim leading and trailing whitespaces in author name
2019-10-11Merge branch 'bc/object-id-part17'Libravatar Junio C Hamano31-125/+121
Preparation for SHA-256 upgrade continues. * bc/object-id-part17: (26 commits) midx: switch to using the_hash_algo builtin/show-index: replace sha1_to_hex rerere: replace sha1_to_hex builtin/receive-pack: replace sha1_to_hex builtin/index-pack: replace sha1_to_hex packfile: replace sha1_to_hex wt-status: convert struct wt_status to object_id cache: remove null_sha1 builtin/worktree: switch null_sha1 to null_oid builtin/repack: write object IDs of the proper length pack-write: use hash_to_hex when writing checksums sequencer: convert to use the_hash_algo bisect: switch to using the_hash_algo sha1-lookup: switch hard-coded constants to the_hash_algo config: use the_hash_algo in abbrev comparison combine-diff: replace GIT_SHA1_HEXSZ with the_hash_algo bundle: switch to use the_hash_algo connected: switch GIT_SHA1_HEXSZ to the_hash_algo show-index: switch hard-coded constants to the_hash_algo blame: remove needless comparison with GIT_SHA1_HEXSZ ...
2019-10-11Merge branch 'en/clean-nested-with-ignored'Libravatar Junio C Hamano6-34/+134
"git clean" fixes. * en/clean-nested-with-ignored: dir: special case check for the possibility that pathspec is NULL clean: fix theoretical path corruption clean: rewrap overly long line clean: avoid removing untracked files in a nested git repository clean: disambiguate the definition of -d git-clean.txt: do not claim we will delete files with -n/--dry-run dir: add commentary explaining match_pathspec_item's return value dir: if our pathspec might match files under a dir, recurse into it dir: make the DO_MATCH_SUBMODULE code reusable for a non-submodule case dir: also check directories for matching pathspecs dir: fix off-by-one error in match_pathspec_item dir: fix typo in comment t7300: add testcases showing failure to clean specified pathspecs
2019-10-10CODE_OF_CONDUCT: mention individual project-leader emailsLibravatar Jeff King1-0/+8
It's possible that somebody on the project committee is the subject of a complaint. In that case, it may be useful to be able to contact the other members individually, so let's make it clear that's an option. This also serves to enumerate the set of people on the committee. That lets you easily _know_ if you're in the situation mentioned above. And it's just convenient to list who's involved in the process, since the project committee list is not anywhere else in the repository. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2019-10-10add a Code of Conduct documentLibravatar Jeff King1-0/+85
We've never had a formally written Code of Conduct document. Though it has been discussed off and on over the years, for the most part the behavior on the mailing list has been good enough that nobody felt the need to push one forward. However, even if there aren't specific problems now, it's a good idea to have a document: - it puts everybody on the same page with respect to expectations. This might avoid poor behavior, but also makes it easier to handle it if it does happen. - it publicly advertises that good conduct is important to us and will be enforced, which may make some people more comfortable with joining our community - it may be a good time to cement our expectations when things are quiet, since it gives everybody some distance rather than focusing on a current contentious issue This patch adapts the Contributor Covenant Code of Conduct. As opposed to writing our own from scratch, this uses common and well-accepted language, and strikes a good balance between illustrating expectations and avoiding a laundry list of behaviors. It's also the same document used by the Git for Windows project. The text is taken mostly verbatim from: https://www.contributor-covenant.org/version/1/4/code-of-conduct.html I also stole a very nice introductory paragraph from the Git for Windows version of the file. There are a few subtle points, though: - the document refers to "the project maintainers". For the code, we generally only consider there to be one maintainer: Junio C Hamano. But for dealing with community issues, it makes sense to involve more people to spread the responsibility. I've listed the project committee address of git@sfconservancy.org as the contact point. - the document mentions banning from the community, both in the intro paragraph and in "Our Responsibilities". The exact mechanism here is left vague. I can imagine it might start with social enforcement (not accepting patches, ignoring emails) and could escalate to technical measures if necessary (asking vger admins to block an address). It probably make sense _not_ to get too specific at this point, and deal with specifics as they come up. Signed-off-by: Jeff King <peff@peff.net> Acked-by: CB Bailey <cb@hashpling.org> Acked-by: Christian Couder <chriscool@tuxfamily.org> Acked-by: Emily Shaffer <emilyshaffer@google.com> Acked-by: Garima Singh <garimasigit@gmail.com> Acked-by: Junio C Hamano <gitster@pobox.com> Acked-by: Johannes Schindelin <johannes.schindelin@gmx.de> Acked-by: Jonathan Tan <jonathantanmy@google.com> Acked-by: Jonathan Nieder <jrnieder@gmail.com> Acked-by: Taylor Blau <me@ttaylorr.com> Acked-by: Elijah Newren <newren@gmail.com> Acked-by: Phillip Wood <phillip.wood@dunelm.org.uk> Acked-by: brian m. carlson <sandals@crustytoothpaste.net> Acked-by: Derrick Stolee <stolee@gmail.com> Acked-by: Thomas Gummerer <t.gummerer@gmail.com> Acked-by: William Baker <williamtbakeremail@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>