summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2020-11-25t1300: test "set all" mode with value-patternLibravatar Derrick Stolee1-0/+39
Without additional modifiers, 'git config <key> <value>' attempts to set a single value in the .git/config file. When the value-pattern parameter is supplied, this command behaves in a non-trivial manner. Consider 'git config <key> <value> <value-pattern>'. The expected behavior is as follows: 1. If there are multiple existing values that match 'value-pattern', then the command fails. Users should use --replace-all instead. 2. If there is no existing values match 'value-pattern', then the 'key=value' pair is appended, making this 'key' a multi-valued config setting. 3. If there is one existing value that matches 'value-pattern', then the new config has one entry where 'key=value'. Add a test that demonstrates these options. Break from the existing pattern in t1300-config.sh to use 'git config --file=<file>' instead of modifying .git/config directly to prevent possibly incompatible repo states. Also use 'git config --file=<file> --list' for config state comparison instead of the config file format. This makes the tests more readable. Signed-off-by: Derrick Stolee <dstolee@microsoft.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2020-11-25config: replace 'value_regex' with 'value_pattern'Libravatar Derrick Stolee4-44/+44
The 'value_regex' argument in the 'git config' builtin is poorly named, especially related to an upcoming change that allows exact string matches instead of ERE pattern matches. Perform a mostly mechanical change of every instance of 'value_regex' to 'value_pattern' in the codebase. This is only critical for documentation and error messages, but it is best to be consistent inside the codebase, too. For documentation, use 'value-pattern' which is better punctuation. This affects Documentation/git-config.txt and the usage in builtin/config.c, which was already mixed between 'value_regex' and 'value-regex'. I gave some thought to leaving the value_regex variables inside config.c that are regex_t pointers. However, it is probably best to keep the name consistent with the rest of the variables. This does not update the translations inside the po/ directory, as that creates conflicts with ongoing work. The input strings should automatically update through automation, and a few of the output strings currently use "[value_regex]" directly. Signed-off-by: Derrick Stolee <dstolee@microsoft.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2020-11-25config: convert multi_replace to flagsLibravatar Derrick Stolee5-26/+45
We will extend the flexibility of the config API. Before doing so, let's take an existing 'int multi_replace' parameter and replace it with a new 'unsigned flags' parameter that can take multiple options as a bit field. Update all callers that specified multi_replace to now specify the CONFIG_FLAGS_MULTI_REPLACE flag. To add more clarity, extend the documentation of git_config_set_multivar_in_file() including a clear labeling of its arguments. Other config API methods in config.h require only a change of the final parameter from 'int' to 'unsigned'. Signed-off-by: Derrick Stolee <dstolee@microsoft.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2020-11-18Sixth batchLibravatar Junio C Hamano1-0/+35
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2020-11-18Merge branch 'jc/blame-ignore-fix'Libravatar Junio C Hamano2-4/+5
"git blame --ignore-revs-file=<file>" learned to ignore a non-existent object name in the input, instead of complaining. * jc/blame-ignore-fix: blame: silently ignore invalid ignore file objects
2020-11-18Merge branch 'jc/sparse-error-for-developer-build'Libravatar Junio C Hamano1-0/+1
"make DEVELOPER=1 sparse" used to run sparse and let it emit warnings; now such warnings will cause an error. * jc/sparse-error-for-developer-build: Makefile: enable -Wsparse-error for DEVELOPER build
2020-11-18Merge branch 'pb/blame-funcname-range-userdiff'Libravatar Junio C Hamano12-72/+79
"git blame -L :funcname -- path" did not work well for a path for which a userdiff driver is defined. * pb/blame-funcname-range-userdiff: blame: simplify 'setup_blame_bloom_data' interface blame: simplify 'setup_scoreboard' interface blame: enable funcname blaming with userdiff driver line-log: mention both modes in 'blame' and 'log' short help doc: add more pointers to gitattributes(5) for userdiff blame-options.txt: also mention 'funcname' in '-L' description doc: line-range: improve formatting doc: log, gitk: move '-L' description to 'line-range-options.txt'
2020-11-18Merge branch 'en/merge-ort-api-null-impl'Libravatar Junio C Hamano13-15/+517
Preparation for a new merge strategy. * en/merge-ort-api-null-impl: merge,rebase,revert: select ort or recursive by config or environment fast-rebase: demonstrate merge-ort's API via new test-tool command merge-ort-wrappers: new convience wrappers to mimic the old merge API merge-ort: barebones API of new merge strategy with empty implementation
2020-11-18Merge branch 'ds/maintenance-part-3'Libravatar Junio C Hamano17-8/+759
Parts of "git maintenance" to ease writing crontab entries (and other scheduling system configuration) for it. * ds/maintenance-part-3: maintenance: add troubleshooting guide to docs maintenance: use 'incremental' strategy by default maintenance: create maintenance.strategy config maintenance: add start/stop subcommands maintenance: add [un]register subcommands for-each-repo: run subcommands on configured repos maintenance: add --schedule option and config maintenance: optionally skip --auto process
2020-11-18Merge branch 'pw/rebase-i-orig-head'Libravatar Junio C Hamano4-22/+31
"git rebase -i" did not store ORIG_HEAD correctly. * pw/rebase-i-orig-head: rebase -i: simplify get_revision_ranges() rebase -i: use struct object_id when writing state rebase -i: use struct object_id rather than looking up commit rebase -i: stop overwriting ORIG_HEAD buffer
2020-11-18Merge branch 'rs/archive-high-compression'Libravatar Junio C Hamano3-16/+14
"git archive" now allows compression level higher than "-9" when generating tar.gz output. * rs/archive-high-compression: archive: support compression levels beyond 9
2020-11-18Merge branch 'dg/bswap-msvc'Libravatar Junio C Hamano1-1/+1
Define ARM64 compiled with MSVC to be little-endian. * dg/bswap-msvc: compat/bswap.h: don't assume MSVC is little-endian compat/bswap.h: simplify MSVC endianness detection
2020-11-18Merge branch 'jk/format-patch-output'Libravatar Junio C Hamano2-15/+55
"git format-patch --output=there" did not work as expected and instead crashed. The option is now supported. * jk/format-patch-output: format-patch: support --output option format-patch: tie file-opening logic to output_directory format-patch: refactor output selection
2020-11-18Merge branch 'jc/line-log-takes-no-pathspec'Libravatar Junio C Hamano2-0/+25
"git log -L<range>:<path>" is documented to take no pathspec, but this was not enforced by the command line option parser, which has been corrected. * jc/line-log-takes-no-pathspec: log: diagnose -L used with pathspec as an error
2020-11-18Merge branch 'rs/empty-reflog-check-fix'Libravatar Junio C Hamano1-14/+13
The code to see if "git stash drop" can safely remove refs/stash has been made more carerful. * rs/empty-reflog-check-fix: stash: simplify reflog emptiness check
2020-11-18Merge branch 'nk/perf-fsmonitor'Libravatar Junio C Hamano1-31/+63
Add t/perf support for fsmonitor. * nk/perf-fsmonitor: t/perf/fsmonitor: add benchmark for dirty status t/perf/fsmonitor: perf comparison of multiple fsmonitor integrations t/perf/fsmonitor: initialize test with git reset t/perf/fsmonitor: factor setup for fsmonitor into function t/perf/fsmonitor: silence initial git commit t/perf/fsmonitor: shorten DESC to basename t/perf/fsmonitor: factor description out for readability t/perf/fsmonitor: improve error message if typoing hook name t/perf/fsmonitor: move watchman setup to one-time-repo-setup t/perf/fsmonitor: separate one time repo initialization
2020-11-18Merge branch 'en/merge-tests'Libravatar Junio C Hamano13-386/+807
Preparation for a new merge strategy. * en/merge-tests: t6423: add more details about direct resolution of directories t6423: note improved ort handling with untracked files t6423, t6436: note improved ort handling with dirty files merge tests: expect slight differences in output for recursive vs. ort t6423: expect improved conflict markers labels in the ort backend t6404, t6423: expect improved rename/delete handling in ort backend t6416: correct expectation for rename/rename(1to2) + directory/file merge tests: expect improved directory/file conflict handling in ort t/: new helper for tests that pass with ort but fail with recursive
2020-11-18Merge branch 'js/default-branch-name-adjust-t5515'Libravatar Junio C Hamano128-305/+308
Prepare a test script to transition of the default branch name to 'main'. * js/default-branch-name-adjust-t5515: t5515: use `main` as the name of the main branch for testing (conclusion) t5515: use `main` as the name of the main branch for testing (part 3) t5515: use `main` as the name of the main branch for testing (part 2) t5515: use `main` as the name of the main branch for testing (part 1)
2020-11-18Merge branch 'dd/upload-pack-stateless-eof'Libravatar Junio C Hamano2-1/+29
"git fetch --depth=<n>" over the stateless RPC / smart HTTP transport handled EOF from the client poorly at the server end. * dd/upload-pack-stateless-eof: upload-pack: allow stateless client EOF just prior to haves
2020-11-11Fifth batchLibravatar Junio C Hamano1-0/+22
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2020-11-11Merge branch 'jc/sequencer-stopped-sha-simplify'Libravatar Junio C Hamano1-1/+1
Recently the format of an internal state file "rebase -i" uses has been tightened up for consistency, which would hurt those who start "rebase -i" with old git and then continue with new git. Loosen the reader side a bit (which we may want to tighten again in a year or so). * jc/sequencer-stopped-sha-simplify: sequencer: tolerate abbreviated stopped-sha file
2020-11-11Merge branch 'js/test-file-size'Libravatar Junio C Hamano5-42/+24
Test clean-up. * js/test-file-size: tests: consolidate the `file_size` function into `test-lib-functions.sh`
2020-11-11Merge branch 'js/ci-github-set-env'Libravatar Junio C Hamano1-1/+1
CI update. * js/ci-github-set-env: ci: avoid using the deprecated `set-env` construct
2020-11-11Merge branch 'js/p4-default-branch'Libravatar Junio C Hamano1-1/+1
"git p4" now honors init.defaultBranch configuration. * js/p4-default-branch: p4: respect init.defaultBranch
2020-11-11Merge branch 'js/test-whitespace-fixes'Libravatar Junio C Hamano7-112/+113
Test code clean-up. * js/test-whitespace-fixes: t9603: use tabs for indentation t5570: remove trailing padding t5400,t5402: consistently indent with tabs, not with spaces t3427: adjust stale comment t3406: indent with tabs, not spaces t1004: insert missing "branch" in a message
2020-11-11Merge branch 'mc/typofix'Libravatar Junio C Hamano4-4/+4
Docfix. * mc/typofix: doc: fixing two trivial typos in Documentation/
2020-11-11Merge branch 'jc/abbrev-doc'Libravatar Junio C Hamano6-11/+18
The documentation on the "--abbrev=<n>" option did not say the output may be longer than "<n>" hexdigits, which has been clarified. * jc/abbrev-doc: doc: clarify that --abbrev=<n> is about the minimum length
2020-11-11Merge branch 'cw/ci-ghwf-check-ws-errors'Libravatar Junio C Hamano1-2/+4
Dev support update. * cw/ci-ghwf-check-ws-errors: ci: make the whitespace checker more robust
2020-11-11Merge branch 'rs/worktree-list-show-locked'Libravatar Junio C Hamano1-1/+1
Typofix. * rs/worktree-list-show-locked: t2402: fix typo
2020-11-11Merge branch 'rs/pack-write-hashwrite-simplify'Libravatar Junio C Hamano1-3/+1
Code clean-up. * rs/pack-write-hashwrite-simplify: pack-write: use hashwrite_be32() instead of double-buffering array
2020-11-11Merge branch 'sd/prompt-local-variable'Libravatar Junio C Hamano1-0/+1
Code clean-up. * sd/prompt-local-variable: git-prompt.sh: localize `option` in __git_ps1_show_upstream
2020-11-11Merge branch 'rs/clear-commit-marks-in-repo'Libravatar Junio C Hamano5-8/+9
Code clean-up. * rs/clear-commit-marks-in-repo: bisect: clear flags in passed repository object: allow clear_commit_marks_all to handle any repo
2020-11-11Merge branch 'so/format-patch-doc-on-default-diff-format'Libravatar Junio C Hamano1-3/+6
Docfix. * so/format-patch-doc-on-default-diff-format: doc/diff-options: fix out of place mentions of '--patch/-p'
2020-11-11compat/bswap.h: don't assume MSVC is little-endianLibravatar Daniel Gurney1-1/+1
In 1af265f0 (compat/bswap.h: simplify MSVC endianness detection, 2020-11-08) we attempted to simplify code by assuming MSVC builds will be for little-endian machines, since only unusably old versions of MSVC supported big-endian MIPS and m68k architectures. However, it's possible that MSVC could be ported to build for a big-endian architecture again, so the simplification wasn't as future-proof as hoped. So let's go back to the old way of detecting MSVC, and then checking architecture from a list of little-endian architecture macros. Note that MSVC does not treat ARM64 as bi-endian, so we can safely treat it as little-endian. Helped-by: brian m. carlson <sandals@crustytoothpaste.net> Helped-by: Jeff King <peff@peff.net> Helped-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Helped-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: Daniel Gurney <dgurney99@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2020-11-10blame: silently ignore invalid ignore file objectsLibravatar René Scharfe2-4/+5
Since 610e2b9240 (blame: validate and peel the object names on the ignore list, 2020-09-24) git blame reports checks if objects specified with --ignore-rev and in files loaded with --ignore-revs-file and config option blame.ignoreRevsFile are actual objects and dies if they aren't. The intent is to report typos to the user. This also breaks the ability to use a single ignore file for multiple repositories. Typos are presumably less likely in files than on the command line, so alerting is less useful here. Restore that feature by skipping non-commits without dying. Reported-by: Jean-Yves Avenard <jyavenard@mozilla.com> Signed-off-by: René Scharfe <l.s.r@web.de> Reviewed-by: Barret Rhoden <brho@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2020-11-09Fourth batchLibravatar Junio C Hamano1-0/+34
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2020-11-09Merge branch 'js/default-branch-name-adjust-t5411'Libravatar Junio C Hamano32-723/+726
Prepare a test script to transition of the default branch name to 'main'. * js/default-branch-name-adjust-t5411: t5411: finish preparing for `main` being the default branch name t5411: adjust the remaining support files for init.defaultBranch=main t5411: start adjusting the support files for init.defaultBranch=main t5411: start using the default branch name "main"
2020-11-09Merge branch 'fc/zsh-completion'Libravatar Junio C Hamano4-156/+112
Zsh autocompletion (in contrib/) update. * fc/zsh-completion: (29 commits) zsh: update copyright notices completion: bash: remove old compat wrappers completion: bash: cleanup cygwin check completion: bash: trivial cleanup completion: zsh: add simple version check completion: zsh: trivial simplification completion: zsh: add alias descriptions completion: zsh: improve command tags completion: zsh: refactor command completion completion: zsh: shuffle functions around completion: zsh: simplify file_direct completion: zsh: simplify nl_append completion: zsh: trivial cleanup completion: zsh: simplify direct compadd completion: zsh: simplify compadd functions completion: zsh: fix splitting of words completion: zsh: add missing direct_append completion: fix conflict with bashcomp completion: zsh: fix completion for --no-.. options completion: bash: remove zsh wrapper ...
2020-11-09Merge branch 'jk/sideband-more-error-checking'Libravatar Junio C Hamano4-14/+47
The code to detect premature EOF in the sideband demultiplexer has been cleaned up. * jk/sideband-more-error-checking: sideband: diagnose more sideband anomalies
2020-11-09Merge branch 'jk/committer-date-is-author-date-fix-simplify'Libravatar Junio C Hamano3-44/+5
Code simplification. * jk/committer-date-is-author-date-fix-simplify: am, sequencer: stop parsing our own committer ident
2020-11-09Merge branch 'ab/git-remote-exit-code'Libravatar Junio C Hamano3-22/+47
Exit codes from "git remote add" etc. were not usable by scripted callers. * ab/git-remote-exit-code: remote: add meaningful exit code on missing/existing
2020-11-09Merge branch 'pb/ref-filter-with-crlf'Libravatar Junio C Hamano2-14/+148
A commit and tag object may have CR at the end of each and every line (you can create such an object with hash-object or using --cleanup=verbatim to decline the default clean-up action), but it would make it impossible to have a blank line to separate the title from the body of the message. Be lenient and accept a line with lone CR on it as a blank line, too. * pb/ref-filter-with-crlf: log, show: add tests for messages containing CRLF ref-filter: handle CRLF at end-of-line more gracefully
2020-11-09Merge branch 'jk/checkout-index-errors'Libravatar Junio C Hamano3-3/+34
"git checkout-index" did not consistently signal an error with its exit status. * jk/checkout-index-errors: checkout-index: propagate errors to exit code checkout-index: drop error message from empty --stage=all
2020-11-09Merge branch 'jk/perl-warning'Libravatar Junio C Hamano22-19/+30
Dev support. * jk/perl-warning: perl: check for perl warnings while running tests
2020-11-09Merge branch 'nk/diff-files-vs-fsmonitor'Libravatar Junio C Hamano6-50/+81
"git diff" and other commands that share the same machinery to compare with working tree files have been taught to take advantage of the fsmonitor data when available. * nk/diff-files-vs-fsmonitor: p7519-fsmonitor: add a git add benchmark p7519-fsmonitor: refactor to avoid code duplication perf lint: add make test-lint to perf tests t/perf: add fsmonitor perf test for git diff t/perf/p7519-fsmonitor.sh: warm cache on first git status t/perf/README: elaborate on output format fsmonitor: use fsmonitor data in `git diff`
2020-11-09Merge branch 'as/tests-cleanup'Libravatar Junio C Hamano2-2/+4
Micro clean-up of a couple of test scripts. * as/tests-cleanup: t2200,t9832: avoid using 'git' upstream in a pipe
2020-11-09Merge branch 'en/dir-rename-tests'Libravatar Junio C Hamano2-54/+553
More preliminary tests have been added to document desired outcome of various "directory rename" situations. * en/dir-rename-tests: t6423: more involved rules for renaming directories into each other t6423: update directory rename detection tests with new rule t6423: more involved directory rename test directory-rename-detection.txt: update references to regression tests
2020-11-09Merge branch 'mr/bisect-in-c-3'Libravatar Junio C Hamano2-151/+117
Rewriting "git bisect" in C continues. * mr/bisect-in-c-3: bisect--helper: retire `--bisect-autostart` subcommand bisect--helper: retire `--write-terms` subcommand bisect--helper: retire `--check-expected-revs` subcommand bisect--helper: reimplement `bisect_state` & `bisect_head` shell functions in C bisect--helper: retire `--next-all` subcommand bisect--helper: retire `--bisect-clean-state` subcommand bisect--helper: finish porting `bisect_start()` to C
2020-11-09t9603: use tabs for indentationLibravatar Johannes Schindelin1-12/+12
This patch will let the new `check-whitespace` GitHub workflow be happy with the upcoming patch series that wants to search-and-replace `master` with `main` in t9603 and some other test scripts. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2020-11-09t5570: remove trailing paddingLibravatar Johannes Schindelin1-6/+6
Two blocks in t5570 want to align the closing double quotes, padding with spaces if needed. Since the maximum length of those lines is defined by the branch name `master`, the upcoming rename to `main` would unalign the quotes. But then, it is unclear how those aligned closing quotes should help readability anyway, so let's just remove that padding altogether. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>