Version v2.30.1; changes since v2.30.0: --------------------------------------- Adam Dinwoodie (1): t4129: fix setfacl-related permissions failure Antonio Russo (1): t6016: move to lib-log-graph.sh framework Daniel Levin (1): git-p4: fix syncing file types with pattern Derrick Stolee (1): for-each-repo: do nothing on empty config Elijah Newren (3): t7012: add a testcase demonstrating stash apply bugs in sparse checkouts stash: remove unnecessary process forking stash: fix stash application in sparse-checkouts Felipe Contreras (1): test: bisect-porcelain: fix location of files Jeff King (5): git_connect_git(): forbid newlines in host and path fsck: reject .gitmodules git:// urls with newlines t5516: loosen "not our ref" error check patch-ids: handle duplicate hashmap entries p5303: avoid sed GNU-ism Johannes Schindelin (1): SKIP_DASHED_BUILT_INS: respect `config.mak` Johannes Sixt (1): annotate-tests: quote variable expansions containing path names Jonathan Tan (1): Doc: clarify contents of packfile sent as URI Junio C Hamano (5): parse-options: format argh like error messages SubmittingPatches: tighten wording on "sign-off" procedure ci/install-depends: attempt to fix "brew cask" stuff Prepare for 2.30.1 Git 2.30.1 Martin Ågren (9): t1300: remove duplicate test for `--file ../foo` t1300: remove duplicate test for `--file no-such-file` t1300: don't needlessly work with `core.foo` configs pack-format.txt: document sizes at start of delta data builtin/gc: don't peek into `struct lock_file` commit-graph: don't peek into `struct lock_file` midx: don't peek into `struct lock_file` refs/files-backend: don't peek into `struct lock_file` read-cache: try not to peek into `struct {lock_,temp}file` Matheus Tavares (1): t4129: don't fail if setgid is set in the test directory Peter Kaestle (1): submodules: fix of regression on fetching of non-init subsub-repo Philippe Blain (3): gitmodules.txt: fix 'GIT_WORK_TREE' variable name mergetool--lib: fix '--tool-help' to correctly show available tools ci: do not cancel all jobs of a matrix if one fails René Scharfe (1): rebase: verify commit parameter Taylor Blau (2): p7519: allow running without watchman prereq Documentation/git-clone.txt: document race with --local Thomas Ackermann (1): doc: fix some typos Utku Gultopu (1): doc: remove "directory cache" from man pages Vasyl Vavrychuk (1): git-send-email.txt: mention less secure app access with Gmail ZheNing Hu (1): builtin/*: update usage format brian m. carlson (1): docs: rephrase and clarify the git status --short format Ævar Arnfjörð Bjarmason (10): branch: change "--local" to "--list" in comment branch tests: add to --sort tests ref-filter: add braces to if/else if/else chain ref-filter: move "cmp_fn" assignment into "else if" arm ref-filter: move ref_sorting flags to a bitfield branch: sort detached HEAD based on a flag branch: show "HEAD detached" first under reverse sort Makefile: remove a warning about old GETTEXT_POISON flag gettext.c: remove/reword a mostly-useless comment fsck doc: remove ancient out-of-date diagnostics Version v2.30.0; changes since v2.30.0-rc2: ------------------------------------------- Alexander Shopov (1): l10n: bg.po: Updated Bulgarian translation (5037t) Arusekk (1): l10n: pl.po: add translation and set team leader Baptiste Fontaine (1): l10n: fr.po Fix a typo Emir Sarı (2): l10n: tr: v2.30.0-r1 l10n: tr: v2.30.0-r2 Jean-Noël Avila (3): l10n: fr fix misleading message l10n: fr.po: v2.30.0 rnd 1 l10n: fr.po v2.30.0 rnd 2 Jiang Xin (3): l10n: git.pot: v2.30.0 round 1 (70 new, 45 removed) l10n: git.pot: v2.30.0 round 2 (1 new, 2 removed) l10n: zh_CN: for git v2.30.0 l10n round 1 and 2 Jordi Mas (2): l10n: Update Catalan translation l10n: Update Catalan translation Junio C Hamano (1): Git 2.30 Matthias Rüster (1): l10n: de.po: Update German translation for Git 2.30.0 Peter Krefting (2): l10n: sv.po: Update Swedish translation (5038t0f0u) l10n: sv.po: Update Swedish translation (5037t0f0u) Philippe Blain (1): git.txt: fix typos in 'linkgit' macro invocation Trần Ngọc Quân (1): l10n: vi.po(5037t): v2.30.0 rnd 2 Yi-Jyun Pan (1): l10n: zh_TW.po: v2.30.0 round 2 (1 untranslated) m4sk1n (1): l10n: pl.po: started Polish translation Version v2.30.0-rc2; changes since v2.30.0-rc1: ----------------------------------------------- Jiang Xin (1): pack-redundant: fix crash when one packfile in repo Johannes Schindelin (12): t1400: use `main` as initial branch name t3200: finish transitioning to the initial branch name `main` t3201: finalize transitioning to using the branch name `main` t3203: complete the transition to using the branch name `main` t3205: finalize transitioning to using the branch name `main` t5505: finalize transitioning to using the branch name `main` t5510: use `main` as initial branch name t5703: use `main` as initial branch name t6302: use `main` as initial branch name t9902: use `main` as initial branch name tests: drop the `PREPARE_FOR_MAIN_BRANCH` prereq checkout -p: handle tree arguments correctly again Junio C Hamano (1): Git 2.30-rc2 Martin Ågren (3): git-maintenance.txt: add missing word gc: fix handling of crontab magic markers t7900-maintenance: test for magic markers Nipunn Koorapati (2): negative-refspec: fix segfault on : refspec negative-refspec: improve comment on query_matches_negative_refspec Version v2.30.0-rc1; changes since v2.30.0-rc0: ----------------------------------------------- David Aguilar (1): git-gui: ssh-askpass: add a checkbox to show the input text Dimitriy Ryazantcev (1): git-gui: update Russian translation Eric Sunshine (1): t/perf: fix test_export() failure with BSD `sed` Jeff Hostetler (1): index-format.txt: document v2 format of file system monitor extension Jeff King (9): oid-array.h: drop sha1 mention from header guard t0064: drop sha1 mention from filename t0064: make duplicate tests more robust cache.h: move hash/oid functions to hash.h oid-array: make sort function public oid-array: provide a for-loop iterator commit-graph: drop count_distinct_commits() function commit-graph: replace packed_oid_list with oid_array commit-graph: use size_t for array allocation and indexing Johannes Berg (1): docs: multi-pack-index: remove note about future 'verify' work Johannes Schindelin (6): t6300: avoid using the default name of the initial branch t7064: avoid relying on a specific default branch name init: document `init.defaultBranch` better branch -m: allow renaming a yet-unborn branch get_default_branch_name(): prepare for showing some advice init: provide useful advice about init.defaultBranch Josh Steadmon (1): t7900: use --fixed-value in git-maintenance tests Junio C Hamano (5): strmap: make callers of strmap_remove() to call it in void context compat-util: pretend that stub setitimer() always succeeds diff: correct interaction between --exit-code and -I Another batch before 2.30-rc1 Git 2.30-rc1 Martin Schön (1): git-gui: use commit message template Pratyush Yadav (1): git-gui: Only touch GITGUI_MSG when needed Ramsay Jones (6): Documentation/Makefile: conditionally include doc.dep Documentation/Makefile: conditionally include ../GIT-VERSION-FILE gitweb/Makefile: conditionally include ../GIT-VERSION-FILE Makefile: don't try to clean old debian build product Makefile: don't use a versioned temp distribution directory Makefile: conditionally include GIT-VERSION-FILE Randall S. Becker (1): config.mak.uname: remove old NonStop compatibility settings Serg Tereshchenko (1): git-gui: Fix selected text colors Stefan Haller (2): git-gui: fix colored label backgrounds when using themed widgets git-gui: use gray background for inactive text widgets Taylor Blau (2): builtin/clone.c: don't ignore transport_fetch_refs() errors upload-pack.c: don't free allowed_filters util pointers Ævar Arnfjörð Bjarmason (1): style: do not "break" in switch() after "return" Đoàn Trần Công Danh (1): doc: mention Python 3.x supports Version v2.30.0-rc0; changes since v2.29.3: ------------------------------------------- Adam Spiers (1): hook: add sample template for push-to-checkout Alex Vandiver (2): dir.c: fix comments to agree with argument name fsmonitor: use fsmonitor data in `git diff` Alexey (1): completion: fix zsh installation instructions Amanda Shafack (1): t2200,t9832: avoid using 'git' upstream in a pipe Arnout Engelen (1): doc: make HTML manual reproducible Bradley M. Kuhn (2): Documentation: clarify and expand description of --signoff Documentation: stylistically normalize references to Signed-off-by: Caleb Tillman (1): t0000: use test_path_is_file instead of "test -f" Charvi Mendiratta (5): t7101,t7102,t7201: modernize test formatting t7102,t7201: remove unnecessary blank spaces in test body t7102,t7201: remove whitespace after redirect operator t7201: use 'git -C' to avoid subshell t7201: put each command on a separate line Chris. Webster (1): ci: github action - add check for whitespace errors Daniel Duvall (1): upload-pack: allow stateless client EOF just prior to haves Daniel Gurney (2): compat/bswap.h: simplify MSVC endianness detection compat/bswap.h: don't assume MSVC is little-endian Dennis Ameling (1): ci(vs-build): stop passing the iconv library location explicitly Denton Liu (18): t4068: remove unnecessary >tmp git-diff-index.txt: make --cached description a proper sentence git-diff.txt: backtick quote command text contrib/completion: extract common diff/difftool options diff-lib: accept option flags in run_diff_index() diff-lib: define diff_get_merge_base() t4068: add --merge-base tests builtin/diff-index: learn --merge-base builtin/diff-tree: learn --merge-base contrib/completion: complete `git diff --merge-base` Documentation/config/checkout: replace sq with backticks builtin/checkout: fix `git checkout -p HEAD...` bug Doc: document "A...B" form for in checkout and switch add-patch: add NEEDSWORK about comparing commits t2016: add a NEEDSWORK about the PERL prerequisite checkout: learn to respect checkout.guess contrib/git-resurrect.sh: indent with tabs contrib/git-resurrect.sh: use hash-agnostic OID pattern Derrick Stolee (28): maintenance: add prefetch task maintenance: add loose-objects task maintenance: create auto condition for loose-objects midx: enable core.multiPackIndex by default midx: use start_delayed_progress() maintenance: add incremental-repack task maintenance: auto-size incremental-repack batch maintenance: add incremental-repack auto condition maintenance: optionally skip --auto process maintenance: add --schedule option and config for-each-repo: run subcommands on configured repos maintenance: add [un]register subcommands maintenance: add start/stop subcommands maintenance: test commit-graph auto condition commit-graph: ignore duplicates when merging layers commit-graph: don't write commit-graph when disabled maintenance: core.commitGraph=false prevents writes maintenance: create maintenance.strategy config maintenance: use 'incremental' strategy by default maintenance: add troubleshooting guide to docs config: convert multi_replace to flags config: replace 'value_regex' with 'value_pattern' t1300: test "set all" mode with value-pattern t1300: add test for --replace-all with value-pattern config: add --fixed-value option, un-implemented config: plumb --fixed-value into config API config: implement --fixed-value with --get* maintenance: use 'git config --fixed-value' Drew DeVault (1): help.c: help.autocorrect=never means "do not compute suggestions" Elijah Newren (37): hashmap: add usage documentation explaining hashmap_free[_entries]() directory-rename-detection.txt: update references to regression tests t6423: more involved directory rename test t6423: update directory rename detection tests with new rule t6423: more involved rules for renaming directories into each other t7518: fix flaky grep invocation test-lib: allow selecting tests by substring/glob with --run t6006, t6012: adjust tests to use 'setup' instead of synonyms test-lib: reduce verbosity of skipped tests sequencer: remove duplicate rollback_lock_file() call t/: new helper for tests that pass with ort but fail with recursive merge tests: expect improved directory/file conflict handling in ort t6416: correct expectation for rename/rename(1to2) + directory/file t6404, t6423: expect improved rename/delete handling in ort backend t6423: expect improved conflict markers labels in the ort backend merge tests: expect slight differences in output for recursive vs. ort t6423, t6436: note improved ort handling with dirty files t6423: note improved ort handling with untracked files t6423: add more details about direct resolution of directories merge-ort: barebones API of new merge strategy with empty implementation merge-ort-wrappers: new convience wrappers to mimic the old merge API fast-rebase: demonstrate merge-ort's API via new test-tool command hashmap: adjust spacing to fix argument alignment hashmap: allow re-use after hashmap_free() hashmap: introduce a new hashmap_partial_clear() hashmap: provide deallocation function names strmap: new utility functions merge,rebase,revert: select ort or recursive by config or environment strmap: add more utility functions strmap: enable faster clearing and reusing of strmaps strmap: add functions facilitating use as a string->int map strmap: split create_entry() out of strmap_put() strmap: add a strset sub-type strmap: enable allocations to come from a mem_pool strmap: take advantage of FLEXPTR_ALLOC_STR when relevant Use new HASHMAP_INIT macro to simplify hashmap initialization shortlog: use strset from strmap.h Emily Shaffer (1): MyFirstContribution: clarify asciidoc dependency Felipe Contreras (41): completion: zsh: fix __gitcomp_direct() completion: zsh: fix name due to broken autoloading completion: zsh: fix bash script extension completion: zsh: reorganize install instructions completion: zsh: fix for directories with spaces completion: zsh: update slave script locations completion: prompt: fix color for Zsh completion: zsh: fix for command aliasing completion: bash: synchronize zsh wrapper completion: bash: remove zsh wrapper completion: zsh: fix completion for --no-.. options completion: fix conflict with bashcomp completion: zsh: add missing direct_append completion: zsh: fix splitting of words completion: zsh: simplify compadd functions completion: zsh: simplify direct compadd completion: zsh: trivial cleanup completion: zsh: simplify nl_append completion: zsh: simplify file_direct completion: zsh: shuffle functions around completion: zsh: refactor command completion completion: zsh: improve command tags completion: zsh: add alias descriptions completion: zsh: trivial simplification completion: zsh: add simple version check completion: bash: trivial cleanup completion: bash: cleanup cygwin check completion: bash: remove old compat wrappers zsh: update copyright notices completion: bash: support recursive aliases completion: bash: check for alias loop completion: bash: improve alias loop detection tests: push: improve cleanup of HEAD tests tests: push: trivial cleanup refspec: make @ a synonym of HEAD refspec: trivial cleanup .gitignore: remove dangling file test: completion: fix typos tests: lib-functions: trivial style cleanups completion: zsh: fix file completion regression completion: bash: fix gitk alias regression Han-Wen Nienhuys (1): move sleep_millisec to git-compat-util.h Javier Spagnoletti (1): userdiff: PHP: catch "abstract" and "final" functions Jeff King (32): fast-import: fix over-allocation of marks storage usage: define a type for a reporting function config.mak.dev: build with -fno-common fast-import: remove duplicated option-parsing line perl: check for perl warnings while running tests am, sequencer: stop parsing our own committer ident test-pkt-line: drop colon from sideband identity checkout-index: drop error message from empty --stage=all checkout-index: propagate errors to exit code sideband: diagnose more sideband anomalies format-patch: refactor output selection format-patch: tie file-opening logic to output_directory format-patch: support --output option rev-parse: don't accept options after dashdash rev-parse: put all options under the "-" check rev-parse: handle --end-of-options compute pack .idx byte offsets using size_t use size_t to store pack .idx byte offsets fsck: correctly compute checksums on idx files larger than 4GB block-sha1: take a size_t length parameter packfile: detect overflow in .idx file size checks repack: make "exts" array available outside cmd_repack() send-pack: kill pack-objects helper on signal or exit submodule: fix fetch_in_submodule logic upload-pack: kill pack-objects helper on signal or exit banned.h: mark non-reentrant gmtime, etc as banned t7900: speed up expensive test gitignore: drop duplicate entry for git-sh-i18n banned.h: mark ctime_r() and asctime_r() as banned Makefile: mark git-maintenance as a builtin upload-pack: propagate return value from object filter config callback style: indent multiline "if" conditions to align Jiang Xin (3): t5411: new helper filter_out_user_friendly_and_stable_output receive-pack: gently write messages to proc-receive receive-pack: use default version 0 for proc-receive Jinoh Kang (2): diff: allow passing NULL to diff_free_filespec_data() t7800: simplify difftool test Joey Salazar (1): t7006: Use test_path_is_* functions in test script Johannes Schindelin (56): ci: work around old records of GitHub runs ci: make the "skip-if-redundant" check more defensive sideband: avoid reporting incomplete sideband messages sideband: report unhandled incomplete sideband messages as bugs fmt-merge-msg: also suppress "into main" by default t9801: use `--` in preparation for default branch rename tests: start moving to a different default main branch name t6200: adjust suppression pattern to also match "main" t5703: adjust a test case for the upcoming default branch name t3200: prepare for `main` being shorter than `master` t9902: prepare a test for the upcoming default branch name tests: prepare aligned mentions of the default branch name t1400: prepare for `main` being default branch name t5411: start using the default branch name "main" t5411: start adjusting the support files for init.defaultBranch=main t5411: adjust the remaining support files for init.defaultBranch=main t5411: finish preparing for `main` being the default branch name t5515: use `main` as the name of the main branch for testing (part 1) 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 3) t5515: use `main` as the name of the main branch for testing (conclusion) t2402: fix typo ci: make the whitespace checker more robust tests: consolidate the `file_size` function into `test-lib-functions.sh` ci: avoid using the deprecated `set-env` construct p4: respect init.defaultBranch t1004: insert missing "branch" in a message t3406: indent with tabs, not spaces t3427: adjust stale comment t5400,t5402: consistently indent with tabs, not with spaces t5570: remove trailing padding t9603: use tabs for indentation add -i (built-in): do show an error message for incorrect inputs add -i (built-in): send error messages to stderr add -p (built-in): imitate `xdl_format_hunk_hdr()` generating hunk headers add -i: use `reset_color` consistently add -i (built-in): prevent the `reset` "color" from being configured add -i (built-in): use correct names to load color.diff.* config mergetools/bc: add `bc4` to the alias list for Beyond Compare mergetool: avoid letting `list_tool_variants` break user-defined setups add -p (built-in): do not color the progress indicator separately add -i (built-in): use the same indentation as the Perl version add -i (Perl version): color header to match the C version add -p: prefer color.diff.context over color.diff.plain add -i: verify in the tests that colors can be overridden t2106: adjust style to the current conventions t2106: make test independent of the current main branch name t2106: ensure that the checkout fails for the expected reason t3040: remove stale note t1309: use a neutral branch name in the `onbranch` test cases t4015: let the test pass with any default branch name pull: colorize the hint about setting `pull.rebase` t3404: do not depend on any specific default branch name t5526: avoid depending on a specific default branch name t5526: drop the prereq expecting the default branch name `main` cmake: determine list of extra built-ins dynamically Jonathan Tan (3): apply: when -R, also reverse list of sections sequencer: tolerate abbreviated stopped-sha file usage: add trace2 entry upon warning() Josh Steadmon (12): docs: new capability to advertise session IDs docs: new transfer.advertiseSID option trace2: add a public function for getting the SID upload-pack: advertise session ID in v0 capabilities receive-pack: advertise session ID in v0 capabilities serve: advertise session ID in v2 capabilities transport: log received server session ID fetch-pack: advertise session ID in capabilities upload-pack, serve: log received client session ID send-pack: advertise session ID in capabilities receive-pack: log received client session ID t7900: fix typo: "test_execpt_success" Junio C Hamano (26): doc: preparatory clean-up of description on the sign-off option SubmittingPatches: clarify DCO is our --signoff rule Revert "test_cmp: diagnose incorrect arguments" t7102: prepare expected output inside test_expect_* block other small fixes for 2.29.2 SubmittingPatches: clarify the purpose of the final resend First batch Second batch Makefile: enable -Wsparse-error for DEVELOPER build Third batch log: diagnose -L used with pathspec as an error doc: clarify that --abbrev= is about the minimum length Fourth batch format-patch: make output filename configurable Fifth batch ci: avoid `set-env` construct in print-test-failures.sh Sixth batch Seventh batch MyFirstContribition: answering questions is not the end of the story config doc: value-pattern is not necessarily a regexp Eighth batch Ninth batch Revert "submodules: fix of regression on fetching of non-init subsub-repo" Tenth batch Eleventh batch Git 2.30-rc0 Konrad Borowski (1): userdiff: recognize 'macro_rules!' as starting a Rust function block Kyle Meyer (1): stash: add missing space to an error message Marlon Rac Cambasis (1): doc: fixing two trivial typos in Documentation/ Martin Ågren (5): list-objects-filter-options: fix function name in BUG grep: don't set up a "default" repo for grep grep: use designated initializers for `grep_defaults` grep: copy struct in one fell swoop MyFirstObjectWalk: drop `init_walken_defaults()` Matheus Tavares (2): worktree: fix order of arguments in error message apply: don't use core.sharedRepository to create working tree files Michał Kępień (2): merge-base, xdiff: zero out xpparam_t structures diff: add -I that ignores matching changes Nate Avers (2): notes.c: fix a segfault in notes_display_config() t3301: test proper exit response to no-value notes.displayRef. Nicolas Morey-Chaisemartin (1): imap-send: parse default git config Nipunn Koorapati (17): t/perf/README: elaborate on output format t/perf/p7519-fsmonitor.sh: warm cache on first git status t/perf: add fsmonitor perf test for git diff perf lint: add make test-lint to perf tests p7519-fsmonitor: refactor to avoid code duplication p7519-fsmonitor: add a git add benchmark t/perf/fsmonitor: separate one time repo initialization t/perf/fsmonitor: move watchman setup to one-time-repo-setup t/perf/fsmonitor: improve error message if typoing hook name t/perf/fsmonitor: factor description out for readability t/perf/fsmonitor: shorten DESC to basename t/perf/fsmonitor: silence initial git commit t/perf/fsmonitor: factor setup for fsmonitor into function t/perf/fsmonitor: initialize test with git reset t/perf/fsmonitor: perf comparison of multiple fsmonitor integrations t/perf/fsmonitor: add benchmark for dirty status perf/fsmonitor: use test_must_be_empty helper Patrick Steinhardt (4): t1400: avoid touching refs on filesystem update-ref: allow creation of multiple transactions p1400: use `git-update-ref --stdin` to test multiple transactions update-ref: disallow "start" for ongoing transactions Peter Kaestle (1): submodules: fix of regression on fetching of non-init subsub-repo Philippe Blain (14): ref-filter: handle CRLF at end-of-line more gracefully log, show: add tests for messages containing CRLF doc: log, gitk: move '-L' description to 'line-range-options.txt' doc: line-range: improve formatting blame-options.txt: also mention 'funcname' in '-L' description doc: add more pointers to gitattributes(5) for userdiff line-log: mention both modes in 'blame' and 'log' short help blame: enable funcname blaming with userdiff driver blame: simplify 'setup_scoreboard' interface blame: simplify 'setup_blame_bloom_data' interface pull --rebase: compute rebase arguments in separate function t5572: add notes on a peculiar test t5572: describe '--rebase' tests a little more pull: check for local submodule modifications with the right range Phillip Wood (4): rebase -i: stop overwriting ORIG_HEAD buffer rebase -i: use struct object_id rather than looking up commit rebase -i: use struct object_id when writing state rebase -i: simplify get_revision_ranges() Pranit Bauva (7): bisect--helper: finish porting `bisect_start()` to C bisect--helper: retire `--bisect-clean-state` subcommand bisect--helper: retire `--next-all` subcommand bisect--helper: reimplement `bisect_state` & `bisect_head` shell functions in C bisect--helper: retire `--check-expected-revs` subcommand bisect--helper: retire `--write-terms` subcommand bisect--helper: retire `--bisect-autostart` subcommand Rafael Silva (2): worktree: teach `list` to annotate locked worktree maintenance: fix SEGFAULT when no repository René Scharfe (19): Makefile: use git init/add/commit/archive for dist-doc Makefile: remove the unused variable TAR_DIST_EXTRA_OPTS grep: handle deref_tag() returning NULL blame: handle deref_tag() returning NULL line-log: handle deref_tag() returning NULL object: allow clear_commit_marks_all to handle any repo bisect: clear flags in passed repository stash: simplify reflog emptiness check pack-write: use hashwrite_be32() instead of double-buffering array archive: support compression levels beyond 9 blame: silently ignore invalid ignore file objects csum-file: add hashwrite_be64() midx: use hashwrite_be64() pack-write: use hashwrite_be64() diff-lib: plug minor memory leaks in do_diff_cache() archive: release refname after use gc: fix cast in compare_tasks_by_selection() fetch-pack: disregard invalid pack lockfiles gitignore: remove entry for git serve Robert Karszniewicz (2): git-completion.bash: __git_diff_common_options: add --[no-]patch git-completion.bash: stash-show: complete $__git_diff_common_options SZEDER Gábor (4): bisect: loosen halfway() check for a large number of commits t5310-pack-bitmaps: skip JGit tests with SHA256 tests: make sure nested lazy prereqs work reliably tests: fix description of 'test_set_prereq' Samuel Čavoj (3): sequencer: fix gpg option passed to merge subcommand sequencer: pass explicit --no-gpg-sign to merge t3435: add tests for rebase -r GPG signing Sean Barag (7): clone: add tests for --template and some disallowed option pairs clone: use more conventional config/option layering remote: add tests for add and rename with invalid names refs: consolidate remote name validation clone: validate --origin option before use clone: read new remote name from remote_name instead of option_origin clone: allow configurable default for `-o`/`--origin` Sergey Organov (2): doc/diff-options: fix out of place mentions of '--patch/-p' glossary: improve "branch" definition Sibo Dong (1): git-prompt.sh: localize `option` in __git_ps1_show_upstream Simão Afonso (1): crendential-store: use timeout when locking file Sohom Datta (1): userdiff: expand detected chunk headers for css Srinidhi Kaushik (3): push: add reflog check for "--force-if-includes" push: parse and set flag for "--force-if-includes" t, doc: update tests, reference for "--force-if-includes" Taylor Blau (5): builtin/repack.c: keep track of what pack-objects wrote builtin/repack.c: don't move existing packs out of the way packfile.c: protect against disappearing indexes midx.c: protect against disappearing packs builtin/bugreport.c: use thread-safe localtime_r() Thomas Koutcher (1): credential: load default config Victor Engmark (1): userdiff: support Bash brian m. carlson (1): svn: use correct variable name for short OID Ævar Arnfjörð Bjarmason (8): remote: add meaningful exit code on missing/existing config.mak.uname: remove unused the NO_R_TO_GCC_LINKER flag config.mak.uname: remove unused NEEDS_SSL_WITH_CURL flag submodule: use "fetch" logic instead of custom remote discovery submodule: remove sh function in favor of helper parse-remote: remove this now-unused library gc docs: change --keep-base-pack to --keep-largest-pack gc: rename keep_base_pack variable for --keep-largest-pack Štěpán Němec (1): config.txt: fix a typo (backslash != backquote) Version v2.29.3; changes since v2.29.2: --------------------------------------- Johannes Schindelin (14): run-command: invalidate lstat cache after a command finished Git 2.17.6 Git 2.18.5 Git 2.19.6 Git 2.20.5 Git 2.21.4 Git 2.22.5 Git 2.23.4 Git 2.24.4 Git 2.25.5 Git 2.26.3 Git 2.27.1 Git 2.28.1 Git 2.29.3 Matheus Tavares (2): checkout: fix bug that makes checkout follow symlinks in leading path unpack_trees(): start with a fresh lstat cache Version v2.29.2; changes since v2.29.1: --------------------------------------- Christian Couder (1): filter-branch doc: fix filter-repo typo Jeff King (3): t3436: check --committer-date-is-author-date result more carefully am: fix broken email with --committer-date-is-author-date rebase: fix broken email with --committer-date-is-author-date Junio C Hamano (1): Git 2.29.2 Version v2.29.1; changes since v2.29.0: --------------------------------------- Johannes Schindelin (1): SKIP_DASHED_BUILT_INS: do not skip the bin/ programs Junio C Hamano (1): Git 2.29.1 Version v2.29.0; changes since v2.29.0-rc2: ------------------------------------------- Alessandro Menti (2): l10n: it.po: update the Italian translation for Git 2.29.0 round 1 l10n: it.po: update the Italian translation Alexander Shopov (1): l10n: bg.po: Updated Bulgarian translation (5013t) Daniel Santos (2): l10n: Portuguese translation team has changed. Wohoo! l10n: pt_PT: make on po/pt_PT.po Emir Sarı (2): l10n: tr: v2.29.0 round 1 l10n: tr: v2.29.0 round 2 Jean-Noël Avila (2): l10n: fr: v2.29.0 rnd 1 l10n: fr: v2.29.0 rnd 2 Jiang Xin (3): l10n: git.pot: v2.29.0 round 1 (124 new, 42 removed) l10n: git.pot: v2.29.0 round 2 (1 new, 1 removed) l10n: zh_CN: for git v2.29.0 l10n round 1 and 2 Jordi Mas (1): l10n: Update Catalan translation Junio C Hamano (1): Git 2.29 Matthias Rüster (1): l10n: de.po: Update German translation for Git 2.29.0 Peter Krefting (1): l10n: sv.po: Update Swedish translation (5013t0f0u) Serg Tereshchenko (2): git-gui: fix mixed tabs and spaces; prefer tabs git-gui: improve dark mode support Stefan Haller (1): git-gui: blame: prevent tool tips from sticking around after Command-Tab Trần Ngọc Quân (1): l10n: vi(5013t): Updated translation for v2.29.0 rd2 Yi-Jyun Pan (1): l10n: zh_TW.po: v2.29.0 round 2 (2 untranslated) Version v2.29.0-rc2; changes since v2.29.0-rc1: ----------------------------------------------- Junio C Hamano (1): Git 2.29-rc2 Version v2.29.0-rc1; changes since v2.29.0-rc0: ----------------------------------------------- Denton Liu (2): compat/mingw.h: drop extern from function declaration Makefile: ASCII-sort += lists Jean-Noël Avila (4): git-bisect-lk2009: make continuation of list indented doc: use linkgit macro where needed. doc: git-remote fix ups doc: fix the bnf like style of some commands Jeff King (2): index-pack: restore "resolving deltas" progress meter index-pack: drop type_cas mutex Johannes Schindelin (6): GitHub workflow: automatically follow minor updates of setup-msbuild help: do not expect built-in commands to be hardlinked t1415: avoid using `main` as ref name tests: avoid using the branch name `main` ci: skip GitHub workflow runs for already-tested commits/trees ci: do not skip tagged revisions in GitHub workflows Jonathan Tan (1): index-pack: make get_base_data() comment clearer Junio C Hamano (1): Git 2.29-rc1 Đoàn Trần Công Danh (1): t5534: split stdout and stderr redirection Version v2.29.0-rc0; changes since v2.28.1: ------------------------------------------- Aaron Lipman (12): t6030: modernize "git bisect run" tests rev-list: allow bisect and first-parent flags cmd_bisect__helper: defer parsing no-checkout flag bisect: introduce first-parent flag bisect: combine args passed to find_bisection() bisect: add first-parent option to documentation t3200: clean side effect of git checkout --orphan t3201: test multiple branch filter combinations Doc: cover multiple contains/no-contains filters ref-filter: allow merged and no-merged filters ref-filter: make internal reachable-filter API more precise Doc: prefer more specific file name Adrian Moennich (1): ci: fix inconsistent indentation Alban Gruin (1): t6300: fix issues related to %(contents:size) Alex Henrie (1): pull: don't warn if pull.ff has been set Alex Riesen (1): fetch: pass --ipv4 and --ipv6 options to sub-fetches Andrei Rybak (1): git-help.txt: fix mentions of option --guides Antti Keränen (1): rebase -i: fix possibly wrong onto hash in todo Beat Bolli (1): gitk: rename "commit summary" to "commit reference" Ben Wijen (1): git clone: don't clone into non-empty directory Chris Torek (1): git-mv: improve error message for conflicted file Christian Couder (4): Documentation: clarify %(contents:XXXX) doc t6300: test refs pointing to tree and blob ref-filter: add support for %(contents:size) bisect: don't use invalid oid as rev when starting Christian Schlack (1): remote: don't show success message when set-head fails Conor Davis (1): commit-graph-format.txt: fix no-parent value Danny Lin (2): contrib/subtree: fix "unsure" for --message in the document contrib/subtree: document 'push' does not take '--squash' Denton Liu (11): t3701: stop using `env` in force_color() t5324: reorder `run_with_limited_open_files test_might_fail` t7107: don't use test_must_fail() t9834: remove use of `test_might_fail p4` t9400: don't use test_must_fail with cvs test-lib-functions: restrict test_must_fail usage contrib/completion: complete options that take refs for format-patch hooks--pre-push.sample: modernize script hooks--pre-push.sample: use hash-agnostic zero OID hooks--update.sample: use hash-agnostic zero OID gitk: replace tabs with spaces Derrick Stolee (22): commit-graph: place bloom_settings in context commit-graph: change test to die on parse, not load bloom: fix logic in get_bloom_filter() commit-graph: persist existence of changed-paths revision.c: fix whitespace multi-pack-index: repack batches below --batch-size t/README: document GIT_TEST_DEFAULT_HASH commit-graph: use the "hash version" byte multi-pack-index: use hash version byte bloom/diff: properly short-circuit on max_changes maintenance: create basic maintenance runner maintenance: add --quiet option maintenance: replace run_auto_gc() maintenance: initialize task array maintenance: add commit-graph task maintenance: add --task option maintenance: take a lock on the objects directory maintenance: create maintenance..enabled config maintenance: use pointers to check --auto maintenance: add auto condition for commit-graph task maintenance: add trace2 regions for task execution commit-reach: fix in_merge_bases_many bug Drew DeVault (1): git-send-email: die if sendmail.* config is set Edmundo Carmona Antoranz (1): blame.c: replace instance of !oidcmp for oideq Elijah Newren (26): Remove doubled words in various comments hashmap: fix typo in usage docs merge-recursive: fix unclear and outright wrong comments t6038: make tests fail for the right reason t6038: remove problematic test merge: make merge.renormalize work for all uses of merge machinery checkout: support renormalization with checkout -m Collect merge-related tests to t64xx t6418: tighten delete/normalize conflict testcase t6422: fix bad check against missing file t6416, t6422: fix incorrect untracked file count t6423: fix test setup for a couple tests t6422: fix multiple errors with the mod6 test expectations t6416, t6423: clarify some comments and fix some typos t6423: add an explanation about why one of the tests does not pass t6422, t6426: be more flexible for add/add conflicts involving renames t642[23]: be more flexible for add/add conflicts involving pair renames t6425: be more flexible with rename/delete conflict messages t3000: fix some test description typos dir: avoid prematurely marking nonbare repositories as matches sequencer: avoid garbled merge machinery messages due to commit labels mem-pool: add convenience functions for strdup and strndup mem-pool: use more standard initialization and finalization mem-pool: use consistent pool variable name dir: make clear_directory() free all relevant memory dir: fix problematic API to avoid memory leaks Emily Shaffer (1): Revert "contrib: subtree: adjust test to change in fmt-merge-msg" Eric Huber (1): gitk: Preserve window dimensions on exit when not using ttk themes Eric Sunshine (22): worktree: drop pointless strbuf_release() worktree: drop unused code from get_linked_worktree() worktree: drop bogus and unnecessary path munging worktree: retire special-case normalization of main worktree path git-worktree.txt: employ fixed-width typeface consistently git-worktree.txt: consistently use term "working tree" git-worktree.txt: fix minor grammatical issues git-worktree.txt: make start of new sentence more obvious git-worktree.txt: link to man pages when citing other Git commands test_cmp: diagnose incorrect arguments init: disallow --separate-git-dir with bare repository worktree: add skeleton "repair" command worktree: teach "repair" to fix worktree back-links to main worktree worktree: teach "repair" to fix outgoing links to worktrees init: teach --separate-git-dir to repair linked worktrees init: make --separate-git-dir work from within linked worktree git-checkout.txt: document -d short option for --detach worktree: teach `add` to recognize -d as shorthand for --detach git-worktree.txt: discuss branch-based vs. throwaway worktrees diff: move show_interdiff() from its own file to diff-lib diff-lib: tighten show_interdiff()'s interface format-patch: use 'origin' as start of current-series-range when known Evan Gates (1): Doc: show example scissors line Han Xin (1): send-pack: run GPG after atomic push checking Han-Wen Nienhuys (17): lib-t6000.sh: write tag using git-update-ref t3432: use git-reflog to inspect the reflog for HEAD bisect: treat BISECT_HEAD as a pseudo ref t1400: use git rev-parse for testing PSEUDOREF existence Modify pseudo refs through ref backend storage Make HEAD a PSEUDOREF rather than PER_WORKTREE. refs: move the logic to add \t to reflog to the files backend refs: split off reading loose ref data in separate function refs: fix comment about submodule ref_stores refs: move gitdir into base ref_store refs: read FETCH_HEAD and MERGE_HEAD generically refs: make refs_ref_exists public sequencer: treat CHERRY_PICK_HEAD as a pseudo ref builtin/commit: suggest update-ref for pseudoref removal sequencer: treat REVERT_HEAD as a pseudo ref refs: move REF_LOG_ONLY to refs-internal.h refs: add GIT_TRACE_REFS debugging mechanism Hariom Verma (10): t6300: unify %(trailers) and %(contents:trailers) tests ref-filter: 'contents:trailers' show error if `:` is missing ref-filter: support different email formats ref-filter: refactor `grab_objectname()` ref-filter: modify error messages in `grab_objectname()` ref-filter: rename `objectname` related functions and fields ref-filter: add `short` modifier to 'tree' atom ref-filter: add `short` modifier to 'parent' atom pretty: refactor `format_sanitized_subject()` ref-filter: add `sanitize` option for 'subject' atom Hugo Locurcio (1): bisect: swap command-line options in documentation Jacob Keller (4): refspec: fix documentation referring to refspec_item refspec: make sure stack refspec_item variables are zeroed refspec: add support for negative refspecs format-patch: teach format.useAutoBase "whenAble" option Jeff Hostetler (1): mingw: improve performance of mingw_unlink() Jeff King (80): t6000: use test_tick consistently t9700: loosen ident timezone regex t5539: make timestamp requirements more explicit t9100: explicitly unset GIT_COMMITTER_DATE test-lib: set deterministic default author/committer date t9100: stop depending on commit timestamps verify_repository_format(): complain about new extensions in v0 repo argv-array: use size_t for count and alloc argv-array: rename to strvec strvec: rename files from argv-array to strvec quote: rename sq_dequote_to_argv_array to mention strvec strvec: convert builtin/ callers away from argv_array name strvec: convert more callers away from argv_array name strvec: convert remaining callers away from argv_array name strvec: fix indentation in renamed calls strvec: update documention to avoid argv_array strvec: drop argv_array compatibility layer log: drop "--cc implies -m" logic revision: add "--no-diff-merges" option to counteract "-m" log: enable "-m" automatically with "--first-parent" doc/git-log: move "Diff Formatting" from rev-list-options doc/git-log: drop "-r" diff option doc/git-log: move "-t" into diff-options list doc/git-log: clarify handling of merge commit diffs strvec: rename struct fields config: work around gcc-10 -Wstringop-overflow warning revision: avoid out-of-bounds read/write on empty pathspec revision: avoid leak when preparing bloom filter for "/" t5616: use test_i18ngrep for upload-pack errors sideband: mark "remote error:" prefix for translation t1416: avoid hard-coded sha1 ids t8003: check output of coalesced blame t8003: factor setup out of coalesce test blame: only coalesce lines that are adjacent in result Makefile: drop builtins from MSVC pdb list make credential helpers builtins make git-bugreport a builtin make git-fast-import a builtin drop vcs-svn experiment stop calling UNLEAK() before die() ls-remote: simplify UNLEAK() usage clear_pattern_list(): clear embedded hashmaps submodule--helper: use strbuf_release() to free strbufs checkout: fix leak of non-existent branch names config: fix leaks from git_config_get_string_const() config: drop git_config_get_string_const() config: fix leak in git_config_get_expiry_in_days() submodule--helper: fix leak of core.worktree value p5302: disable thread-count parameter tests by default p5302: count up to online-cpus for thread tests index-pack: adjust default threading cap revision: set rev_input_given in handle_revision_arg() worktree: fix leak in check_clean_worktree() xrealloc: do not reuse pointer freed by zero-length realloc() add-patch: fix inverted return code of repo_read_index() add--interactive.perl: specify --no-color explicitly packfile: actually set approximate_object_count_valid diff-highlight: correctly match blank lines for flush bswap.h: drop unaligned loads Revert "fast-export: use local array to store anonymized oid" shortlog: change "author" variables to "ident" protocol: re-enable v2 protocol by default shortlog: add grouping option trailer: add interface for iterating over commit trailers shortlog: match commit trailers with --group shortlog: de-duplicate trailer values shortlog: rename parse_stdin_ident() shortlog: parse trailer idents shortlog: allow multiple groups to be specified convert: drop unused crlf_action from check_global_conv_flags_eol() drop unused argc parameters env--helper: write to opt->value in parseopt helper assert PARSE_OPT_NONEG in parse-options callbacks push: drop unused repo argument to do_push() sequencer: drop repository argument from run_git_commit() sparse-checkout: fill in some options boilerplate test-advise: check argument count with argc instead of argv sequencer: handle ignore_footer when parsing trailers dir.c: drop unused "untracked" from treat_path_fast() combine-diff: handle --find-object in multitree code path Jiang Xin (10): transport: not report a non-head push as a branch t5411: add basic test cases for proc-receive hook receive-pack: add new proc-receive hook receive-pack: feed report options to post-receive New capability "report-status-v2" for git-push doc: add document for capability report-status-v2 receive-pack: new config receive.procReceiveRefs t5411: test updates of remote-tracking branches transport: parse report options for tracking refs doc: add documentation for the proc-receive hook Johannes Berg (2): pack-write/docs: update regarding pack naming docs: commit-graph: fix some whitespace in the diagram Johannes Schindelin (20): t3404: prepare 'short SHA-1 collision' tests for SHA-256 ci: fix indentation of the `ci-config` job ci: avoid ugly "failure" in the `ci-config` job t/test-terminal: avoid non-inclusive language fast-export: avoid using unnecessary language in a code comment t3200: avoid variations of the `master` branch name msvc: copy the correct `.pdb` files in the Makefile target `install` Optionally skip linking/copying the built-ins ci: stop linking built-ins to the dashed versions cmake: ignore files generated by CMake as run in Visual Studio tests: avoid variations of the `master` branch name t9902: avoid using the branch name `master` cmake: do find Git for Windows' shell interpreter cmake: ensure that the `vcpkg` packages are found on Windows cmake: fall back to using `vcpkg`'s `msgfmt.exe` on Windows cmake: quote the path accurately when editing `test-lib.sh` cmake (Windows): let the `.dll` files be found when running the tests cmake (Windows): complain when encountering an unknown compiler cmake (Windows): initialize vcpkg/build dependencies automatically cmake (Windows): recommend using Visual Studio's built-in CMake support Johannes Sixt (1): gitk: Un-hide selection in areas with non-default background color Jonathan Tan (32): upload-pack: do not lazy-fetch "have" objects pack-objects: refactor to oid_object_info_extended pack-objects: prefetch objects to be packed sha1-file: make pretend_object_file() not prefetch sha1-file: introduce no-lazy-fetch has_object() apply: do not lazy fetch when applying binary pack-objects: no fetch when allow-{any,promisor} fsck: do not lazy fetch known non-promisor object negotiator/noop: add noop fetch negotiator fetch: allow refspecs specified through stdin fetch: avoid reading submodule config until needed fetch: only populate existing_refs if needed fetch-pack: do not lazy-fetch during ref iteration promisor-remote: lazy-fetch objects in subprocess fetch-pack: remove no_dependents code fetch-pack: in partial clone, pass --promisor Documentation: deltaBaseCacheLimit is per-thread index-pack: remove redundant parameter index-pack: unify threaded and unthreaded code index-pack: remove redundant child field index-pack: calculate {ref,ofs}_{first,last} early index-pack: make resolve_delta() assume base data (various): document from_promisor parameter fetch-pack: document only_packfile in get_pack() fetch-pack: make packfile URIs work with transfer.fsckobjects fetch: no FETCH_HEAD display if --no-write-fetch-head sha1-name: replace unsigned int with option struct refs: move dwim_ref() to header file wt-status: tolerate dangling marks index-pack: make quantum of work smaller promisor-remote: remove unused variable fetch: do not override partial clone filter Junio C Hamano (49): gitk: be prepared to be run in a bare repository reflog: cleanse messages in the refs.c layer Revert "fmt-merge-msg: stop treating `master` specially" fmt-merge-msg: allow merge destination to be omitted again First batch post 2.28 The second batch -- mostly minor typofixes Third batch Fourth batch Documentation: don't hardcode command categories twice compat-util: type-check parameters of no-op replacement functions Fifth batch Sixth batch Seventh batch messages: avoid SHA-1 in end-user facing messages Eighth batch fetch: optionally allow disabling FETCH_HEAD update Ninth batch ident: say whose identity is missing when giving user.name hint Tenth batch t3436: do not run git-merge-recursive in dashed form transport-helper: do not run git-remote-ext etc. in dashed form cvsexportcommit: do not run git programs in dashed form run_command: teach API users to use embedded 'args' more credential-cache: use child_process.args Eleventh batch doc: clarify how exit status of post-checkout hook is used Twelfth batch Thirteenth batch add -i: use the built-in version when feature.experimental is set Makefile: allow extra tweaking of distribution tarball Fourteenth batch quote_path: rename quote_path_relative() to quote_path() quote_path: give flags parameter to quote_path() quote_path: optionally allow quoting a path with SP in it quote_path: code clarification wt-status: consistently quote paths in "status --short" output quote: rename misnamed sq_lookup[] to cq_lookup[] quote: turn 'nodq' parameter into a set of flags Fifteenth batch Sixteenth batch t8013: minimum preparatory clean-up blame: validate and peel the object names on the ignore list t1506: rev-parse A..B and A...B sequencer: stop abbreviating stopped-sha file Seventeenth batch Eighteenth batch hashmap_for_each_entry(): workaround MSVC's runtime check failure #3 Nineteenth batch Git 2.29-rc0 Kazuhiro Kato (1): gitk: fix branch name encoding error Kyohei Kadota (1): Fit to Plan 9's ANSI/POSIX compatibility layer Lin Sun (1): mergetool: allow auto-merge for meld to follow the vim-diff behavior Luke Diamand (2): git-p4 unshelve: adding a commit breaks git-p4 unshelve git-p4: use HEAD~$n to find parent commit for unshelve Martin Ågren (19): dir: check pathspecs before returning `path_excluded` t1450: fix quoting of NUL byte when corrupting pack t: don't spuriously close and reopen quotes t4104: modernize and simplify quoting progress: don't dereference before checking for NULL http-protocol.txt: document SHA-256 "want"/"have" format index-format.txt: document SHA-256 index format protocol-capabilities.txt: clarify "allow-x-sha1-in-want" re SHA-256 shallow.txt: document SHA-256 shallow format Documentation: mark `--object-format=sha256` as experimental wt-status: replace sha1 mentions with oid wt-status: print to s->fp, not stdout wt-status: introduce wt_status_state_free_buffers() worktree: inline `worktree_ref()` into its only caller worktree: update renamed variable in comment worktree: rename copy-pasted variable worktree: use skip_prefix to parse target config/fmt-merge-msg.txt: drop space in quote config/uploadpack.txt: fix typo in `--filter=tree:` Matheus Tavares (4): checkout_entry(): remove unreachable error() call config: complain about --worktree outside of a git repo packfile: fix race condition on unpack_entry() packfile: fix memory leak in add_delta_base_cache() Matthew Rogers (1): diff: teach --stat to ignore uninteresting modifications Michael Forney (2): revision: use repository from rev_info when parsing commits submodule: use submodule repository when preparing summary Michal Privoznik (1): completion: add show --color-moved[-ws] Miriam Rubio (4): bisect--helper: BUG() in cmd_*() on invalid subcommand bisect--helper: use '-res' in 'cmd_bisect__helper' return bisect--helper: introduce new `write_in_file()` function bisect: call 'clear_commit_marks_all()' in 'bisect_next_all()' Nikita Leonov (1): credential: treat CR/LF as line endings in the credential protocol Noam Yorav-Raphael (1): docs: improve the example that illustrates git-notes path names Orgad Shaneh (5): vcbuild: fix library name for expat with make MSVC=1 vcbuild: fix batch file name in README fetch: do not look for submodule changes in unchanged refs submodule: suppress checking for file name and ref ambiguity for object ids contrib/buildsystems: fix expat library name for generated vcxproj Patrick Steinhardt (2): refs: fix interleaving hook calls with reference-transaction hook refs: remove lookup cache for reference-transaction hook Paul Mackerras (1): gitk: Resize panes correctly when reducing window size Philippe Blain (19): git-log.txt: add links to 'rev-list' and 'diff' docs revisions.txt: describe 'rev1 rev2 ...' meaning for ranges git-rev-list.txt: fix Asciidoc syntax git-rev-list.txt: tweak wording in set operations git-rev-list.txt: move description to separate file git-log.txt: include rev-list-description.txt command-list.txt: add missing 'gitcredentials' and 'gitremote-helpers' help: drop usage of 'common' and 'useful' for guides git.txt: add list of guides fetch, pull doc: correct description of '--set-upstream' userdiff: add tests for Fortran xfuncname regex userdiff: improve Fortran xfuncname regex git-imap-send.txt: don't duplicate 'Examples' sections git-imap-send.txt: do verify SSL certificate for gmail.com git-imap-send.txt: add note about localized Gmail folders doc: mention GIT_SEQUENCE_EDITOR and 'sequence.editor' more git.txt: correct stale 'GIT_EXTERNAL_DIFF' description Makefile: add support for generating JSON compilation database gitsubmodules doc: invoke 'ls-files' with '--recurse-submodules' Phillip Wood (7): add -p: use ALLOC_GROW_BY instead of ALLOW_GROW add -p: fix checking of user input am: stop exporting GIT_COMMITTER_DATE rebase -i: support --committer-date-is-author-date rebase -i: support --ignore-date add -p: fix memory leak add -p: fix editing of intent-to-add paths Pranit Bauva (2): bisect--helper: reimplement `bisect_autostart` shell function in C bisect--helper: reimplement `bisect_next` and `bisect_auto_next` shell functions in C Prathamesh Chavan (1): submodule: port submodule subcommand 'summary' from shell to C Raymond E. Pasco (6): apply: allow "new file" patches on i-t-a entries blame-options.txt: document --first-parent option apply: make i-t-a entries never match worktree t4140: test apply with i-t-a paths diff-lib: use worktree mode in diffs from i-t-a entries git-apply.txt: update descriptions of --cached, --index René Scharfe (21): read-cache: remove bogus shortcut grep: avoid using oid_to_hex() with parse_object_or_die() bisect: use oid_to_hex_r() instead of memcpy()+oid_to_hex() upload-pack: remove superfluous sigchain_pop() call rebase: remove unused function reschedule_last_action connected: use buffered I/O to talk to rev-list midx: use buffered I/O to talk to pack-objects upload-pack: use buffered I/O to talk to rev-list patch-id: ignore newline at end of file in diff_flush_patch_id() checkout, restore: make pathspec recursive read-cache: fix mem-pool allocation for multi-threaded index loading push: release strbufs used for refspec formatting refspec: add and use refspec_appendf() fast-import: use write_pack_header() midx: use hashwrite_u8() in write_midx_header() pack-bitmap-write: use hashwrite_be32() in write_hash_cache() pack-write: use hashwrite_be32() in write_idx_file() archive: read short blobs in archive.c::write_archive_entry() archive: add --add-file Makefile: use git-archive --add-file ref-filter: plug memory leak in reach_filter() Rohit Ashiwal (2): rebase -i: add --ignore-whitespace flag rebase: add --reset-author-date Ryan Zoeller (2): parse-options: add --git-completion-helper-all completion: add GIT_COMPLETION_SHOW_ALL env var SZEDER Gábor (15): tree-walk.c: don't match submodule entries for 'submod/anything' commit-graph: fix parsing the Chunk Lookup table commit-graph-format.txt: all multi-byte numbers are in network byte order commit-slab: add a function to deep free entries on the slab diff.h: drop diff_tree_oid() & friends' return value commit-graph: clean up #includes commit-graph: simplify parse_commit_graph() #1 commit-graph: simplify parse_commit_graph() #2 commit-graph: simplify write_commit_graph_file() #1 commit-graph: simplify write_commit_graph_file() #2 commit-graph: unify the signatures of all write_graph_chunk_*() functions commit-graph: simplify chunk writes into loop commit-graph: check chunk sizes after writing commit-graph: check all leading directories in changed path Bloom filters ci: use absolute PYTHON_PATH in the Linux jobs Samanta Navarro (1): fast-import: fix typo in documentation Sergey Organov (9): revision: fix die() message for "--unpacked=" revision: change "--diff-merges" option to require parameter doc/git-log: describe --diff-merges=off t/t4013: add test for --diff-merges=off pretty-options.txt: fix --no-abbrev-commit description revision: add separate field for "-m" of "diff-index -m" log_tree_diff: get rid of code duplication for first_parent_only log_tree_diff: get rid of extra check for NULL diff: get rid of redundant 'dense' argument Shourya Shukla (11): submodule: remove extra line feeds between callback struct and macro submodule: rename helper functions to avoid ambiguity t7421: introduce a test script for verifying 'summary' output t7401: modernize style t7401: use 'short' instead of 'verify' and cut in rev-parse calls t7401: change syntax of test_i18ncmp calls for clarity t7401: change indentation for enhanced readability t7401: add a NEEDSWORK submodule: eliminate unused parameters from print_submodule_summary() submodule: fix style in function definition t7421: eliminate 'grep' check in t7421.4 for mingw compatibility Sibi Siddharthan (8): Introduce CMake support for configuring Git cmake: generate the shell/perl/python scripts and templates, translations cmake: installation support for git cmake: support for testing git with ctest cmake: support for testing git when building out of the source tree cmake: support for building git on windows with mingw cmake: support for building git on windows with msvc and clang. ci: modification of main.yml to use cmake for vs-build job Simon Legner (1): remote-mediawiki: fix duplicate revisions being imported Stefan Dotterweich (1): gitk: add diff lines background colors Steve Kemp (1): comment: fix spelling mistakes inside comments Taylor Blau (18): revision: empty pathspecs should not use Bloom filters list_objects_filter_options: introduce 'list_object_filter_config_name' upload-pack.c: allow banning certain object filter(s) upload-pack.c: introduce 'uploadpackfilter.tree.maxDepth' builtin/repack.c: invalidate MIDX only when necessary midx: traverse the local MIDX first commit-graph: introduce 'get_bloom_filter_settings()' t4216: use an '&&'-chain commit-graph: pass a 'struct repository *' in more places t/helper/test-read-graph.c: prepare repo settings commit-graph: respect 'commitGraph.readChangedPaths' commit-graph.c: store maximum changed paths bloom: split 'get_bloom_filter()' in two bloom: use provided 'struct bloom_filter_settings' bloom: encode out-of-bounds filters as non-empty commit-graph: rename 'split_commit_graph_opts' builtin/commit-graph.c: introduce '--max-new-filters=' commit-graph: introduce 'commitGraph.maxNewFilters' Theodore Dubois (1): submodule update: silence underlying merge/rebase with "--quiet" Thomas Guyot-Sionnest (1): diff: fix modified lines stats with --stat and --numstat brian m. carlson (48): remote-curl: make --force-with-lease work with non-ASCII ref names t: make test-bloom initialize repository t1001: use $ZERO_OID t3305: make hash agnostic t6100: make hash size independent t6101: make hash size independent t6301: make hash size independent t6500: specify test values for SHA-256 t6501: avoid hard-coded objects t7003: compute appropriate length constant t7063: make hash size independent t7201: abstract away SHA-1-specific constants t7102: abstract away SHA-1-specific constants t7400: make hash size independent t7405: make hash size independent t7506: avoid checking for SHA-1-specific constants t7508: use $ZERO_OID instead of hard-coded constant t8002: make hash size independent t8003: make hash size independent t8011: make hash size independent t9300: abstract away SHA-1-specific constants t9300: use $ZERO_OID instead of hard-coded object ID t9301: make hash size independent t9350: make hash size independent t9500: ensure that algorithm info is preserved in config t9700: make hash size independent t5308: make test work with SHA-256 t0410: mark test with SHA1 prerequisite http-fetch: set up git directory before parsing pack hashes builtin/verify-pack: implement an --object-format option bundle: add new version for use with SHA-256 setup: add support for reading extensions.objectformat repository: enable SHA-256 support by default t: add test_oid option to select hash algorithm t: allow testing different hash algorithms via environment t: make SHA1 prerequisite depend on default hash ci: run tests with SHA-256 docs: add documentation for extensions.objectFormat t: remove test_oid_init in tests git-cvsexportcommit: support Perl before 5.10.1 docs: document SHA-256 pack and indices docs: fix step in transition plan t4013: improve diff-post-processor logic po: add missing letter for French message docs: explain why squash merges are broken with long-running branches docs: explain why reverts are not always applied on merge docs: explain how to deal with files that are always modified builtin/clone: avoid failure with GIT_DEFAULT_HASH pudinha (2): mergetool--lib: improve support for vimdiff-style tool variants mergetools: add support for nvimdiff (neovim) family Ákos Uzonyi (2): completion: use "prev" variable instead of introducing "prevword" completion: complete refs after 'git restore -s' Ævar Arnfjörð Bjarmason (17): remote-mediawiki doc: correct link to GitHub project remote-mediawiki doc: link to MediaWiki's current version remote-mediawiki doc: don't hardcode Debian PHP versions remote-mediawiki tests: use the login/password variables remote-mediawiki tests: use a 10 character password remote-mediawiki tests: use test_cmp in tests remote-mediawiki tests: change `[]` to `test` remote-mediawiki tests: use "$dir/" instead of "$dir." remote-mediawiki tests: use a more idiomatic dispatch table remote-mediawiki tests: replace deprecated Perl construct remote-mediawiki tests: use inline PerlIO for readability remote-mediawiki tests: use CLI installer remote-mediawiki tests: annotate failing tests remote-mediawiki: provide a list form of run_git() remote-mediawiki: convert to quoted run_git() invocation remote-mediawiki: annotate unquoted uses of run_git() remote-mediawiki: use "sh" to eliminate unquoted commands Đoàn Trần Công Danh (1): diff: index-line: respect --abbrev in object's name Роман Донченко (2): gitk: don't highlight files after submodules as submodules gitk: fix the context menu not appearing in the presence of submodule diffs Version v2.28.1; changes since v2.28.0: --------------------------------------- Johannes Schindelin (13): run-command: invalidate lstat cache after a command finished Git 2.17.6 Git 2.18.5 Git 2.19.6 Git 2.20.5 Git 2.21.4 Git 2.22.5 Git 2.23.4 Git 2.24.4 Git 2.25.5 Git 2.26.3 Git 2.27.1 Git 2.28.1 Matheus Tavares (2): checkout: fix bug that makes checkout follow symlinks in leading path unpack_trees(): start with a fresh lstat cache Version v2.28.0; changes since v2.28.0-rc2: ------------------------------------------- Alessandro Menti (1): l10n: it.po: update the Italian translation for Git 2.28.0 round 1 Bojun Chen (1): githooks.txt: use correct "reference-transaction" hook name Christopher Diaz Riveros (1): l10n: es: 2.28.0 round 1 Emir Sarı (1): l10n: tr: v2.28.0 round 1 Jean-Noël Avila (1): l10n: fr v2.28.0 round 1 Jiang Xin (2): l10n: git.pot: v2.28.0 round 1 (70 new, 14 removed) l10n: zh_CN: for git v2.28.0 l10n round 1 Jordi Mas (1): l10n: Update Catalan translation Junio C Hamano (1): Git 2.28 Matthias Rüster (1): l10n: de.po: Update German translation for Git v2.28.0 Peter Krefting (1): l10n: sv.po: Update Swedish translation (4931t0f0u) Ralf Thielow (1): l10n: de.po: fix grammar Taylor Blau (1): Documentation/RelNotes: fix a typo in 2.28's relnotes Trần Ngọc Quân (1): l10n: vi.po(4931t): Updated translation for v2.28.0 Yi-Jyun Pan (1): l10n: zh_TW.po: v2.28.0 round 1 (0 untranslated) Đoàn Trần Công Danh (1): l10n: vi.po: correct "ident line" translation Version v2.28.0-rc2; changes since v2.28.0-rc1: ----------------------------------------------- David J. Malan (1): git-prompt: change == to = for zsh's sake Junio C Hamano (2): RelNotes: update the v0 with extension situation Git 2.28-rc2 Martin Ågren (2): gitworkflows.txt: fix broken subsection underline t3200: don't grep for `strerror()` string Mikhail Terekhov (1): git-gui: allow opening work trees from the startup dialog Version v2.28.0-rc1; changes since v2.28.0-rc0: ----------------------------------------------- Jonathan Nieder (2): Revert "check_repository_format_gently(): refuse extensions for old repositories" repository: allow repository format upgrade with extensions Junio C Hamano (2): Hopefully the last batch before -rc1 Git 2.28-rc1 Martin Ågren (2): git-diff.txt: don't mark required argument as optional git-diff.txt: reorder possible usages SZEDER Gábor (3): commit-graph: fix progress of reachable commits commit-graph: fix "Writing out commit graph" progress counter commit-graph: fix "Collecting commits from input" progress line Trygve Aaberge (2): Wait for child on signal death for aliases to builtins Wait for child on signal death for aliases to externals Version v2.28.0-rc0; changes since v2.27.1: ------------------------------------------- Abhishek Kumar (4): object: drop parsed_object_pool->commit_count commit-graph: introduce commit_graph_data_slab commit: move members graph_pos, generation to a slab commit-graph: minimize commit_graph_data_slab access Andrew Ng (1): merge: optimization to skip evaluate_result for single strategy Ben Keene (1): git-p4.py: fix --prepare-p4-only error with multiple commits Carlo Marcelo Arenas Belón (5): t/helper: teach test-regex to report pattern errors (like REG_ILLSEQ) t4210: detect REG_ILLSEQ dynamically and skip affected tests bisect--helper: avoid segfault with bad syntax in `start --term-*` t5608: avoid say() and use "skip_all" instead for consistency commit-reach: avoid is_descendant_of() shim Chris Torek (3): t/t3430: avoid undefined git diff behavior git diff: improve range handling Documentation: usage for diff combined commits Christian Couder (40): upload-pack: remove unused 'wants' from upload_pack_data upload-pack: move {want,have}_obj to upload_pack_data upload-pack: move 'struct upload_pack_data' around upload-pack: use 'struct upload_pack_data' in upload_pack() upload-pack: pass upload_pack_data to get_common_commits() upload-pack: pass upload_pack_data to receive_needs() upload-pack: use upload_pack_data writer in receive_needs() upload-pack: move symref to upload_pack_data upload-pack: pass upload_pack_data to send_ref() upload-pack: pass upload_pack_data to check_non_tip() upload-pack: remove static variable 'stateless_rpc' upload-pack: pass upload_pack_data to create_pack_file() upload-pack: use upload_pack_data fields in receive_needs() upload-pack: annotate upload_pack_data fields upload-pack: move static vars to upload_pack_data upload-pack: move use_sideband to upload_pack_data upload-pack: move filter_capability_requested to upload_pack_data upload-pack: move multi_ack to upload_pack_data upload-pack: change multi_ack to an enum upload-pack: pass upload_pack_data to upload_pack_config() upload-pack: move keepalive to upload_pack_data upload-pack: move allow_filter to upload_pack_data upload-pack: move allow_ref_in_want to upload_pack_data upload-pack: move allow_sideband_all to upload_pack_data upload-pack: move pack_objects_hook to upload_pack_data upload-pack: pass upload_pack_data to send_shallow_list() upload-pack: pass upload_pack_data to deepen() upload-pack: pass upload_pack_data to deepen_by_rev_list() upload-pack: pass upload_pack_data to send_unshallow() upload-pack: move shallow_nr to upload_pack_data upload-pack: move extra_edge_obj to upload_pack_data upload-pack: move allow_unadvertised_object_request to upload_pack_data upload-pack: change allow_unadvertised_object_request to an enum upload-pack: pass upload_pack_data to process_haves() upload-pack: pass upload_pack_data to send_acks() upload-pack: pass upload_pack_data to ok_to_give_up() upload-pack: pass upload_pack_data to got_oid() upload-pack: move oldest_have to upload_pack_data upload-pack: refactor common code into do_got_oid() cat-file: add missing [=] to usage/synopsis Denton Liu (18): lib-submodule-update: add space after function name lib-submodule-update: consolidate --recurse-submodules remote-curl: fix typo remote-curl: remove label indentation transport: extract common fetch_pack() call pkt-line: extern packet_length() remote-curl: error on incomplete packet pkt-line: define PACKET_READ_RESPONSE_END stateless-connect: send response end packet t/README: avoid poor-man's small caps GIT CodingGuidelines: specify Python 2.7 is the oldest version lib-submodule-update: prepend "git" to $command t3200: rename "expected" to "expect" t3200: test for specific errors branch: don't mix --edit-description builtin/diff: update usage comment builtin/diff: fix botched update of usage comment lib-submodule-update: pass 'test_must_fail' as an argument Derrick Stolee (3): line-log: integrate with changed-path Bloom filters commit-reach: create repo_is_descendant_of() commit-reach: use fast logic in repo_in_merge_base Don Goodman-Wilson (1): init: allow setting the default for the initial branch name via the config Elijah Newren (11): fast-import: add new --date-format=raw-permissive format sparse-checkout: avoid staging deletions of all files dir: fix treatment of negated pathspecs git-sparse-checkout: clarify interactions with submodules dir: fix a few confusing comments dir, clean: avoid disallowed behavior clean: consolidate handling of ignored parameters clean: optimize and document cases where we recurse into subdirectories wt-status: show sparse checkout status as well git-prompt: document how in-progress operations affect the prompt git-prompt: include sparsity state as well Emily Shaffer (3): help: add shell-path to --build-options bugreport: include user interactive shell docs: mention MyFirstContribution in more places Eric Sunshine (10): worktree: factor out repeated string literal worktree: give "should be pruned?" function more meaningful name worktree: make high-level pruning re-usable worktree: prune duplicate entries referencing same worktree path worktree: prune linked worktree referencing main worktree path worktree: generalize candidate worktree path validation worktree: make "move" refuse to move atop missing registered worktree worktree: drop get_worktrees() special-purpose sorting option worktree: drop get_worktrees() unused 'flags' argument worktree: avoid dead-code in conditional Han-Wen Nienhuys (5): refs.h: clarify reflog iteration order t: use update-ref and show-ref to reading/writing refs refs: improve documentation for ref iterator reftable: clarify how empty tables should be written reftable: define version 2 of the spec to accomodate SHA256 Jacob Keller (16): completion: add test showing subpar git switch completion completion: add tests showing subpar DWIM logic for switch/checkout completion: add tests showing subar checkout --detach logic completion: add tests showing subpar switch/checkout --track logic completion: add tests showing subpar -c/-C startpoint completion completion: add tests showing subpar -c/C argument completion completion: add tests showing subpar switch/checkout --orphan logic completion: replace overloaded track term for __git_complete_refs completion: extract function __git_dwim_remote_heads completion: perform DWIM logic directly in __git_complete_refs completion: improve handling of DWIM mode for switch/checkout completion: improve completion for git switch with no options completion: improve handling of --detach in checkout completion: improve handling of --track in switch/checkout completion: improve handling of -c/-C and -b/-B in switch/checkout completion: improve handling of --orphan option of switch/checkout Jeff King (14): diff: discard blob data from stat-unmatched pairs upload-pack: actually use some upload_pack_data bitfields t9351: derive anonymized tree checks from original repo fast-export: use xmemdupz() for anonymizing oids fast-export: store anonymized oids as hex strings fast-export: tighten anonymize_mem() interface to handle only strings fast-export: stop storing lengths in anonymized hashmaps fast-export: use a flex array to store anonymized entries fast-export: move global "idents" anonymize hashmap into function fast-export: add a "data" callback parameter to anonymize_str() fast-export: allow seeding the anonymized mapping fast-export: anonymize "master" refname fast-export: use local array to store anonymized oid diff: check for merge bases before assigning sym->base Jiuyang Xie (1): doc: fix wrong 4-byte length of pkt-line message Johannes Schindelin (16): checkout -p: handle new files correctly clone/fetch: anonymize URLs in the reflog msvc: fix "REG_STARTEND" issue fmt-merge-msg: stop treating `master` specially send-pack/transport-helper: avoid mentioning a particular branch submodule: fall back to remote's HEAD for missing remote..branch docs: add missing diamond brackets init: allow specifying the initial branch name for the new repository clone: use configured default branch name when appropriate remote: use the configured default branch name when appropriate testsvn: respect `init.defaultBranch` docs: adjust for the recent rename of `pu` to `seen` docs: adjust the technical overview for the rename `pu` -> `seen` tests: reference `seen` wherever `pu` was referenced diff-files --raw: show correct post-image of intent-to-add files difftool -d: ensure that intent-to-add files are handled correctly John Lin (1): bash-completion: add git-prune into bash completion Jonathan Nieder (3): config: let feature.experimental imply protocol.version=2 reftable: file format documentation experimental: default to fetch.writeCommitGraph=false Jonathan Tan (12): t5551: test that GIT_TRACE_CURL redacts password http, imap-send: stop using CURLOPT_VERBOSE http: redact all cookies, teach GIT_TRACE_REDACT=0 http: use --stdin when indexing dumb HTTP pack http: refactor finish_http_pack_request() http-fetch: refactor into function http-fetch: support fetching packfiles by URL Documentation: order protocol v2 sections Documentation: add Packfile URIs design doc upload-pack: refactor reading of pack-objects out fetch-pack: support more than one pack lockfile upload-pack: send part of packfile response as uri Josh Steadmon (1): fuzz-commit-graph: properly free graph struct Junio C Hamano (8): Start the post 2.27 cycle The second batch The third batch The fourth batch The fifth batch The sixth batch The seventh batch Git 2.28-rc0 Laurent Arnoud (1): diff: add config option relative Luc Van Oostenryck (1): sparse: allow '{ 0 }' to be used without warnings Marco Trevisan (Treviño) (1): completion: use native ZSH array pattern matching Martin Ågren (1): git-rebase.txt: fix description list separator Matheus Tavares (1): entry: check for fstat() errors after checkout Miroslav Koškár (1): doc: fix author vs. committer copy/paste error Paolo Bonzini (1): t4014: do not use "slave branch" nomenclature Patrick Steinhardt (1): refs: implement reference transaction hook Rafael Aquini (1): send-email: restore --in-reply-to superseding behavior Ramsay Jones (1): upload-pack: fix a sparse '0 as NULL pointer' warning Randall S. Becker (2): bugreport.c: replace strbuf_write_fd with write_in_full strbuf: remove unreferenced strbuf_write_fd method. René Scharfe (10): fsck: fix a typo in a comment t1450: increase test coverage of in-tree d/f detection t1450: demonstrate undetected in-tree d/f conflict fsck: detect more in-tree d/f conflicts checkout: add tests for -b and --track checkout: improve error messages for -b with extra argument commit-reach: plug minor memory leak after using is_descendant_of() pull: plug minor memory leak after using is_descendant_of() revision: reallocate TOPO_WALK object flags revision: disable min_age optimization with line-log SZEDER Gábor (4): line-log: remove unused fields from 'struct line_log_data' t4211-line-log: add tests for parent oids line-log: more responsive, incremental 'git log -L' line-log: try to use generation number-based topo-ordering Shourya Shukla (1): submodule: port subcommand 'set-branch' from shell to C Srinidhi Kaushik (1): diff-files: treat "i-t-a" files as "not-in-index" Taylor Blau (11): commit-graph.c: extract 'refs_cb_data' commit-graph.c: show progress of finding reachable commits commit-graph.c: peel refs in 'add_ref_to_set' builtin/commit-graph.c: extract 'read_one_commit()' builtin/commit-graph.c: dereference tags in builtin commit-graph.c: simplify 'fill_oids_from_commits' t5318: reorder test below 'graph_read_expect' commit-graph: drop COMMIT_GRAPH_WRITE_CHECK_OIDS flag t5318: use 'test_must_be_empty' t5318: test that '--stdin-commits' respects '--[no-]progress' commit.c: don't persist substituted parents when unshallowing Ville Skyttä (2): completion: don't override given stash subcommand with -p completion: nounset mode fixes Xin Li (4): repository: add a helper function to perform repository format upgrade fetch: allow adding a filter after initial clone sparse-checkout: upgrade repository to version 1 when enabling extension check_repository_format_gently(): refuse extensions for old repositories brian m. carlson (61): t1050: match object ID paths in a hash-insensitive way Documentation: document v1 protocol object-format capability builtin/checkout: simplify metadata initialization t2060: add a test for switch with --orphan and --discard-changes connect: have ref processing code take struct packet_reader wrapper: add function to compare strings with different NUL termination remote: advertise the object-format capability on the server side connect: add function to parse multiple v1 capability values connect: add function to fetch value of a v2 server capability pkt-line: add a member for hash algorithm transport: add a hash algorithm member connect: add function to detect supported v1 hash functions send-pack: detect when the server doesn't support our hash connect: make parse_feature_value extern fetch-pack: detect when the server doesn't support our hash connect: detect algorithm when fetching refs builtin/receive-pack: detect when the server doesn't support our hash docs: update remote helper docs for object-format extensions transport-helper: implement object-format extensions remote-curl: implement object-format extensions builtin/clone: initialize hash algorithm properly t5562: pass object-format in synthesized test data fetch-pack: parse and advertise the object-format capability setup: set the_repository's hash algo when checking format t3200: mark assertion with SHA1 prerequisite packfile: compute and use the index CRC offset t5302: modernize test formatting builtin/show-index: provide options to determine hash algo t1302: expect repo format version 1 for SHA-256 Documentation/technical: document object-format for protocol v2 connect: pass full packet reader when parsing v2 refs connect: parse v2 refs with correct hash algorithm serve: advertise object-format capability for protocol v2 t5500: make hash independent builtin/ls-remote: initialize repository based on fetch remote-curl: detect algorithm for dumb HTTP by size builtin/index-pack: add option to specify hash algorithm t1050: pass algorithm to index-pack when outside repo remote-curl: avoid truncating refs with ls-remote t/helper: initialize the repository for test-sha1-array t5702: offer an object-format capability in the test t5703: use object-format serve option t5704: send object-format capability with SHA-256 t5300: pass --object-format to git index-pack bundle: detect hash algorithm when reading refs remote-testgit: adapt for object-format t9109: make test hash independent t9168: make test hash independent t9108: make test hash independent t9100: make test work with SHA-256 t9104: make hash size independent t9101: make hash independent t/lib-git-svn: make hash size independent perl: create and switch variables for hash constants perl: make Git::IndexInfo work with SHA-256 perl: make SVN code hash independent git-svn: set the OID length based on hash algorithm git-cvsserver: port to SHA-256 git-cvsimport: port to SHA-256 git-cvsexportcommit: port to SHA-256 http-push: ensure unforced pushes fail when data would be lost Đoàn Trần Công Danh (1): contrib: subtree: adjust test to change in fmt-merge-msg Version v2.27.1; changes since v2.27.0: --------------------------------------- Johannes Schindelin (12): run-command: invalidate lstat cache after a command finished Git 2.17.6 Git 2.18.5 Git 2.19.6 Git 2.20.5 Git 2.21.4 Git 2.22.5 Git 2.23.4 Git 2.24.4 Git 2.25.5 Git 2.26.3 Git 2.27.1 Matheus Tavares (2): checkout: fix bug that makes checkout follow symlinks in leading path unpack_trees(): start with a fresh lstat cache Version v2.27.0; changes since v2.27.0-rc2: ------------------------------------------- Alessandro Menti (2): l10n: it.po: update the Italian translation for Git 2.27.0 round 1 l10n: it.po: update for Git 2.27.0 round #2 Alexander Shopov (2): l10n: bg.po: Updated Bulgarian translation (4868t) l10n: bg.po: Updated Bulgarian translation (4875t) Carlo Marcelo Arenas Belón (1): t: avoid alternation (not POSIX) in grep's BRE Christopher Diaz Riveros (1): l10n: es: 2.27.0 round 1 Emir Sarı (2): l10n: tr: v2.27.0 round 1 l10n: tr: v2.27.0 round 2 Jan Engelhardt (1): l10n: de.po: Fix typo in the German translation of octopus Jean-Noël Avila (2): l10n: fr v2.27.0 rnd 1 l10n: fr.po v2.27.0 rnd 2 Jiang Xin (3): l10n: git.pot: v2.27.0 round 1 (72 new, 37 removed) l10n: git.pot: v2.27.0 round 2 (+1) l10n: zh_CN: for git v2.27.0 l10n round 1~2 Jordi Mas (3): l10n: Update Catalan translation l10n: Update Catalan translation l10n: Update Catalan translation Junio C Hamano (1): Git 2.27 Martin Ågren (1): rev-list-options.txt: start a list for `show-pulls` Matthias Rüster (1): l10n: de.po: Update German translation for Git 2.27.0 Peter Krefting (2): l10n: sv.po: Update Swedish translation (4839t0f0u) l10n: sv.po: Update Swedish translation (4875t0f0u) Toon Claes (1): Documentation: correct hash environment variable Trần Ngọc Quân (2): l10n: vi(4874t): Updated Vietnamses translation for 2.27.0 l10n: vi(4875t): Updated Vietnamses translation for 2.27.0rd2 Yi-Jyun Pan (2): l10n: zh_TW.po: v2.27.0 round 1 (0 untranslated) l10n: zh_TW.po: v2.27.0 round 2 (0 untranslated) Đoàn Trần Công Danh (1): ci/config: correct instruction for CI preferences Version v2.27.0-rc2; changes since v2.27.0-rc1: ----------------------------------------------- Ansgar Röber (1): Subject: git-gui: fix syntax error because of missing semicolon Carlo Marcelo Arenas Belón (3): t4216: avoid unnecessary subshell in test_bloom_filters_not_used t5520: avoid alternation in grep's BRE (not POSIX) bisect: avoid tailing CR characters from revision in replay Derrick Stolee (1): fsck: use ERROR_MULTI_PACK_INDEX Greg Price (1): tests: skip small-stack tests on hppa architecture Ismael Luceno (1): git-gui: Handle Ctrl + BS/Del in the commit msg Jonathan Tan (1): t4067: make rename detection test output raw diff Junio C Hamano (2): Hopefully final batch before 2.27-rc2 Git 2.27-rc2 Martin Ågren (5): date-formats.txt: fix list continuation git-commit-graph.txt: fix grammo git-commit-graph.txt: fix list rendering git-credential.txt: use list continuation git-sparse-checkout.txt: add missing ' Philippe Blain (1): command-list.txt: add gitfaq to the list of guides Todd Zullinger (1): gitfaq: avoid validation error with older asciidoc Đoàn Trần Công Danh (1): t5703: replace "grep -a" usage by perl Version v2.27.0-rc1; changes since v2.27.0-rc0: ----------------------------------------------- Abhishek Kumar (1): commit-slab-decl.h: update include guard Carlo Marcelo Arenas Belón (1): compat: remove gmtime Derrick Stolee (1): progress: call trace2_region_leave() only after calling _enter() Elijah Newren (2): merge-recursive: fix rename/rename(1to2) for working tree with a binary unpack-trees: also allow get_progress() to work on a different index Johannes Schindelin (1): ci: avoid pounding on the poor ci-artifacts container Junio C Hamano (4): Revert "t/test_lib: avoid naked bash arrays in file_lineno" Revert "ci: add a problem matcher for GitHub Actions" Revert "tests: when run in Bash, annotate test failures with file name/line number" Git 2.27-rc1 Todd Zullinger (1): git-bugreport.txt: adjust reference to strftime(3) Đoàn Trần Công Danh (1): t1509: correct i18n test Version v2.27.0-rc0; changes since v2.26.3: ------------------------------------------- Alban Gruin (3): sequencer: mark messages for translation sequencer: don't abbreviate a command if it doesn't have a short form t3432: test `--merge' with `rebase.abbreviateCommands = true', too Alex Henrie (1): pull: warn if the user didn't say whether to rebase or to merge Alexandr Miloslavskiy (4): set_git_dir: fix crash when used with real_path() real_path: remove unsafe API real_path_if_valid(): remove unsafe API get_superproject_working_tree(): return strbuf Andras Kucsma (1): run-command: trigger PATH lookup properly on Cygwin Andrei Rybak (2): t9500: remove spaces after redirect operators t: fix whitespace around && Andrew Oakley (1): git-p4: recover from inconsistent perforce history Ash Holland (1): userdiff: support Markdown Ben Keene (8): git-p4: change the expansion test from basestring to list git-p4: rewrite prompt to be Windows compatible git-p4: create new function run_git_hook git-p4: add p4-pre-submit exit text git-p4: add --no-verify option git-p4: restructure code in submit git-p4: add p4 submit hooks git-p4: add RCS keyword status message Carlo Marcelo Arenas Belón (8): credential-store: ignore bogus lines from store file credential: update description for credential_from_url_gently credential: correct order of parameters for credential_match builtin/receive-pack: avoid generic function name hmac() t/t0000-basic: make sure subtests also use TEST_SHELL_PATH t/test_lib: avoid naked bash arrays in file_lineno credential: update gitcredentials documentation credential: document protocol updates Christian Couder (1): upload-pack: clear filter_options for each v2 fetch command Christopher Warrington (1): bisect: allow CRLF line endings in "git bisect replay" input Damien Robert (6): midx.c: fix an integer underflow doc: list all commands affected by submodule.recurse doc: document --recurse-submodules for reset and restore doc: explain how to deactivate submodule.recurse completely doc: be more precise on (fetch|push).recurseSubmodules doc: --recurse-submodules mostly applies to active submodules Denton Liu (45): Makefile: ASCII-sort += lists t7600: use test_write_lines() Lib-ify fmt-merge-msg Lib-ify prune-packed t5512: don't use `test_must_fail test_cmp` t5512: stop losing git exit code in here-docs t5512: stop losing return codes of git commands t5550: simplify no matching line check t5607: reorder `nongit test_must_fail` t5612: don't use `test_must_fail test_cmp` t5612: stop losing return codes of git commands t5801: teach compare_refs() to accept ! wrapper: indent with tabs sequencer: stop leaking buf sequencer: make file exists check more efficient sequencer: make read_oneliner() accept flags sequencer: configurably warn on non-existent files sequencer: make read_oneliner() extern rebase: use read_oneliner() sequencer: make apply_autostash() accept a path sequencer: rename stash_sha1 to stash_oid rebase: use apply_autostash() from sequencer.c rebase: generify reset_head() reset: extract reset_head() from rebase rebase: extract create_autostash() rebase: generify create_autostash() sequencer: extract perform_autostash() from rebase sequencer: unlink autostash in apply_autostash() sequencer: implement save_autostash() sequencer: implement apply_autostash_oid() merge: teach --autostash option t5520: make test_pull_autostash() accept expect_parent_num pull: pass --autostash to merge t6030: use test_path_is_missing() t7408: replace incorrect uses of test_must_fail t7508: don't use `test_must_fail test_cmp` t9141: use test_path_is_missing() t9160: use test_path_is_missing() t9164: use test_must_fail only on git commands t9819: don't use test_must_fail with p4 Use OPT_CALLBACK and OPT_CALLBACK_F push: unset PARSE_OPT_OPTARG for --recurse-submodules rebase: save autostash entry into stash reflog on --quit switch: fix errors and comments related to -c and -C Doc: reference the "stash list" in autostash docs Derrick Stolee (25): connected.c: reprepare packs for corner cases config: set pack.useSparse=true by default pack-objects: flip the use of GIT_TEST_PACK_SPARSE clone: document --filter options diff: halt tree-diff early after max_changes dir: refactor treat_directory to clarify control flow commit-graph: fix buggy --expire-time option t5319: replace 'touch -m' with 'test-tool chmtime' bloom: ignore renames when computing changed paths revision: --show-pulls adds helpful merges log-tree: make ref_filter_match() a helper method log: add log.excludeDecoration config option revision: complicated pathspecs disable filters tests: write commit-graph with Bloom filters blame: use changed-path Bloom filters multi-pack-index: close file descriptor after mmap bloom: fix whitespace around tab length test-bloom: fix usage typo sparse-checkout: stop blocking empty workdirs unpack-trees: avoid array out-of-bounds error multi-pack-index: respect repack.packKeptObjects=false bloom: parse commit before computing filters Documentation: changed-path Bloom filters use byte words bloom: de-duplicate directory entries bloom: use num_changes not nr for limit detection Elijah Newren (37): oidset: remove unnecessary include unpack-trees: fix minor typo in comment unpack-trees: remove unused error type unpack-trees: simplify verify_absent_sparse() unpack-trees: simplify pattern_list freeing t1091: make some tests a little more defensive against failures unpack-trees: allow check_updates() to work on a different index unpack-trees: do not mark a dirty path with SKIP_WORKTREE unpack-trees: pull sparse-checkout pattern reading into a new function unpack-trees: add a new update_sparsity() function sparse-checkout: use new update_sparsity() function sparse-checkout: use improved unpack_trees porcelain messages unpack-trees: move ERROR_WOULD_LOSE_SUBMODULE earlier unpack-trees: rename ERROR_* fields meant for warnings to WARNING_* unpack-trees: split display_error_msgs() into two unpack-trees: make sparse path messages sound like warnings unpack-trees: provide warnings on sparse updates for unmerged paths too unpack-trees: failure to set SKIP_WORKTREE bits always just a warning sparse-checkout: provide a new reapply subcommand pull: avoid running both merge and rebase t7063: more thorough status checking t3000: add more testcases testing a variety of ls-files issues dir: fix simple typo in comment dir: consolidate treat_path() and treat_one_path() dir: fix broken comment dir: fix confusion based on variable tense dir: replace exponential algorithm with a linear one dir: include DIR_KEEP_UNTRACKED_CONTENTS handling in treat_directory() dir: replace double pathspec matching with single in treat_directory() Fix error-prone fill_directory() API; make it only return matches completion: fix 'git add' on paths under an untracked directory git-rebase.txt: add another hook to the hooks section, and explain more sequencer: honor GIT_REFLOG_ACTION rebase -i: mark commits that begin empty in todo editor rebase: reinstate --no-keep-empty rebase: fix an incompatible-options error message rebase: display an error if --root and --fork-point are both provided Emily Shaffer (8): help: move list_config_help to builtin/help bugreport: add tool to generate debugging info bugreport: gather git version and build info bugreport: add uname info bugreport: add compiler info bugreport: drop extraneous includes bugreport: collect list of populated hooks trace2: log progress time and throughput Emma Brooks (3): format-patch: teach --no-encode-email-headers Documentation: explain "mboxrd" pretty format gitweb: Recognize *-to and Closes/Fixes trailers Eric Sunshine (1): restore: default to HEAD when combining --staged and --worktree Garima Singh (13): commit-graph: define and use MAX_NUM_CHUNKS bloom.c: add the murmur3 hash implementation bloom.c: introduce core Bloom filter constructs bloom.c: core Bloom filter implementation for changed paths. commit-graph: compute Bloom filters for changed paths commit-graph: examine commits by generation number commit-graph: write Bloom filters to commit graph file commit-graph: reuse existing Bloom filters during write commit-graph: add --changed-paths option to write subcommand revision.c: use Bloom filters to speed up path based revision walks revision.c: add trace2 stats around Bloom filter usage t4216: add end to end tests for git log with Bloom filters commit-graph: add GIT_TEST_COMMIT_GRAPH_CHANGED_PATHS test flag Hans Jerry Illikainen (2): t: increase test coverage of signature verification output gpg-interface: prefer check_signature() for GPG verification Heba Waly (4): advice: extract vadvise() from advise() advice: change "setupStreamFailure" to "setUpstreamFailure" advice: revamp advise API tag: use new advice API to check visibility Jeff King (41): t3419: drop EXPENSIVE tests t/lib-credential.sh: drop shebang line t/lib-*.sh: drop executable bit test-lib-functions: make packetize() more efficient upload-pack: handle unexpected delim packets p5310: stop timing non-bitmap pack-to-disk Makefile: avoid running curl-config multiple times Makefile: use curl-config --cflags test-lib-functions: simplify packetize() stdin code commit-graph: examine changed-path objects in pack order oid_array: use size_t for count and allocation oid_array: use size_t for iteration oid_array: rename source file from sha1-array test-tool: rename sha1-array to oid-array bisect: stop referring to sha1_array ref-filter: stop referring to "sha1 array" oidset: stop referring to sha1-array clone: use "quick" lookup while following tags Makefile: avoid running curl-config unnecessarily fast-import: replace custom hash with hashmap.c repository: mark the "refs" pointer as private remote: drop auto-strlen behavior of make_branch() and make_rewrite() parse_config_key(): return subsection len as size_t config: drop useless length variable in write_pair() git_config_parse_key(): return baselen as size_t config: use size_t to store parsed variable baselen config: reject parsing of files over INT_MAX credential: treat "?" and "#" in URLs as end of host blame: drop unused parameter from maybe_changed_path test-bloom: fix some whitespace issues test-bloom: check that we have expected arguments commit-graph: close descriptors after mmap t0000: disable GIT_TEST_FAIL_PREREQS in sub-tests gitcredentials(7): clarify quoting of helper examples gitcredentials(7): make shell-snippet example more realistic CodingGuidelines: drop arithmetic expansion advice to use "$x" ref-filter: apply --ignore-case to all sorting keys ref-filter: apply fallback refname sort only after all user sorts list-objects-filter: treat NULL filter_options as "disabled" pack-bitmap: pass object filter to fill-in traversal ci: allow per-branch config for GitHub Actions Jessica Clarke (1): config.mak.uname: Define FREAD_READS_DIRECTORIES for GNU/Hurd Jiang Xin (5): send-pack: fix inconsistent porcelain output t5543: never report what we do not push send-pack: mark failure of atomic push properly transport-helper: mark failure for atomic push transport-helper: new method reject_atomic_push() Johannes Schindelin (36): cherry-pick: add test for `--skip` advice in `git commit` tests(junit-xml): avoid invalid XML import-tars: ignore the global PAX header tests(gpg): allow the gpg-agent to start on Windows t/lib-gpg.sh: stop pretending to be a stand-alone script tests: do not let lazy prereqs inside `test_expect_*` turn off tracing tests: turn GPG, GPGSM and RFC1991 into lazy prereqs tests: increase the verbosity of the GPG-related prereqs MyFirstObjectWalk: remove unnecessary conditional statement t0007: fix a typo ci/lib: if CI type is unknown, show the environment variables ci/lib: allow running in GitHub Actions ci: fix the `jobname` of the `GETTEXT_POISON` job subtree: fix build with AsciiDoctor 2 mingw: do not treat `COM0` as a reserved file name t3904: fix incorrect demonstration of a bug stash -p: (partially) fix bug concerning split hunks mingw: help debugging by optionally executing bash with strace interactive: refactor code asking the user for interactive input ci: run gem with sudo to install asciidoctor README: add a build badge for the GitHub Actions runs ci: retire the Azure Pipelines definition tests: when run in Bash, annotate test failures with file name/line number ci: add a problem matcher for GitHub Actions ci: let GitHub Actions upload failed tests' directories t: consolidate the `is_hidden` functions mingw: make test_path_is_hidden more robust t: restrict `is_hidden` to be called only on Windows credential: fix grammar credential: optionally allow partial URLs in credential_from_url_gently() credential: optionally allow partial URLs in credential_from_url_gently() credential: handle `credential..` again macOS/brew: let the build find gettext headers/libraries/msgfmt push: anonymize URLs in error messages and warnings credential: handle `credential..` again rebase --autosquash: fix a potential segfault Jonathan Nieder (1): Revert "fetch: default to protocol version 2" Jonathan Tan (11): connected: always use partial clone optimization promisor-remote: accept 0 as oid_nr in function diff: make diff_populate_filespec_options struct diff: refactor object read diff: restrict when prefetching occurs rebase --merge: optionally skip upstreamed commits fetch-pack: return enum from process_acks() fetch-pack: in protocol v2, in_vain only after ACK fetch-pack: in protocol v2, reset in_vain upon ACK commit-graph: avoid memory leaks t5500: count objects through stderr, not trace Jorge Lopez Silva (2): http: add client cert support for HTTPS proxies http: add environment variable support for HTTPS proxies Josh Steadmon (1): trace2: teach Git to log environment variables Julien Moutinho (1): gitweb: fix UTF-8 encoding when using CGI::Fast Junio C Hamano (26): rebase: --fork-point regression fix describe: force long format for a name based on a mislocated tag update how-to-maintain-git parse-options: teach "git cmd -h" to show alias as alias clone: reorder --recursive/--recurse-submodules log: give --[no-]use-mailmap a more sensible synonym --[no-]mailmap separate tar.* config to its own source file The first batch post 2.26 cycle The second batch post 2.26 cycle t/README: suggest how to leave test early with failure CodingGuidelines: allow ${#posix} == strlen($posix) sha1-name: do not assume that the ref store is initialized receive-pack: compilation fix The third batch The fourth batch credential-store: document the file format a bit more Revert "commit-graph.c: introduce '--[no-]check-oids'" The fifth batch The sixth batch The seventh batch auto-gc: extract a reusable helper from "git fetch" auto-gc: pass --quiet down from am, commit, merge and rebase CodingGuidelines: do not ==/!= compare with 0 or '\0' or NULL The eighth batch The ninth batch Git 2.27-rc0 Li Xuejiang (1): git-submodule.sh: setup uninitialized variables Martin Ågren (9): Doc: drop support for docbook-xsl before 1.71.1 Doc: drop support for docbook-xsl before 1.72.0 Doc: drop support for docbook-xsl before 1.73.0 manpage-bold-literal.xsl: stop using git.docbook.backslash manpage-normal.xsl: fold in manpage-base.xsl INSTALL: drop support for docbook-xsl before 1.74 user-manual.conf: don't specify [listingblock] config.txt: move closing "----" to cover entire listing merge: use skip_prefix to parse config key Matheus Tavares (3): test-lib: allow short options to be bundled grep: follow conventions for printing paths w/ unusual chars config doc: fix reference to config.worktree info Matthias Aßhauer (1): mingw: use modern strftime implementation if possible Michael F. Schönitzer (1): docs: fix minor glitch in illustration Nathan Sanders (1): mingw: cope with the Isilon network file system Patrick Steinhardt (9): refs: fix segfault when aborting empty transaction git-update-ref.txt: add missing word strbuf: provide function to append whole lines update-ref: organize commands in an array update-ref: drop unused argument for `parse_refname` update-ref: pass end pointer instead of strbuf update-ref: move transaction handling into `update_refs_stdin()` update-ref: read commands in a line-wise fashion update-ref: implement interactive transaction handling Philippe Blain (9): t7112: remove mention of KNOWN_FAILURE_SUBMODULE_RECURSIVE_NESTED t/lib-submodule-update: remove outdated test description t/lib-submodule-update: move a test to the right section unpack-trees: remove outdated description for verify_clean_submodule unpack-trees: check for missing submodule directory in merged_entry t/lib-submodule-update: add test removing nested submodules git-rebase.txt: fix typo pull doc: refer to a specific section in 'fetch' doc pull doc: correct outdated description of an example Phillip Wood (6): t3404: use test_cmp_rev cherry-pick: check commit error messages sequencer: write CHERRY_PICK_HEAD for reword and edit commit: use enum value for multiple cherry-picks commit: encapsulate determine_whence() for sequencer commit: give correct advice for empty commit during a rebase René Scharfe (4): pull: document more passthru options pull: remove --update-head-ok from documentation pull: pass documented fetch options on fsck: report non-consecutive duplicate names in trees SZEDER Gábor (4): ci: use python3 in linux-gcc and osx-gcc and python2 elsewhere commit-slab: clarify slabname##_peek()'s return value ci: make MAKEFLAGS available inside the Docker container in the Linux32 job completion: offer '--(no-)patch' among 'git log' options Shourya Shukla (4): submodule--helper.c: Rename 'cb_foreach' to 'foreach_cb' gitfaq: files in .gitignore are tracked gitfaq: fetching and pulling a repository submodule: port subcommand 'set-url' from shell to C Son Luong Ngoc (1): midx: teach "git multi-pack-index repack" honor "git repack" configurations Taylor Blau (24): t/helper/test-read-graph.c: support commit-graph chains builtin/commit-graph.c: support for '--split[=]' builtin/commit-graph.c: introduce split strategy 'no-merge' builtin/commit-graph.c: introduce split strategy 'replace' oidset: introduce 'oidset_size' commit-graph.h: replace 'commit_hex' with 'commits' commit-graph.c: introduce '--[no-]check-oids' diff-tree.c: load notes machinery when required commit-graph.c: don't use discarded graph_name in error t/test-lib.sh: make ULIMIT_FILE_DESCRIPTORS available to tests commit-graph.c: gracefully handle file descriptor exhaustion t5537: use test_write_lines and indented heredocs for readability shallow.c: use '{commit,rollback}_shallow_file' tempfile.c: introduce 'create_tempfile_mode' lockfile.c: introduce 'hold_lock_file_for_update_mode' commit-graph.c: write non-split graphs as read-only commit-graph.c: ensure graph layers respect core.sharedRepository commit-graph.c: make 'commit-graph-chain's read-only commit: make 'commit_graft_pos' non-static shallow: extract a header file for shallow-related functions shallow.h: document '{commit,rollback}_shallow_file' shallow: use struct 'shallow_lock' for additional safety pack-bitmap.c: make object filtering functions generic pack-bitmap.c: support 'tree:0' filtering Terry Moschou (1): complete: zsh: add missing sub cmd completion candidates Thomas Gummerer (2): stash: get git_stash_config at the top level stash: remove the stash.useBuiltin setting Vasil Dimov (2): range-diff: fix a crash in parsing git-log output range-diff: avoid negative string precision Yang Zhao (12): git-p4: make python2.7 the oldest supported version git-p4: remove string type aliasing git-p4: encode/decode communication with p4 for python3 git-p4: encode/decode communication with git for python3 git-p4: convert path to unicode before processing them git-p4: open .gitp4-usercache.txt in text mode git-p4: use marshal format version 2 when sending to p4 git-p4: fix freezing while waiting for fast-import progress git-p4: use functools.reduce instead of reduce git-p4: use dict.items() iteration for python3 compatibility git-p4: simplify regex pattern generation for parsing diff-tree git-p4: use python3's input() everywhere brian m. carlson (34): builtin/pack-objects: make hash agnostic hash: implement and use a context cloning function hex: introduce parsing variants taking hash algorithms hex: add functions to parse hex object IDs in any algorithm repository: require a build flag to use SHA-256 t: use hash-specific lookup tables to define test constants t6300: abstract away SHA-1-specific constants t6300: make hash algorithm independent t/helper/test-dump-split-index: initialize git repository t/helper: initialize repository if necessary t/helper: make repository tests hash independent setup: allow check_repository_format to read repository format builtin/init-db: allow specifying hash algorithm on command line builtin/init-db: add environment variable for new repo hash init-db: move writing repo version into a function worktree: allow repository version 1 commit: use expected signature header for SHA-256 fast-import: permit reading multiple marks files fast-import: add helper function for inserting mark object entries fast-import: make find_marks work on any mark set fast-import: add a generic function to iterate over marks fast-import: add options for rewriting submodules builtin/checkout: pass branch info down to checkout_worktree convert: permit passing additional metadata to filter processes convert: provide additional metadata to filters builtin/checkout: compute checkout metadata for checkouts builtin/clone: compute checkout metadata for clones builtin/rebase: compute checkout metadata for rebases builtin/reset: compute checkout metadata for reset t0021: test filter metadata for additional cases docs: add a FAQ builtin/receive-pack: use constant-time comparison for HMAC value credential: fix matching URLs with multiple levels in path docs: document credential.helper allowed values luciano.rocha@booking.com (1): freshen_file(): use NULL `times' for implicit current-time Đoàn Trần Công Danh (34): t4061: use POSIX compliant regex(7) test-lib-functions: test_cmp: eval $GIT_TEST_CMP t5003: drop the subshell in test_lazy_prereq t5003: skip conversion test if unzip -a is unavailable t5616: use rev-parse instead to get HEAD's object_id t7063: drop non-POSIX argument "-ls" from find(1) t4124: tweak test so that non-compliant diff(1) can also be used t5703: feed raw data into test-tool unpack-sideband rebase.c: honour --no-gpg-sign cherry-pick/revert: honour --no-gpg-sign in all case Documentation: document am --no-gpg-sign Documentation: reword commit --no-gpg-sign Documentation: merge commit-tree --[no-]gpg-sign Documentation: document merge option --no-gpg-sign ci/lib-docker: preserve required environment variables ci/linux32: parameterise command to switch arch ci: refactor docker runner script ci/linux32: libify install-dependencies step travis: build and test on Linux with musl libc and busybox ci/lib: set TERM environment variable if not exist ci: explicit install all required packages ci: configure GitHub Actions for CI/PR t4254: merge 2 steps of a single test mailinfo.c: avoid strlen on strings that can contains NUL mailinfo: disallow NUL character in mail's header date.c: s/is_date/set_date/ date.c: validate and set time in a helper function date.c: skip fractional second part of ISO-8601 date.c: allow compact version of ISO-8601 datetime test-parse-pathspec-file.c: s/0/NULL/ for pointer type compat/regex: move stdlib.h up in inclusion chain graph.c: limit linkage of internal variable progress.c: silence cgcc suggestion about internal linkage bloom: fix `make sparse` warning 마누엘 (1): interactive: explicitly `fflush` stdout before expecting input Version v2.26.3; changes since v2.26.2: --------------------------------------- Johannes Schindelin (11): run-command: invalidate lstat cache after a command finished Git 2.17.6 Git 2.18.5 Git 2.19.6 Git 2.20.5 Git 2.21.4 Git 2.22.5 Git 2.23.4 Git 2.24.4 Git 2.25.5 Git 2.26.3 Matheus Tavares (2): checkout: fix bug that makes checkout follow symlinks in leading path unpack_trees(): start with a fresh lstat cache Version v2.26.2; changes since v2.26.1: --------------------------------------- Jeff King (6): t0300: make "quit" helper more realistic t0300: use more realistic inputs credential: parse URL without host as empty host, not unset credential: refuse to operate when missing host or protocol credential: die() when parsing invalid urls Git 2.17.5 Jonathan Nieder (4): fsck: convert gitmodules url to URL passed to curl credential: treat URL without scheme as invalid credential: treat URL with empty scheme as invalid fsck: reject URL with empty host in .gitmodules Version v2.26.1; changes since v2.26.0: --------------------------------------- Jeff King (4): credential: avoid writing values with newlines t/lib-credential: use test_i18ncmp to check stderr credential: detect unrepresentable values when parsing urls fsck: detect gitmodules URLs with embedded newlines Junio C Hamano (1): Git 2.17.4 Version v2.26.0; changes since v2.26.0-rc2: ------------------------------------------- Alessandro Menti (2): l10n: it.po: update the Italian translation for Git 2.26.0 round 1 l10n: it.po: update the Italian translation for Git 2.26.0 round 2 Alexander Shopov (2): l10n: bg.po: Updated Bulgarian translation (4835t) l10n: bg.po: Updated Bulgarian translation (4839t) Beat Bolli (1): unicode: update the width tables to Unicode 13.0 Christian Stimming (3): git-gui: update pot template and German translation to current source code git-gui: extend translation glossary template with more terms git-gui: update German translation Christopher Diaz Riveros (1): l10n: es: 2.26.0 round#2 Elijah Newren (1): RelNotes/2.26.0: fix various typos Emir Sarı (5): l10n: tr: Add Turkish translation team info l10n: tr: Add Turkish translations l10n: tr: Add glossary for Turkish translations l10n: tr: v2.26.0 round 2 l10n: tr: Fix a couple of ambiguities Fangyi Zhou (1): l10n: zh_CN: Revise v2.26.0 translation Jean-Noël Avila (2): l10n: fr v2.26.0 rnd1 l10n: fr : v2.26.0 rnd 2 Jiang Xin (4): l10n: git.pot: v2.26.0 round 1 (73 new, 38 removed) l10n: git.pot: v2.26.0 round 2 (7 new, 2 removed) l10n: zh_CN: for git v2.26.0 l10n round 1 and 2 l10n: tr.po: change file mode to 644 Jordi Mas (3): l10n: Update Catalan translation l10n: Update Catalan translation l10n: Update Catalan translation Junio C Hamano (2): Git 2.25.2 Git 2.26 Luke Bonanomi (1): git-gui--askpass: coerce answers to UTF-8 on Windows Matthias Rüster (1): l10n: de.po: Update German translation for Git 2.26.0 Peter Krefting (2): l10n: sv.po: Update Swedish translation (4835t0f0u) l10n: sv.po: Update Swedish translation (4839t0f0u) Pratyush Yadav (4): git-gui: add missing close bracket git-gui: fix error popup when doing blame -> "Show History Context" git-gui: reduce Tcl version requirement from 8.6 to 8.5 git-gui: create a new namespace for chord script evaluation Ralf Thielow (1): l10n: de.po: add missing space Trần Ngọc Quân (1): l10n: vi(4839t): Updated Vietnamese translation for v2.26.0 Yi-Jyun Pan (2): l10n: zh_TW.po: v2.26.0 round 1 (11 untranslated) l10n: zh_TW.po: v2.26.0 round 2 (0 untranslated) brian m. carlson (1): t3419: prevent failure when run with EXPENSIVE Đoàn Trần Công Danh (1): l10n: vi: fix translation + grammar Version v2.26.0-rc2; changes since v2.26.0-rc1: ----------------------------------------------- Elijah Newren (3): sequencer: clear state upon dropping a become-empty commit git-rebase.txt: highlight backend differences with commit rewording t6022, t6046: fix flaky files-are-updated checks Emily Shaffer (1): prefix_path: show gitdir if worktree unavailable Jeff King (1): remote: drop "explicit" parameter from remote_ref_for_branch() Jiang Xin (1): i18n: unmark a message in rebase.c Junio C Hamano (3): Documentation: clarify that `-h` alone stands for `help` Hopefully the final batch before -rc2 Git 2.26-rc2 Martin Ågren (1): t1091: don't grep for `strerror()` string Version v2.26.0-rc1; changes since v2.26.0-rc0: ----------------------------------------------- Alexandr Miloslavskiy (9): doc: rm: synchronize description rm: support the --pathspec-from-file option doc: stash: split options from description (1) doc: stash: split options from description (2) doc: stash: document more options doc: stash: synchronize description stash: eliminate crude option parsing stash push: support the --pathspec-from-file option mingw: workaround for hangs when sending STDIN Elijah Newren (6): merge-recursive: apply collision handling unification to recursive case t602[1236], t6034: modernize test formatting t6020, t6022, t6035: update merge tests to use test helper functions t3035: prefer test_must_fail to bash negation for git commands t6022, t6046: test expected behavior instead of testing a proxy for it t6020: new test with interleaved lexicographic ordering of directories Harald van Dijk (1): show_one_mergetag: print non-parent in hex form. Jeff King (1): config.mak.dev: re-enable -Wformat-zero-length Junio C Hamano (1): Git 2.26-rc1 Kir Kolyshkin (1): completion: add diff --color-moved[-ws] Paolo Bonzini (5): parse-options: add testcases for OPT_CMDMODE() parse-options: convert "command mode" to a flag am: convert "resume" variable to a struct am: support --show-current-patch=raw as a synonym for--show-current-patch am: support --show-current-patch=diff to retrieve .git/rebase-apply/patch Ralf Thielow (1): rebase-interactive.c: silence format-zero-length warnings Rasmus Jonsson (1): t1050: replace test -f with test_path_is_file René Scharfe (1): remote-curl: show progress for fetches over dumb HTTP Version v2.26.0-rc0; changes since v2.25.5: ------------------------------------------- Abhishek Kumar (2): lib-log-graph: consolidate test_cmp_graph logic lib-log-graph: consolidate colored graph cmp logic Alban Gruin (4): rebase -i: stop checking out the tip of the branch to rebase sequencer: move check_todo_list_from_file() to rebase-interactive.c rebase-interactive: warn if commit is dropped with `rebase --edit-todo' builtin/rebase: remove a call to get_oid() on `options.switch_to' Alexandr Miloslavskiy (5): parse_branchname_arg(): extract part as new function checkout: don't revert file on ambiguous tracking branches t: add tests for error conditions with --pathspec-from-file t: fix quotes tests for --pathspec-from-file t: directly test parse_pathspec_file() Benno Evers (1): describe: don't abort too early when searching tags Bert Wesarg (6): pull --rebase/remote rename: document and honor single-letter abbreviations rebase types remote: clean-up by returning early to avoid one indentation remote: clean-up config callback remote rename/remove: handle branch..pushRemote config values config: provide access to the current line number remote rename/remove: gently handle remote.pushDefault config Denton Liu (32): t/lib-git-p4: use test_path_is_missing() t0000: replace test_must_fail with run_sub_test_lib_test_err() t0003: use named parameters in attr_check() t0003: use test_must_be_empty() t0003: don't use `test_must_fail attr_check` t0020: don't use `test_must_fail has_cr` t0020: use ! check_packed_refs_marked t1306: convert `test_might_fail rm` to `rm -f` t1307: reorder `nongit test_must_fail` t1409: let sed open its own input file t1409: use test_path_is_missing() t1501: remove use of `test_might_fail cp` t1507: stop losing return codes of git commands t1507: run commands within test_expect_success t1507: inline full_name() contrib/credential/netrc: make PERL_PATH configurable contrib/credential/netrc: work outside a repo t2018: remove trailing space from test description t2018: add space between function name and () t2018: improve style of if-statement t2018: be more discerning when checking for expected exit codes t2018: teach do_checkout() to accept `!` arg t2018: don't lose return code of git commands t2018: replace "sha" with "oid" t3030: use test_path_is_missing() t3310: extract common notes_merge_files_gone() t3415: stop losing return codes of git commands t3415: increase granularity of test_auto_{fixup,squash}() t3419: stop losing return code of git command t3507: fix indentation t3507: use test_path_is_missing() t4124: only mark git command with test_must_fail Derrick Stolee (21): graph: add test to demonstrate horizontal line bug graph: fix collapse of multiple edges t1091: use check_files to reduce boilerplate t1091: improve here-docs sparse-checkout: create leading directories clone: fix --sparse option with URLs sparse-checkout: cone mode does not recognize "**" sparse-checkout: detect short patterns sparse-checkout: warn on globs in cone patterns sparse-checkout: properly match escaped characters sparse-checkout: write escaped patterns in cone mode sparse-checkout: unquote C-style strings over --stdin sparse-checkout: use C-style quotes in 'list' subcommand sparse-checkout: escape all glob characters on write sparse-checkout: improve docs around 'set' in cone mode sparse-checkout: fix cone mode behavior mismatch sparse-checkout: extract add_patterns_from_input() sparse-checkout: extract pattern update from 'set' subcommand sparse-checkout: create 'add' subcommand sparse-checkout: work with Windows paths sparse-checkout: allow one-character directories in cone mode Elijah Newren (20): git-rebase.txt: update description of --allow-empty-message t3404: directly test the behavior of interest rebase (interactive-backend): make --keep-empty the default rebase (interactive-backend): fix handling of commits that become empty t3406: simplify an already simple test rebase, sequencer: remove the broken GIT_QUIET handling rebase: make sure to pass along the quiet flag to the sequencer rebase: fix handling of restrict_revision t3432: make these tests work with either am or merge backends rebase: allow more types of rebases to fast-forward git-rebase.txt: add more details about behavioral differences of backends rebase: move incompatibility checks between backend options a bit earlier rebase: add an --am option git-prompt: change the prompt for interactive-based rebases rebase: drop '-i' from the reflog for interactive-based rebases rebase tests: mark tests specific to the am-backend with --am rebase tests: repeat some tests using the merge backend instead of am rebase: make the backend configurable via config setting rebase: change the default backend from "am" to "merge" rebase: rename the two primary rebase backends Emily Shaffer (5): fetch: emphasize failure during submodule fetch MyFirstContribution: add avenues for getting help MyFirstContribution: rephrase contact info submodule--helper: use C99 named initializer clone: pass --single-branch during --recurse-submodules Eric Sunshine (6): t3400: make test clean up after itself rebase: refuse to switch to branch already checked out elsewhere worktree: drop unused code from get_main_worktree() worktree: improve find_worktree() documentation worktree: add utility to find worktree by pathname worktree: don't allow "add" validation to be fooled by suffix matching Eyal Soha (3): color.c: refactor color_output arguments color.c: support bright aixterm colors color.c: alias RGB colors 8-15 to aixterm colors Hans Jerry Illikainen (2): editorconfig: indent text files with tabs gpg-interface: add minTrustLevel as a configuration option Hariom Verma (4): get_main_worktree(): allow it to be called in the Git directory t5509: use a bare repository for test push target receive.denyCurrentBranch: respect all worktrees t2402: test worktree path when called in .git directory Heba Waly (3): add: use advise function to display hints git: update documentation for --git-dir add: change advice config variables used by the add API Jeff King (52): builtin/pack-objects: report reused packfile objects packfile: expose get_delta_base() ewah/bitmap: introduce bitmap_word_alloc() pack-bitmap: introduce bitmap_walk_contains() pack-bitmap: uninteresting oid can be outside bitmapped packfile pack-bitmap: simplify bitmap_has_oid_in_uninteresting() csum-file: introduce hashfile_total() pack-objects: introduce pack.allowPackReuse builtin/pack-objects: introduce obj_is_packed() pack-objects: improve partial packfile reuse pack-objects: add checks for duplicate objects pack-bitmap: don't rely on bitmap_git->reuse_objects sparse-checkout: fix documentation typo for core.sparseCheckoutCone verify_filename(): handle backslashes in "wildcards are pathspecs" rule t1400: avoid "test" string comparisons t1506: drop space after redirection operator doc: drop "explicitly given" from push.default description sha1-name: mark get_oid() error messages for translation normalize_path_copy(): document "dst" size expectations walker_fetch(): avoid raw array length computation traverse_trees(): use stack array for name entries diff: move diff.wsErrorHighlight to "basic" config tree-walk.c: break circular dependency with unpack-trees mailinfo: treat header values as C strings mailinfo: simplify parsing of header values mailinfo: be more liberal with header whitespace mailinfo: factor out some repeated header handling pack-bitmap: factor out type iterator initialization pack-bitmap: fix leak of haves/wants object lists rev-list: fallback to non-bitmap traversal when filtering pack-bitmap: refuse to do a bitmap traversal with pathspecs rev-list: factor out bitmap-optimized routines rev-list: make --count work with --objects rev-list: allow bitmaps when counting objects t5310: factor out bitmap traversal comparison rev-list: allow commit-only bitmap traversals pack-bitmap: basic noop bitmap filter infrastructure rev-list: use bitmap filters for traversal bitmap: add bitmap_unset() function pack-bitmap: implement BLOB_NONE filtering pack-bitmap: implement BLOB_LIMIT filtering pack-objects: support filters with bitmaps nth_packed_object_oid(): use customary integer return pack-objects: read delta base oid into object_id struct pack-objects: convert oe_set_delta_ext() to use object_id pack-objects: use object_id struct in pack-reuse code pack-bitmap: use object_id when loading on-disk bitmaps pack-check: convert "internal error" die to a BUG() pack-check: push oid lookup into loop packed_object_info(): use object_id for returning delta base packed_object_info(): use object_id internally for delta base packfile: drop nth_packed_object_sha1() Johannes Schindelin (19): built-in add -p: prepare for patch modes other than "stage" built-in add -p: implement the "stash" and "reset" patch modes legacy stash -p: respect the add.interactive.usebuiltin setting built-in stash: use the built-in `git add -p` if so configured built-in add -p: implement the "checkout" patch modes built-in add -p: implement the "worktree" patch modes commit --interactive: make it work with the built-in `add -i` t3701: adjust difffilter test built-in add -p: support interactive.diffFilter built-in add -p: handle diff.algorithm terminal: make the code of disable_echo() reusable terminal: accommodate Git for Windows' default terminal terminal: add a new function to read a single keystroke built-in add -p: respect the `interactive.singlekey` config setting built-in add -p: handle Escape sequences in interactive.singlekey mode built-in add -p: handle Escape sequences more efficiently ci: include the built-in `git add -i` in the `linux-gcc` job t9001, t9116: avoid pipes t5537: adjust test_oid label Johannes Sixt (1): t3504: do check for conflict marker after failed cherry-pick Jonathan Nieder (9): sha1-file: document how to use pretend_object_file fetch test: avoid use of "VAR= cmd" with a shell function t/check-non-portable-shell: detect "FOO= shell_func", too fetch test: mark test of "skipping" haves as v0-only fetch test: use more robust test for filtered objects config doc: protocol.version is not experimental test: request GIT_TEST_PROTOCOL_VERSION=0 when appropriate protocol test: let protocol.version override GIT_TEST_PROTOCOL_VERSION fetch: default to protocol version 2 Jonathan Tan (2): connected: verify promisor-ness of partial clone fetch: forgo full connectivity check if --filter Junio C Hamano (11): The first batch post 2.25 cycle The second batch C: use skip_prefix() to avoid hardcoded string length The third batch for 2.26 The fourth batch for 2.26 The fifth batch for 2.26 The sixth batch for 2.26 rev-list --count: comment on the use of count_right++ The seventh batch for 2.26 The eighth batch for 2.26 Git 2.26-rc0 Kevin Willford (4): fsmonitor: change last update timestamp on the index_state to opaque token fsmonitor: handle version 2 of the hooks that will use opaque token fsmonitor: add fsmonitor hook scripts for version 2 fsmonitor: update documentation for hook version and watchman hooks Kyle Meyer (1): submodule add: show 'add --dry-run' stderr when aborting Lucius Hu (1): templates: fix deprecated type option `--bool` Luke Diamand (7): git-p4: make closeStreams() idempotent git-p4: add P4CommandException to report errors talking to Perforce git-p4: disable some pylint warnings, to get pylint output to something manageable git-p4: create helper function importRevisions() git-p4: cleanup better on error exit git-p4: check for access to remote host earlier git-p4: avoid leak of file handle when cloning Martin Ågren (4): name-rev: rewrite create_or_update_name() t4117: check for files using `test_path_is_file` t9810: drop debug `cat` call t: drop debug `cat` calls Matheus Tavares (21): grep: fix race conditions on userdiff calls grep: fix race conditions at grep_submodule() grep: fix racy calls in grep_objects() replace-object: make replace operations thread-safe object-store: allow threaded access to object reading grep: replace grep_read_mutex by internal obj read lock submodule-config: add skip_if_read option to repo_read_gitmodules() grep: allow submodule functions to run in parallel grep: protect packed_git [re-]initialization grep: re-enable threads in non-worktree case grep: move driver pre-load out of critical section grep: use no. of cores as the default no. of threads doc: sparse-checkout: mention --cone option completion: add support for sparse-checkout diff: make diff_populate_filespec() honor its repo argument cache-tree: use given repo's hash_algo at verify_one() pack-check: use given repo's hash_algo at verify_packfile() streaming: allow open_istream() to handle any repo sha1-file: pass git_hash_algo to write_object_file_prepare() sha1-file: pass git_hash_algo to hash_object_file() sha1-file: allow check_object_signature() to handle any repo Matthew Rogers (10): config: fix typo in variable name t1300: fix over-indented HERE-DOCs t1300: create custom config file without special characters config: make scope_name non-static and rename it config: split repo scope to local and worktree config: clarify meaning of command line scoping config: preserve scope in do_git_config_sequence config: teach git_config_source to remember its scope submodule-config: add subomdule config scope config: add '--show-scope' to print the scope of a config value Miriam Rubio (3): bisect--helper: convert `vocab_*` char pointers to char arrays bisect: use the standard 'if (!var)' way to check for 0 bisect: add enum to represent bisect returning codes Peter Kaestle (3): t7400: add a testcase for submodule status on empty dirs submodule: fix status of initialized but not cloned submodules t7400: testcase for submodule status on unregistered inner git repos Pranit Bauva (7): bisect--helper: return error codes from `cmd_bisect__helper()` bisect: libify `exit_if_skipped_commits` to `error_if_skipped*` and its dependents bisect: libify `bisect_checkout` bisect: libify `check_merge_bases` and its dependents bisect: libify `check_good_are_ancestors_of_bad` and its dependents bisect: libify `handle_bad_merge_base` and its dependents bisect: libify `bisect_next_all` René Scharfe (20): name-rev: remove unused typedef name-rev: respect const qualifier name-rev: don't leak path copy in name_ref() name-rev: don't _peek() in create_or_update_name() name-rev: put struct rev_name into commit slab name-rev: factor out get_parent_name() name-rev: pre-size buffer in get_parent_name() name-rev: generate name strings only if they are better name-rev: release unused name strings name-rev: sort tip names before applying strbuf: add and use strbuf_insertstr() mailinfo: don't insert header prefix for handle_content_type() parse-options: use COPY_ARRAY in parse_options_concat() parse-options: factor out parse_options_count() parse-options: const parse_options_concat() parameters parse-options: simplify parse_options_dup() quote: use isalnum() to check for alphanumeric characters use strpbrk(3) to search for characters from a given set blame: provide type of fingerprints pointer commit-graph: use progress title directly SZEDER Gábor (6): t9902-completion: add tests for the __git_find_on_cmdline() helper completion: clean up the __git_find_on_cmdline() helper function completion: return the index of found word from __git_find_on_cmdline() completion: simplify completing 'git worktree' subcommands and options completion: list existing working trees for 'git worktree' subcommands completion: list paths and refs for 'git worktree add' Shourya Shukla (2): t6025: modernize style t6025: use helpers to replace test -f Tanushree Tumane (2): bisect--helper: change `retval` to `res` bisect--helper: introduce new `decide_next()` function Taylor Blau (5): t5318: don't pass non-object directory to '--object-dir' commit-graph.h: store an odb in 'struct write_commit_graph_context' commit-graph.h: store object directory in 'struct commit_graph' commit-graph.c: remove path normalization, comparison commit-graph.h: use odb in 'load_commit_graph_one_fd_st' brian m. carlson (46): t4054: make hash-size independent t4066: compute index line in diffs t4134: compute appropriate length constant t4200: make hash size independent t4202: abstract away SHA-1-specific constants t4204: make hash size independent t4300: abstract away SHA-1-specific constants t5318: update for SHA-256 t5319: change invalid offset for SHA-256 compatibility t5319: make test work with SHA-256 t5324: make hash size independent t5504: make hash algorithm independent t5510: make hash size independent t5512: abstract away SHA-1-specific constants t5530: compute results based on object length t5537: make hash size independent t5540: make hash size independent t5562: use $ZERO_OID t5601: switch into repository to hash object t5604: make hash independent t/lib-pack: support SHA-256 t3206: make hash size independent t3308: make test work with SHA-256 t3309: make test work with SHA-256 t3310: make test work with SHA-256 t3311: make test work with SHA-256 t4013: make test hash independent t4211: move SHA-1-specific test cases into a directory t4211: add test cases for SHA-256 t4060: make test work with SHA-256 t5302: make hash size independent t5309: make test hash independent t5313: make test hash independent t5321: make test hash independent t5515: make test hash independent t5318: update for SHA-256 t5607: make hash size independent t5703: make test work with SHA-256 t6000: abstract away SHA-1-specific constants t6006: make hash size independent t6024: update for SHA-256 mailmap: add an additional email address for brian m. carlson t1300: add test for urlmatch with multiple wildcards t0300: add tests for some additional cases credential: use the last matching username in the config credential: allow wildcard patterns when matching config Version v2.25.5; changes since v2.25.4: --------------------------------------- Johannes Schindelin (10): run-command: invalidate lstat cache after a command finished Git 2.17.6 Git 2.18.5 Git 2.19.6 Git 2.20.5 Git 2.21.4 Git 2.22.5 Git 2.23.4 Git 2.24.4 Git 2.25.5 Matheus Tavares (2): checkout: fix bug that makes checkout follow symlinks in leading path unpack_trees(): start with a fresh lstat cache Version v2.25.4; changes since v2.25.3: --------------------------------------- Jeff King (6): t0300: make "quit" helper more realistic t0300: use more realistic inputs credential: parse URL without host as empty host, not unset credential: refuse to operate when missing host or protocol credential: die() when parsing invalid urls Git 2.17.5 Jonathan Nieder (4): fsck: convert gitmodules url to URL passed to curl credential: treat URL without scheme as invalid credential: treat URL with empty scheme as invalid fsck: reject URL with empty host in .gitmodules Version v2.25.3; changes since v2.25.2: --------------------------------------- Jeff King (4): credential: avoid writing values with newlines t/lib-credential: use test_i18ncmp to check stderr credential: detect unrepresentable values when parsing urls fsck: detect gitmodules URLs with embedded newlines Junio C Hamano (1): Git 2.17.4 Version v2.25.2; changes since v2.25.1: --------------------------------------- Alexandr Miloslavskiy (1): mingw: workaround for hangs when sending STDIN Beat Bolli (1): unicode: update the width tables to Unicode 13.0 David Turner (1): git rm submodule: succeed if .gitmodules index stat info is zero Derrick Stolee (2): partial-clone: demonstrate bugs in partial fetch partial-clone: avoid fetching when looking for objects Elijah Newren (4): unpack-trees: exit check_updates() early if updates are not wanted check-ignore: fix documentation and implementation to match t3433: new rebase testcase documenting a stat-dirty-like failure merge-recursive: fix the refresh logic in update_file_flags Emily Shaffer (2): prefix_path: show gitdir when arg is outside repo prefix_path: show gitdir if worktree unavailable Harald van Dijk (1): show_one_mergetag: print non-parent in hex form. Jeff King (9): merge-recursive: silence -Wxor-used-as-pow warning avoid computing zero offsets from NULL pointer xdiff: avoid computing non-zero offset from NULL pointer obstack: avoid computing offsets from NULL pointer index-pack: downgrade twice-resolved REF_DELTA to die() doc: move credential helper info into gitcredentials(7) doc/config/push: use longer "--" line for preformatted example doc-diff: use single-colon rule in rendering Makefile run-command.h: fix mis-indented struct member Johan Herland (2): t3305: check notes fanout more carefully and robustly notes.c: fix off-by-one error when decreasing notes fanout Johannes Schindelin (11): built-in add -i: do not try to `patch`/`diff` an empty list of files built-in add -i: accept open-ended ranges again parse_insn_line(): improve error message when parsing failed rebase -i: re-fix short SHA-1 collision rebase -i: also avoid SHA-1 collisions with missingCommitsCheck tests: fix --write-junit-xml with subshells t5580: test cloning without file://, test fetching via UNC paths mingw: add a helper function to attach GDB to the current process t/lib-httpd: avoid using macOS' sed ci: prevent `perforce` from being quarantined Azure Pipeline: switch to the latest agent pools Junio C Hamano (4): merge-recursive: use subtraction to flip stage Documentation: clarify that `-h` alone stands for `help` Revert "gpg-interface: prefer check_signature() for GPG verification" Git 2.25.2 Philippe Blain (4): t7410: rename to t2405-worktree-submodule.sh t2405: use git -C and test_commit -C instead of subshells t2405: clarify test descriptions and simplify test submodule.c: use get_git_dir() instead of get_git_common_dir() Version v2.25.1; changes since v2.25.0: --------------------------------------- Denton Liu (2): .mailmap: fix erroneous authorship for Johannes Schindelin .mailmap: map Yi-Jyun Pan's email Derrick Stolee (3): unpack-trees: correctly compute result count clean: demonstrate a bug with pathspecs fetch: document and test --refmap="" Elijah Newren (2): string-list: note in docs that callers can specify sorting function dir: treat_leading_path() and read_directory_recursive(), round 2 Emily Shaffer (2): unpack-trees: watch for out-of-range index position submodule: add newline on invalid submodule error Heba Waly (2): commit: honor advice.statusHints when rejecting an empty commit doc/gitcore-tutorial: fix prose to match example command Jacques Bodin-Hullin (1): parse-options: lose an unnecessary space in an error message Jeff King (7): restore: invalidate cache-tree when removing entries with --staged transport: don't flush when disconnecting stateless-rpc helper dir: restructure in a way to avoid passing around a struct dirent dir: point treat_leading_path() warning to the right place Makefile: use compat regex with SANITIZE=address t4018: drop "debugging" cat from hunk-header tests t7800: don't rely on reuse_worktree_file() Johannes Berg (1): pack-format: correct multi-pack-index description Johannes Schindelin (3): msvc: accommodate for vcpkg's upgrade to OpenSSL v1.1.x ci: ignore rubygems warning in the "Documentation" job convert: fix typo Jonathan Tan (2): sha1-file: remove OBJECT_INFO_SKIP_CACHED t5616: make robust to delta base change Junio C Hamano (2): .mailmap: fix GGG authoship screwup Git 2.25.1 Kyle Meyer (1): submodule foreach: replace $path with $sm_path in example Martin Ågren (2): git-filter-branch.txt: wrap "maths" notation in backticks diff-options.txt: avoid "regex" overload in example Masaya Suzuki (1): doc: describe Git bundle format Philippe Blain (1): grep: ignore --recurse-submodules if --no-index is given Ralf Thielow (1): submodule.c: mark more strings for translation brian m. carlson (7): run-command: avoid undefined behavior in exists_in_PATH docs: use "currently" for the present time doc: move author and committer information to git-commit(1) docs: expand on possible and recommended user config options doc: provide guidance on user.name format doc: dissuade users from trying to ignore tracked files docs: mention when increasing http.postBuffer is valuable Version v2.25.0; changes since v2.25.0-rc2: ------------------------------------------- Alessandro Menti (1): l10n: it.po: update the Italian translation for Git 2.25.0 Alexander Shopov (1): l10n: bg.po: Updated Bulgarian translation (4800t) Christopher Diaz Riveros (1): l10n: es: 2.25.0 round #1 Jean-Noël Avila (1): l10n: fr.po v2.25.0 rnd 1 Jiang Xin (2): l10n: git.pot: v2.25.0 round 1 (119 new, 13 removed) l10n: zh_CN: for git v2.25.0 l10n round 1 Johannes Schindelin (1): mingw: safeguard better against backslashes in file names Jordi Mas (2): l10n: Update Catalan translation l10n: Update Catalan translation Junio C Hamano (2): Revert "Merge branch 'ra/rebase-i-more-options'" Git 2.25 Martin Ågren (1): config/advice.txt: fix description list separator Matthias Rüster (1): l10n: de.po: Update German translation v2.25.0 round 1 Peter Krefting (1): l10n: sv.po: Update Swedish translation (4800t0f0u) Thomas Braun (1): l10n: de.po: Reword generation numbers Trần Ngọc Quân (1): l10n: vi(4800t): Updated Vietnamese translation v2.25.0 Yi-Jyun Pan (2): l10n: zh_TW: add translation for v2.24.0 l10n: zh_TW.po: update translation for v2.25.0 round 1 Version v2.25.0-rc2; changes since v2.25.0-rc1: ----------------------------------------------- Denis Ovsienko (1): gitweb: fix a couple spelling errors in comments Derrick Stolee (6): sparse-checkout: list directories in cone mode sparse-checkout: document interactions with submodules sparse-checkout: use extern for global variables commit-graph: prefer default size_mult when given zero graph: drop assert() for merge with two collapsing parents graph: fix lack of color in horizontal lines Elijah Newren (1): merge-recursive: remove unnecessary oid_eq function Eric Wong (2): packfile: remove redundant fcntl F_GETFD/F_SETFD packfile: replace lseek+read with pread Johannes Berg (1): multi-pack-index: correct configuration in documentation Johannes Schindelin (1): mingw: only test index entries for backslashes, not tree entries Jonathan Gilbert (3): git-gui: consolidate naming conventions git-gui: update status bar to track operations git-gui: revert untracked files by deleting them Junio C Hamano (2): The final batch before -rc2 Git 2.25-rc2 Kazuhiro Kato (1): git gui: fix branch name encoding error Paul Menzel (1): am: document that Date: can appear as an in-body header Philippe Blain (2): doc: log, gitk: document accepted line-log diff formats doc: log, gitk: line-log arguments must exist in starting revision Pratyush Yadav (1): git-gui: allow closing console window with Escape Taylor Blau (1): Documentation/git-sparse-checkout.txt: fix a typo Thomas Menzel (1): doc: submodule: fix typo for command absorbgitdirs Zoli Szabó (1): git-gui: allow opening currently selected file in default app Version v2.25.0-rc1; changes since v2.25.0-rc0: ----------------------------------------------- Ben Keene (2): git-p4: yes/no prompts should sanitize user text git-p4: show detailed help when parsing options fail Ed Maste (1): CI: add FreeBSD CI support via Cirrus-CI Elijah Newren (1): rebase: fix saving of --signoff state for am-based rebases Johannes Schindelin (2): mingw: short-circuit the conversion of `/dev/null` to UTF-16 mingw: refuse paths containing reserved names Johannes Sixt (1): t3008: find test-tool through path lookup Junio C Hamano (2): mailmap: mask accentless variant for Công Danh Git 2.25-rc1 Version v2.25.0-rc0; changes since v2.24.4: ------------------------------------------- Alban Gruin (6): sequencer: update `total_nr' when adding an item to a todo list sequencer: update `done_nr' when skipping commands in a todo list sequencer: move the code writing total_nr on the disk to a new function rebase: fill `squash_onto' in get_replay_opts() sequencer: directly call pick_commits() from complete_action() sequencer: fix a memory leak in sequencer_continue() Alexandr Miloslavskiy (14): parse-options.h: add new options `--pathspec-from-file`, `--pathspec-file-nul` pathspec: add new function to parse file doc: reset: synchronize description reset: support the `--pathspec-from-file` option doc: commit: synchronize description commit: support the --pathspec-from-file option cmd_add: prepare for next patch add: support the --pathspec-from-file option doc: checkout: remove duplicate synopsis doc: checkout: fix broken text reference doc: checkout: synchronize description doc: restore: synchronize description checkout, restore: support the --pathspec-from-file option commit: forbid --pathspec-from-file --all Andreas Schwab (1): t7812: add missing redirects Andrei Rybak (1): INSTALL: use existing shell scripts as example Colin Stolley (1): packfile.c: speed up loading lots of packfiles Daniel Ferreira (2): diff: export diffstat interface built-in add -i: implement the `status` command Denton Liu (93): format-patch: replace erroneous and condition format-patch: use enum variables format-patch: teach --cover-from-description option rebase: hide --preserve-merges option t4108: replace create_file with test_write_lines t4108: remove git command upstream of pipe t4108: use `test_config` instead of `git config` t4108: demonstrate bug in apply apply: respect merge.conflictStyle in --3way submodule: teach set-url subcommand git-diff.txt: document return code of `--no-index` completion: learn to complete `git rebase --onto=` t4215: use helper function to check output argv-array: add space after `while` rev-list-options.txt: remove reference to --show-notes SubmittingPatches: use generic terms for hash pretty-formats.txt: use generic terms for hash SubmittingPatches: remove dq from commit reference completion: complete `tformat:` pretty format revision: make get_revision_mark() return const pointer pretty.c: inline initalize format_context t4205: cover `git log --reflog -z` blindspot pretty: add struct cmt_fmt_map::default_date_mode_type pretty: implement 'reference' format SubmittingPatches: use `--pretty=reference` pretty-options.txt: --notes accepts a ref instead of treeish t3206: remove spaces after redirect operators t3206: disable parameter substitution in heredoc t3206: s/expected/expect/ t3206: range-diff compares logs with commit notes range-diff: output `## Notes ##` header range-diff: pass through --notes to `git log` format-patch: pass notes configuration to range-diff t0000: test multiple local assignment t: teach test_cmp_rev to accept ! for not-equals t5520: improve test style t5520: use sq for test case names t5520: let sed open its own input t5520: replace test -f with test-lib functions t5520: remove spaces after redirect operator t5520: use test_line_count where possible t5520: replace test -{n,z} with test-lib functions t5520: use test_cmp_rev where possible t5520: test single-line files by git with test_cmp t5520: don't put git in upstream of pipe t5520: replace $(cat ...) comparison with test_cmp t5520: remove redundant lines in test cases t5520: replace `! git` with `test_must_fail git` lib-bash.sh: move `then` onto its own line apply-one-time-sed.sh: modernize style t0014: remove git command upstream of pipe t0090: stop losing return codes of git commands t3301: stop losing return codes of git commands t3600: use test_line_count() where possible t3600: stop losing return codes of git commands t3600: comment on inducing SIGPIPE in `git rm` t4015: stop losing return codes of git commands t4015: use test_write_lines() t4138: stop losing return codes of git commands t5317: stop losing return codes of git commands t5317: use ! grep to check for no matching lines t5703: simplify one-time-sed generation logic t5703: stop losing return codes of git commands t7501: remove spaces after redirect operators t7501: stop losing return codes of git commands t7700: drop redirections to /dev/null t7700: remove spaces after redirect operators t7700: move keywords onto their own line t7700: s/test -f/test_path_is_file/ doc: replace MARC links with lore.kernel.org RelNotes: replace Gmane with real Message-IDs doc: replace LKML link with lore.kernel.org t7700: consolidate code into test_no_missing_in_packs() t7700: consolidate code into test_has_duplicate_object() t7700: replace egrep with grep t7700: make references to SHA-1 generic t7700: stop losing return codes of git commands t3400: demonstrate failure with format.useAutoBase format-patch: fix indentation t4014: use test_config() format-patch: teach --no-base rebase: fix format.useAutoBase breakage t3206: fix incorrect test name range-diff: mark pointers as const range-diff: clear `other_arg` at end of function notes: rename to load_display_notes() notes: create init_display_notes() helper notes: extract logic into set_display_notes() format-patch: use --notes behavior for format.notes format-patch: move git_config() before repo_init_revisions() config/format.txt: clarify behavior of multiple format.notes notes: break set_display_notes() into smaller functions notes.h: fix typos in comment Derrick Stolee (22): test-tool: use 'read-graph' helper sparse-checkout: create builtin with 'list' subcommand sparse-checkout: create 'init' subcommand clone: add --sparse mode sparse-checkout: 'set' subcommand sparse-checkout: add '--stdin' option to set subcommand sparse-checkout: create 'disable' subcommand sparse-checkout: add 'cone' mode sparse-checkout: use hashmaps for cone patterns sparse-checkout: init and set in cone mode unpack-trees: hash less in cone mode unpack-trees: add progress to clear_ce_flags() sparse-checkout: sanitize for nested folders sparse-checkout: update working directory in-process sparse-checkout: use in-process update for disable subcommand sparse-checkout: write using lockfile sparse-checkout: cone mode should not interact with .gitignore sparse-checkout: update working directory in-process for 'init' sparse-checkout: check for dirty status progress: create GIT_PROGRESS_DELAY commit-graph: use start_delayed_progress() sparse-checkout: respect core.ignoreCase in cone mode Dimitriy Ryazantcev (1): l10n: minor case fix in 'git branch' '--unset-upstream' description Dominic Jäger (1): merge-strategies: fix typo "reflected to" to "reflected in" Ed Maste (3): t4210: skip i18n tests that don't work on FreeBSD userdiff: remove empty subexpression from elixir regex sparse-checkout: improve OS ls compatibility Elia Pinto (1): kset.h, tar.h: add missing header guard to prevent multiple inclusion Elijah Newren (26): merge-recursive: clean up get_renamed_dir_portion() merge-recursive: fix merging a subdirectory into the root directory t604[236]: do not run setup in separate tests Documentation: fix a bunch of typos, both old and new Fix spelling errors in documentation outside of Documentation/ git-filter-branch.txt: correct argument name typo hashmap: fix documentation misuses of -> versus . name-hash.c: remove duplicate word in comment t6024: modernize style Fix spelling errors in code comments Fix spelling errors in comments of testcases Fix spelling errors in names of tests Fix spelling errors in messages shown to users Fix spelling errors in test commands sha1dc: fix trivial comment spelling error multimail: fix a few simple spelling errors Fix spelling errors in no-longer-updated-from-upstream modules t3011: demonstrate directory traversal failures Revert "dir.c: make 'git-status --ignored' work within leading directories" dir: remove stray quote character in comment dir: exit before wildcard fall-through if there is no wildcard dir: break part of read_directory_recursive() out for reuse t3434: mark successful test as such dir: fix checks on common prefix directory dir: synchronize treat_leading_path() and read_directory_recursive() dir: consolidate similar code in treat_directory() Emily Shaffer (4): documentation: add tutorial for object walking myfirstcontrib: add 'psuh' to command-list.txt myfirstcontrib: add dependency installation step myfirstcontrib: hint to find gitgitgadget allower Erik Chen (1): fetch: add trace2 instrumentation Hans Jerry Illikainen (4): gpg-interface: refactor the free-and-xmemdupz pattern gpg-interface: limit search for primary key fingerprint gpg-interface: prefer check_signature() for GPG verification grep: don't return an expression from pcre2_free() Hariom Verma (2): builtin/blame.c: constants into bit shift format git-compat-util.h: drop the `PRIuMAX` and other fallback definitions Heba Waly (22): config: move documentation to config.h documentation: remove empty doc files diff: move doc to diff.h and diffcore.h dir: move doc to dir.h graph: move doc to graph.h and graph.c merge: move doc to ll-merge.h sha1-array: move doc to sha1-array.h remote: move doc to remote.h and refspec.h refs: move doc to refs.h attr: move doc to attr.h revision: move doc to revision.h pathspec: move doc to pathspec.h sigchain: move doc to sigchain.h cache: move doc to cache.h argv-array: move doc to argv-array.h credential: move doc to credential.h parse-options: add link to doc file in parse-options.h run-command: move doc to run-command.h trace: move doc to trace.h tree-walk: move doc to tree-walk.h submodule-config: move doc to submodule-config.h trace2: move doc to trace2.h James Coglan (13): graph: automatically track display width of graph lines graph: handle line padding in `graph_next_line()` graph: reuse `find_new_column_by_commit()` graph: reduce duplication in `graph_insert_into_new_columns()` graph: remove `mapping_idx` and `graph_update_width()` graph: extract logic for moving to GRAPH_PRE_COMMIT state graph: example of graph output that can be simplified graph: tidy up display of left-skewed merges graph: commit and post-merge lines for left-skewed merges graph: rename `new_mapping` to `old_mapping` graph: smooth appearance of collapsing edges on commit lines graph: flatten edges that fuse with their right neighbor graph: fix coloring of octopus dashes James Shubin (1): completion: tab-complete "git svn --recursive" Jean-Noël Avila (2): doc: remove non pure ASCII characters doc: indent multi-line items in list Jeff Hostetler (1): trace2: add region in clear_ce_flags Jeff King (37): parse_commit_buffer(): treat lookup_commit() failure as parse error parse_commit_buffer(): treat lookup_tree() failure as parse error parse_tag_buffer(): treat NULL tag pointer as parse error commit, tag: don't set parsed bit for parse failures fsck: stop checking commit->tree value fsck: stop checking commit->parent counts fsck: stop checking tag->tagged fsck: require an actual buffer for non-blobs fsck: unify object-name code fsck_describe_object(): build on our get_object_name() primitive fsck: use oids rather than objects for object_name API fsck: don't require object structs for display functions fsck: only provide oid/type in fsck_error callback fsck: only require an oid for skiplist functions fsck: don't require an object struct for report() fsck: accept an oid instead of a "struct blob" for fsck_blob() fsck: drop blob struct from fsck_finish() fsck: don't require an object struct for fsck_ident() fsck: don't require an object struct in verify_headers() fsck: rename vague "oid" local variables fsck: accept an oid instead of a "struct tag" for fsck_tag() fsck: accept an oid instead of a "struct commit" for fsck_commit() fsck: accept an oid instead of a "struct tree" for fsck_tree() hex: drop sha1_to_hex_r() pack-objects: avoid pointless oe_map_new_pack() calls hex: drop sha1_to_hex() send-pack: check remote ref status on pack-objects failure t9502: pass along all arguments in xss helper t/gitweb-lib.sh: drop confusing quotes t/gitweb-lib.sh: set $REQUEST_URI gitweb: escape URLs generated by href() rev-parse: make --show-toplevel without a worktree an error perf-lib: use a single filename for all measurement types t/perf: don't depend on Git.pm send-pack: use OBJECT_INFO_QUICK to check negative objects doc: recommend lore.kernel.org over public-inbox.org doc: replace public-inbox links with lore.kernel.org Johannes Schindelin (57): t1400: wrap setup code in test case git_path(): handle `.lock` files correctly vreportf(): avoid relying on stdio buffering update-index: optionally leave skip-worktree entries alone stash: handle staged changes in skip-worktree files correctly fetch: add the command-line option `--write-commit-graph` fetch: avoid locking issues between fetch.jobs/fetch.writeCommitGraph remote-curl: unbreak http.extraHeader with custom allocators Start to implement a built-in version of `git add --interactive` built-in add -i: implement the main loop built-in add -i: show unique prefixes of the commands built-in add -i: support `?` (prompt help) rebase-merges: move labels' whitespace mangling into `label_oid()` git svn: stop using `rebase --preserve-merges` mingw: demonstrate that all file handles are inherited by child processes mingw: work around incorrect standard handles mingw: spawned processes need to inherit only standard handles mingw: restrict file handle inheritance only on Windows 7 and later mingw: do set `errno` correctly when trying to restrict handle inheritance add-interactive: make sure to release `rev.prune_data` built-in add -i: allow filtering the modified files list built-in add -i: prepare for multi-selection commands built-in add -i: implement the `update` command built-in add -i: re-implement `revert` in C built-in add -i: re-implement `add-untracked` in C built-in add -i: implement the `patch` command built-in add -i: re-implement the `diff` command built-in add -i: offer the `quit` command pkt-line: fix a typo mingw: forbid translating ERROR_SUCCESS to an errno value t3701: add a test for advanced split-hunk editing t3701: avoid depending on the TTY prerequisite t3701: add a test for the different `add -p` prompts t3701: verify the shown messages when nothing can be added t3701: verify that the diff.algorithm config setting is handled git add -p: use non-zero exit code when the diff generation failed apply --allow-overlap: fix a corner case t3404: fix indentation built-in add -i: start implementing the `patch` functionality in C built-in add -i: wire up the new C code for the `patch` command built-in add -p: show colored hunks by default built-in add -p: adjust hunk headers as needed built-in add -p: color the prompt and the help text built-in add -p: offer a helpful error message when hunk navigation failed built-in add -p: support multi-file diffs built-in add -p: handle deleted empty files built-in app -p: allow selecting a mode change as a "hunk" built-in add -p: show different prompts for mode changes and deletions built-in add -p: implement the hunk splitting feature built-in add -p: coalesce hunks after splitting them strbuf: add a helper function to call the editor "on an strbuf" built-in add -p: implement hunk editing built-in add -p: implement the 'g' ("goto") command built-in add -p: implement the '/' ("search regex") command built-in add -p: implement the 'q' ("quit") command built-in add -p: only show the applicable parts of the help text built-in add -p: show helpful hint when nothing can be staged Jonathan Tan (6): fetch-pack: write fetched refs to .promisor fetch: remove fetch_if_missing=0 clone: remove fetch_if_missing=0 promisor-remote: remove fetch_if_missing=0 Doc: explain submodule.alternateErrorStrategy submodule--helper: advise on fatal alternate error Josh Holland (1): userdiff: support Python async functions Junio C Hamano (13): doc: am --show-current-patch gives an entire e-mail message The first batch post 2.24 cycle fsmonitor: do not compare bitmap size with size of split index ci(osx): update homebrew-cask repository with less noise rebase -i: finishing touches to --reset-author-date The second batch The third batch The fourth batch The fifth batch Makefile: drop GEN_HDRS The sixth batch dir.c: use st_add3() for allocation size Git 2.25-rc0 Kevin Willford (1): fsmonitor: fix watchman integration Manish Goregaokar (2): doc: document 'git submodule status --cached' submodule: fix 'submodule status' when called from a subdirectory Martin Ågren (1): t7004: check existence of correct tag Matthew Rogers (1): rebase -r: let `label` generate safer labels Mihail Atanassov (1): Documentation/git-bisect.txt: add --no-ff to merge command Mike Hommey (2): revision: clear the topo-walk flags in reset_revision_walk revision: free topo_walk_info before creating a new one in init_topo_walk Miriam Rubio (1): clone: rename static function `dir_exists()`. Nathan Stocks (1): t: fix typo in test descriptions Naveen Nathan (1): doc: improve readability of --rebase-merges in git-rebase Nika Layzell (1): reset: parse rev as tree-ish in patch mode Philip Oakley (1): Doc: Bundle file usage Philippe Blain (4): help: add gitsubmodules to the list of guides worktree: teach "add" to ignore submodule.recurse config doc: mention that 'git submodule update' fetches missing commits gitmodules: link to gitsubmodules guide Phillip Wood (7): t3404: remove unnecessary subshell t3404: set $EDITOR in subshell t3404: remove uneeded calls to set_fake_editor sequencer.h fix placement of #endif move run_commit_hook() to libgit and use it there sequencer: run post-commit hook sequencer: fix empty commit check when amending Prarit Bhargava (3): t6006: use test-lib.sh definitions t4203: use test-lib.sh definitions pretty: add "%aL" etc. to show local-part of email addresses Pratyush Yadav (1): git-shortlog.txt: include commit limiting options Ralf Thielow (1): fetch.c: fix typo in a warning message René Scharfe (32): trace2: add dots directly to strbuf in perf_fmt_prepare() utf8: use skip_iprefix() in same_utf_encoding() convert: use skip_iprefix() in validate_encoding() mingw: use COPY_ARRAY for copying array parse-options: avoid arithmetic on pointer that's potentially NULL pretty: provide short date format fetch: use skip_prefix() instead of starts_with() fmt-merge-msg: use skip_prefix() instead of starts_with() shell: use skip_prefix() instead of starts_with() push: use skip_prefix() instead of starts_with() name-rev: use skip_prefix() instead of starts_with() run-command: use prepare_git_cmd() in prepare_cmd() t1512: use test_line_count t1410: use test_line_count t1400: use test_must_be_empty test: use test_must_be_empty F instead of test -z $(cat F) test: use test_must_be_empty F instead of test_cmp empty F t9300: don't create unused file t7811: don't create unused file xdiff: unignore changes in function context name-rev: use strbuf_strip_suffix() in get_rev_name() commit: use strbuf_add() to add a length-limited string patch-id: use oid_to_hex() to print multiple object IDs archive-zip: use enum for compression method t4256: don't create unused file t7004: don't create unused file refs: pass NULL to refs_read_ref_full() because object ID is not needed remote: pass NULL to read_ref_full() because object ID is not needed t3501: don't create unused file t5580: don't create unused file t6030: don't create unused file t4015: improve coverage of function context test Robin H. Johnson (3): bundle: framework for options before bundle file bundle-create: progress output control bundle-verify: add --quiet Rohit Ashiwal (6): rebase -i: add --ignore-whitespace flag sequencer: allow callers of read_author_script() to ignore fields rebase -i: support --committer-date-is-author-date sequencer: rename amend_author to author_to_rename rebase -i: support --ignore-date rebase: add --reset-author-date Ruud van Asseldonk (1): t5150: skip request-pull test if Perl is disabled SZEDER Gábor (29): Documentation: mention more worktree-specific exceptions path.c: clarify trie_find()'s in-code comment path.c: mark 'logs/HEAD' in 'common_list' as file path.c: clarify two field names in 'struct common_dir' path.c: don't call the match function without value in trie_find() builtin/commit-graph.c: remove subcommand-less usage string builtin/blame.c: remove '--indent-heuristic' from usage string test-lib: don't check prereqs of test cases that won't be run anyway t6120-describe: correct test repo history graph in comment builtin/unpack-objects.c: show throughput progress tests: add 'test_bool_env' to catch non-bool GIT_TEST_* values t5608-clone-2gb.sh: turn GIT_TEST_CLONE_2GB into a bool sequencer: don't re-read todo for revert and cherry-pick test-lib-functions: suppress a 'git rev-parse' error in 'test_commit_bulk' ci: build Git with GCC 9 in the 'osx-gcc' build job t9300-fast-import: store the PID in a variable instead of pidfile t9300-fast-import: don't hang if background fast-import exits too early t6120-describe: modernize the 'check_describe' helper name-rev: avoid unnecessary cast in name_ref() name-rev: use sizeof(*ptr) instead of sizeof(type) in allocation t6120: add a test to cover inner conditions in 'git name-rev's name_rev() name-rev: extract creating/updating a 'struct name_rev' into a helper name-rev: pull out deref handling from the recursion name-rev: restructure parsing commits and applying date cutoff name-rev: restructure creating/updating 'struct rev_name' instances name-rev: drop name_rev()'s 'generation' and 'distance' parameters name-rev: use 'name->tip_name' instead of 'tip_name' name-rev: eliminate recursion in name_rev() name-rev: cleanup name_ref() Slavica Đukić (3): built-in add -i: color the header in the `status` command built-in add -i: use color in the main loop built-in add -i: implement the `help` command Tanushree Tumane (2): bisect--helper: avoid use-after-free bisect--helper: convert `*_warning` char pointers to char arrays. Thomas Gummerer (1): stash: make sure we have a valid index before writing it Todd Zullinger (1): t7812: expect failure for grep -i with invalid UTF-8 data Utsav Shah (1): unpack-trees: skip stat on fsmonitor-valid files William Baker (6): midx: add MIDX_PROGRESS flag midx: add progress to write_midx_file midx: add progress to expire_midx_packs midx: honor the MIDX_PROGRESS flag in verify_midx_file midx: honor the MIDX_PROGRESS flag in midx_repack multi-pack-index: add [--[no-]progress] option. brian m. carlson (16): t/oid-info: allow looking up hash algorithm name t/oid-info: add empty tree and empty blob values rev-parse: add a --show-object-format option t1305: avoid comparing extensions t3429: remove SHA1 annotation t4010: abstract away SHA-1-specific constants t4011: abstract away SHA-1-specific constants t4015: abstract away SHA-1-specific constants t4027: make hash-size independent t4034: abstract away SHA-1-specific constants t4038: abstract away SHA-1 specific constants t4039: abstract away SHA-1-specific constants t4044: update test to work with SHA-256 t4045: make hash-size independent t4048: abstract away SHA-1-specific constants t9001: avoid including non-trailing NUL bytes in variables r.burenkov (1): git-p4: honor lfs.storage configuration variable ryenus (1): fix-typo: consecutive-word duplications Đoàn Trần Công Danh (14): t3301: test diagnose messages for too few/many paramters notes: fix minimum number of parameters to "copy" subcommand t0028: eliminate non-standard usage of printf configure.ac: define ICONV_OMITS_BOM if necessary t3900: demonstrate git-rebase problem with multi encoding sequencer: reencode to utf-8 before arrange rebase's todo list sequencer: reencode revert/cherry-pick's todo list sequencer: reencode squashing commit's message sequencer: reencode old merge-commit message sequencer: reencode commit message for am/rebase --show-current-patch sequencer: handle rebase-merges for "onto" message date.c: switch to reentrant {gm,local}time_r archive-zip.c: switch to reentrant localtime_r mingw: use {gm,local}time_s as backend for {gm,local}time_r Łukasz Niemier (1): userdiff: add Elixir to supported userdiff languages Version v2.24.4; changes since v2.24.3: --------------------------------------- Johannes Schindelin (9): run-command: invalidate lstat cache after a command finished Git 2.17.6 Git 2.18.5 Git 2.19.6 Git 2.20.5 Git 2.21.4 Git 2.22.5 Git 2.23.4 Git 2.24.4 Matheus Tavares (2): checkout: fix bug that makes checkout follow symlinks in leading path unpack_trees(): start with a fresh lstat cache Version v2.24.3; changes since v2.24.2: --------------------------------------- Jeff King (6): t0300: make "quit" helper more realistic t0300: use more realistic inputs credential: parse URL without host as empty host, not unset credential: refuse to operate when missing host or protocol credential: die() when parsing invalid urls Git 2.17.5 Jonathan Nieder (4): fsck: convert gitmodules url to URL passed to curl credential: treat URL without scheme as invalid credential: treat URL with empty scheme as invalid fsck: reject URL with empty host in .gitmodules Version v2.24.2; changes since v2.24.1: --------------------------------------- Jeff King (4): credential: avoid writing values with newlines t/lib-credential: use test_i18ncmp to check stderr credential: detect unrepresentable values when parsing urls fsck: detect gitmodules URLs with embedded newlines Johannes Schindelin (1): msvc: accommodate for vcpkg's upgrade to OpenSSL v1.1.x Junio C Hamano (1): Git 2.17.4 Version v2.24.1; changes since v2.24.0: --------------------------------------- Garima Singh (2): test-path-utils: offer to run a protectNTFS/protectHFS benchmark tests: add a helper to stress test argument quoting Jeff King (7): t9300: drop some useless uses of cat t9300: create marks files for double-import-marks test fast-import: tighten parsing of boolean command line options fast-import: stop creating leading directories for import-marks fast-import: delay creating leading directories for export-marks fast-import: disallow "feature export-marks" by default fast-import: disallow "feature import-marks" by default Johannes Schindelin (36): clone --recurse-submodules: prevent name squatting on Windows mingw: disallow backslash characters in tree objects' file names path.c: document the purpose of `is_ntfs_dotgit()` is_ntfs_dotgit(): only verify the leading segment path: safeguard `.git` against NTFS Alternate Streams Accesses is_ntfs_dotgit(): speed it up mingw: fix quoting of arguments path: also guard `.gitmodules` against NTFS Alternate Data Streams protect_ntfs: turn on NTFS protection by default Disallow dubiously-nested submodule git directories quote-stress-test: accept arguments to test via the command-line t6130/t9350: prepare for stringent Win32 path validation quote-stress-test: allow skipping some trials unpack-trees: let merged_entry() pass through do_add_entry()'s errors mingw: refuse to access paths with illegal characters quote-stress-test: offer to test quoting arguments for MSYS2 sh mingw: refuse to access paths with trailing spaces or periods mingw: handle `subst`-ed "DOS drives" Git 2.14.6 Git 2.15.4 test-drop-caches: use `has_dos_drive_prefix()` Git 2.16.6 Git 2.17.3 Git 2.18.2 Git 2.19.3 t7415: adjust test for dubiously-nested submodule gitdirs for v2.20.x Git 2.20.2 mingw: detect when MSYS2's sh is to be spawned more robustly mingw: use MSYS2 quoting even when spawning shell scripts mingw: fix quoting of empty arguments for `sh` t7415: drop v2.20.x-specific work-around mingw: sh arguments need quoting in more circumstances Git 2.21.1 Git 2.22.2 Git 2.23.1 Git 2.24.1 Jonathan Nieder (3): submodule: reject submodule.update = !command in .gitmodules fsck: reject submodule.update = !command in .gitmodules submodule: defend against submodule.update = !command in .gitmodules Version v2.24.0; changes since v2.24.0-rc2: ------------------------------------------- Alessandro Menti (2): l10n: it.po: update the Italian translation for Git 2.24.0 l10n: it.po: update the Italian translation for Git 2.24.0 round #2 Alexander Shopov (2): l10n: bg.po: Updated Bulgarian translation (4693) l10n: bg.po: Updated Bulgarian translation (4694) Bert Wesarg (2): git-gui: use existing interface to query a path's attribute git-gui: support for diff3 conflict style Christopher Diaz Riveros (1): l10n: es: 2.24.0 round 2 Derrick Stolee (2): t5510-fetch.sh: demonstrate fetch.writeCommitGraph bug commit-graph: fix writing first commit-graph during fetch Elijah Newren (2): RelNotes/2.24.0: typofix RelNotes/2.24.0: fix self-contradictory note Jean-Noël Avila (2): l10n: fr 2.24.0 rnd 1 l10n: fr v2.24.0 rnd2 Jiang Xin (3): l10n: git.pot: v2.24.0 round 1 (35 new, 16 removed) l10n: git.pot: v2.24.0 round 2 (1 new) l10n: zh_CN: for git v2.24.0 l10n round 1~2 Johannes Schindelin (1): Fix build with core.autocrlf=true Jonathan Tan (1): fetch: delay fetch_if_missing=0 until after config Jordi Mas (1): l10n: Update Catalan translation Junio C Hamano (1): Git 2.24 Martin Ågren (2): treewide: correct several "up-to-date" to "up to date" manpage-bold-literal.xsl: match for namespaced "d:literal" in template Matthias Rüster (1): l10n: de.po: Update German translation Peter Krefting (2): l10n: sv.po: Update Swedish translation (4674t0f0u) l10n: sv.po: Update Swedish translation (4695t0f0u) Pratyush Yadav (1): git-gui: add a readme Thomas Klaeger (1): git-gui (Windows): use git-bash.exe if it is available Trần Ngọc Quân (1): l10n: vi(4694t): Updated translation for v2.24.0 kdnakt (1): git-gui: improve Japanese translation Version v2.24.0-rc2; changes since v2.24.0-rc1: ----------------------------------------------- Johannes Schindelin (1): mingw: avoid a buffer overrun in `needs_hiding()` Junio C Hamano (1): Git 2.24-rc2 Robert Luberda (1): gitweb: correctly store previous rev in javascript-actions mode William Baker (1): t7519-status-fsmonitor: improve comments Version v2.24.0-rc1; changes since v2.24.0-rc0: ----------------------------------------------- Bert Wesarg (1): t4014: make output-directory tests self-contained Carlo Marcelo Arenas Belón (3): grep: make PCRE1 aware of custom allocator grep: make PCRE2 aware of custom allocator grep: avoid leak of chartables in PCRE2 Denton Liu (1): t7419: change test_must_fail to ! for grep Derrick Stolee (1): repo-settings: read an int for index.version Johannes Schindelin (3): ci(visual-studio): use strict compile flags, and optimization ci(visual-studio): actually run the tests in parallel ci(osx): use new location of the `perforce` cask Junio C Hamano (2): Eleventh batch Git 2.24-rc1 Maxim Belsky (1): completion: clarify installation instruction for zsh Norman Rasmussen (1): diff-highlight: fix a whitespace nit SZEDER Gábor (2): test-progress: fix test failures on big-endian systems ci: fix GCC install in the Travis CI GCC OSX job Stephen Boyd (1): userdiff: fix some corner cases in dts regex William Baker (1): fsmonitor: don't fill bitmap with entries to be removed brian m. carlson (1): remote-curl: pass on atomic capability to remote side Version v2.24.0-rc0; changes since v2.23.4: ------------------------------------------- Adam Roben (1): mingw: fix launching of externals from Unicode paths Alex Henrie (4): doc: fix reference to --ignore-submodules commit-graph: remove a duplicate assignment diffcore-break: use a goto instead of a redundant if statement wrapper: use a loop instead of repetitive statements Alexandr Miloslavskiy (4): contrib/buildsystems: fix Visual Studio Debug configuration t0028: fix test for UTF-16-LE-BOM t0028: add more tests t0061: fix test for argv[0] with spaces (MINGW only) Ali Utku Selen (1): shallow.c: don't free unallocated slabs Andrey Mazo (1): .mailmap: update email address of Andrey Mazo Beat Bolli (3): grep: under --debug, show whether PCRE JIT is enabled utf8: use ARRAY_SIZE() in git_wcwidth() git-compat-util: fix documentation syntax Ben Milman (1): repository-layout.txt: correct pluralization of 'object' Ben Wijen (2): builtin/rebase.c: make sure the active branch isn't moved when autostashing builtin/rebase.c: Remove pointless message Bert Wesarg (4): git-gui: convert new/amend commit radiobutton to checkbutton git-gui: add horizontal scrollbar to commit buffer builtin/submodule--helper: fix usage string for 'update-clone' format-patch: create leading components of output directory Birger Skogeng Pedersen (2): git-gui: add hotkeys to set widget focus git-gui: add hotkey to toggle "Amend Last Commit" CB Bailey (1): t4038: Remove non-portable '-a' option passed to test_cmp Cameron Steffen (1): doc: minor formatting fix Carlo Marcelo Arenas Belón (4): http: use xmalloc with cURL grep: make sure NO_LIBPCRE1_JIT disable JIT in PCRE1 grep: refactor and simplify PCRE1 support grep: skip UTF8 checks explicitly Christian Couder (15): t0410: remove pipes after git commands fetch-object: make functions return an error code Add initial support for many promisor remotes promisor-remote: implement promisor_remote_get_direct() promisor-remote: add promisor_remote_reinit() promisor-remote: use repository_format_partial_clone Use promisor_remote_get_direct() and has_promisor_remote() promisor-remote: parse remote.*.partialclonefilter builtin/fetch: remove unique promisor remote limitation t0410: test fetching from many promisor remotes partial-clone: add multiple remotes in the doc remote: add promisor and partial clone config to the doc Remove fetch-object.{c,h} in favor of promisor-remote.{c,h} Move repository_format_partial_clone to promisor-remote.c Move core_partial_clone_filter_default to promisor-remote.c Clément Chigot (1): contrib/svn-fe: fix shebang for svnrdump_sim.py Corentin BOMPARD (1): pull, fetch: add --set-upstream option David Turner (1): clarify documentation for remote helpers Denton Liu (49): packfile.h: drop extern from function declaration t4014: drop unnecessary blank lines from test cases t3431: add rebase --fork-point tests t3432: test rebase fast-forward behavior completion: merge options for cherry-pick and revert completion: add --skip for cherry-pick and revert status: mention --skip for revert and cherry-pick rebase: refactor can_fast_forward into goto tower rebase: fast-forward --onto in more cases rebase: fast-forward --fork-point in more cases rebase: teach rebase --keep-base mingw: apply array.cocci rule compat/*.[ch]: remove extern from function declarations using spatch t4014: s/expected/expect/ t4014: move closing sq onto its own line t4014: use sq for test case names t4014: remove spaces after redirect operators t4014: use indentable here-docs t4014: drop redirections to /dev/null t4014: let sed open its own files t4014: use test_line_count() where possible t4014: remove confusing pipe in check_threading() t4014: stop losing return codes of git commands Doc: add more detail for git-format-patch config/format.txt: specify default value of format.coverLetter t: use common $SQ variable completion: teach rebase to use __gitcomp_builtin completion: teach archive to use __gitcomp_builtin git-submodule.txt: fix AsciiDoc formatting error Makefile: strip leading ./ in $(LIB_H) Makefile: define THIRD_PARTY_SOURCES Makefile: strip leading ./ in $(FIND_SOURCE_FILES) Makefile: run coccicheck on more source files gitk: rename zh_CN.po to zh_cn.po promisor-remote.h: drop extern from function declaration apply.h: include missing header promisor-remote.h: include missing header pack-bitmap.h: remove magic number Makefile: emulate compile in $(HCO) target better test-lib: let test_merge() perform octopus merges t4214: use test_merge t4214: generate expect in their own test cases t4214: explicitly list tags in log t4214: demonstrate octopus graph coloring failure git-rev-list.txt: prune options in synopsis t4014: treat rev-list output as the expected value t0000: cover GIT_SKIP_TESTS blindspots pthread.h: manually align parameter lists Makefile: respect $(V) in %.cocci.patch target Derrick Stolee (14): repo-settings: consolidate some config settings t6501: use 'git gc' in quiet mode commit-graph: turn on commit-graph by default repo-settings: parse core.untrackedCache repo-settings: create feature.manyFiles setting repo-settings: create feature.experimental setting merge-recursive: introduce an enum for detect_directory_renames values checkout: add simple check for 'git checkout -b' fetch: add fetch.writeCommitGraph config setting treewide: rename 'struct exclude' to 'struct path_pattern' treewide: rename 'struct exclude_list' to 'struct pattern_list' treewide: rename 'EXCL_FLAG_' to 'PATTERN_FLAG_' treewide: rename 'exclude' methods to 'pattern' unpack-trees: rename 'is_excluded_from_list()' Elijah Newren (53): git-fast-import.txt: clarify that multiple merge commits are allowed checkout: remove duplicate code merge-recursive: be consistent with assert checkout: provide better conflict hunk description with detached HEAD merge-recursive: enforce opt->ancestor != NULL when calling merge_trees() merge-recursive: provide a better label for diff3 common ancestor merge-recursive: future-proof update_file_flags() against memory leaks merge-recursive: remove another implicit dependency on the_repository Ensure index matches head before invoking merge machinery, round N merge-recursive: exit early if index != head merge-recursive: remove useless parameter in merge_trees() merge-recursive: don't force external callers to do our logging cache-tree: share code between functions writing an index as a tree merge-recursive: fix some overly long lines merge-recursive: use common name for ancestors/common/base_list merge-recursive: rename 'mrtree' to 'result_tree', for clarity merge-recursive: rename merge_options argument to opt in header merge-recursive: move some definitions around to clean up the header merge-recursive: consolidate unnecessary fields in merge_options merge-recursive: comment and reorder the merge_options fields merge-recursive: avoid losing output and leaking memory holding that output merge-recursive: split internal fields into a separate struct merge-recursive: rename MERGE_RECURSIVE_* to MERGE_VARIANT_* merge-recursive: add sanity checks for relevant merge_options merge-recursive: alphabetize include list merge-options.txt: clarify meaning of various ff-related options t3427: accelerate this test by using fast-export and fast-import t6006: simplify, fix, and optimize empty message test Recommend git-filter-repo instead of git-filter-branch t9902: use a non-deprecated command for testing t7300: add testcases showing failure to clean specified pathspecs dir: fix typo in comment dir: fix off-by-one error in match_pathspec_item dir: also check directories for matching pathspecs dir: make the DO_MATCH_SUBMODULE code reusable for a non-submodule case dir: if our pathspec might match files under a dir, recurse into it dir: add commentary explaining match_pathspec_item's return value git-clean.txt: do not claim we will delete files with -n/--dry-run clean: disambiguate the definition of -d clean: avoid removing untracked files in a nested git repository clean: rewrap overly long line clean: fix theoretical path corruption fast-export: fix exporting a tag and nothing else dir: special case check for the possibility that pathspec is NULL merge-recursive: fix the diff3 common ancestor label for virtual commits fast-import: fix handling of deleted tags fast-import: allow tags to be identified by mark labels fast-import: add support for new 'alias' command fast-export: add support for --import-marks-if-exists fast-export: allow user to request tags be marked with --mark-tags t9350: add tests for tags of things other than a commit fast-export: handle nested tags merge-recursive: fix the fix to the diff3 common ancestor label Emily Shaffer (1): promisor-remote: skip move_to_tail when no-op Eric Wong (20): diff: use hashmap_entry_init on moved_entry.ent coccicheck: detect hashmap_entry.hash assignment packfile: use hashmap_entry in delta_base_cache_entry hashmap_entry_init takes "struct hashmap_entry *" hashmap_get_next takes "const struct hashmap_entry *" hashmap_add takes "struct hashmap_entry *" hashmap_get takes "const struct hashmap_entry *" hashmap_remove takes "const struct hashmap_entry *" hashmap_put takes "struct hashmap_entry *" introduce container_of macro hashmap_get_next returns "struct hashmap_entry *" hashmap: use *_entry APIs to wrap container_of hashmap_get{,_from_hash} return "struct hashmap_entry *" hashmap_cmp_fn takes hashmap_entry params hashmap: use *_entry APIs for iteration hashmap: hashmap_{put,remove} return hashmap_entry * hashmap: introduce hashmap_free_entries OFFSETOF_VAR macro to simplify hashmap iterators hashmap: remove type arg from hashmap_{get,put,remove}_entry hashmap_entry: remove first member requirement from docs Gabriele Mazzotta (1): gitk: Do not mistake unchanged lines for submodule changes Garima Singh (3): commit-graph: add --[no-]progress to write and verify commit-graph: emit trace2 cmd_mode for each sub-command sq_quote_buf_pretty: don't drop empty arguments Hervé Beraud (1): hg-to-git: make it compatible with both python3 and python2 Jakob Jarmar (1): stash: avoid recursive hard reset on submodules Jeff Hostetler (7): trace2: cleanup column alignment in perf target format trace2: trim whitespace in region messages in perf target format trace2: remove dead code in maybe_add_string_va() trace2: trim trailing whitespace in normal format error message quote: add sq_append_quote_argv_pretty() trace2: cleanup whitespace in normal format trace2: cleanup whitespace in perf format Jeff King (32): setup_traverse_info(): stop copying oid tree-walk: drop oid from traverse_info tree-walk: use size_t consistently tree-walk: accept a raw length for traverse_path_len() tree-walk: add a strbuf wrapper for make_traverse_path() tree-walk: harden make_traverse_path() length computations revision: allow --end-of-options to end option parsing parse-options: allow --end-of-options as a synonym for "--" gitcli: document --end-of-options t1309: use short branch name in includeIf.onbranch test common-main: delay trace2 initialization config: stop checking whether the_repository is NULL t/perf: rename duplicate-numbered test script packfile: drop release_pack_memory() notes: avoid potential use-after-free during insertion fast-import: duplicate parsed encoding string fast-import: duplicate into history rather than passing ownership git-am: handle missing "author" when parsing commit pack-objects: use object_id in packlist_alloc() bulk-checkin: zero-initialize hashfile_checkpoint diff-delta: set size out-parameter to 0 for NULL delta test-read-cache: drop namelen variable pack-objects: drop packlist index_pos optimization commit-graph: turn off save_commit_buffer list-objects: don't queue root trees unless revs->tree_objects is set commit-graph: bump DIE_ON_LOAD check to actual load-time upload-pack: disable commit graph more gently for shallow traversal list-objects-filter: delay parsing of sparse oid list-objects-filter: use empty string instead of NULL for sparse "base" git_mkstemps_mode(): replace magic numbers with computed value add a Code of Conduct document CODE_OF_CONDUCT: mention individual project-leader emails Johannes Schindelin (41): Drop unused git-rebase--am.sh t3400: stop referring to the scripted rebase .gitignore: there is no longer a built-in `git-rebase--interactive` sequencer: the `am` and `rebase--interactive` scripts are gone rebase: fold git-rebase--common into the -p backend t3427: add a clarifying comment t3427: simplify the `setup` test case significantly t3427: move the `filter-branch` invocation into the `setup` case t3427: condense the unnecessarily repetitive test cases into three t3427: fix erroneous assumption t3427: accommodate for the `rebase --merge` backend having been replaced t3427: fix another incorrect assumption rebase -r: support merge strategies other than `recursive` t/lib-rebase: prepare for testing `git rebase --rebase-merges` t3418: test `rebase -r` with merge strategies rebase -r: do not (re-)generate root commits with `--root` *and* `--onto` setup_git_directory(): handle UNC paths correctly Fix .git/ discovery at the root of UNC shares setup_git_directory(): handle UNC root paths correctly .gitignore: stop ignoring `.manifest` files Move git_sort(), a stable sort, into into libgit.a diffcore_rename(): use a stable sort ci: run `hdr-check` as part of the `Static Analysis` job range-diff: internally force `diff.noprefix=true` push: do not pretend to return `int` from `die_push_simple()` fetch: let --jobs= parallelize --multiple, too stash apply: report status correctly even in a worktree's subdirectory msvc: avoid using minus operator on unsigned types winansi: use FLEX_ARRAY to avoid compiler warning compat/win32/path-utils.h: add #include guards msvc: ignore some libraries when linking msvc: handle DEVELOPER=1 msvc: work around a bug in GetEnvironmentVariable() vcxproj: only copy `git-remote-http.exe` once it was built vcxproj: include more generated files test-tool run-command: learn to run (parts of) the testsuite tests: let --immediate and --write-junit-xml play well together ci: really use shallow clones on Azure Pipelines ci: also build and test with MS Visual Studio on Azure Pipelines xdiffi: fix typos and touch up comments doc(stash): clarify the description of `save` Johannes Sixt (2): diff, log doc: say "patch text" instead of "patches" diff, log doc: small grammer, format, and language fixes Jon Simons (2): t5616: test cloning/fetching with sparse:oid= filter list-objects-filter: give a more specific error sparse parsing error Jonathan Tan (6): diff: skip GITLINK when lazy fetching missing objs transport-helper: skip ls-refs if unnecessary transport: teach all vtables to allow fetch first cache-tree: do not lazy-fetch tentative tree merge-recursive: symlink's descendants not in way send-pack: never fetch when checking exclusions Josh Steadmon (7): t7503: verify proper hook execution fetch: add trace2 instrumentation push: add trace2 instrumentation docs: mention trace2 target-dir mode in git-config docs: clarify trace2 version invariants trace2: discard new traces if target directory has too many files trace2: write discard message to sentinel files Junio C Hamano (14): First batch after Git 2.23 t: use LF variable defined in the test harness t3005: remove unused variable Second batch Third batch SubmittingPatches: git-gui has a new maintainer Fourth batch Fifth batch Sixth batch transport: push codepath can take arbitrary repository Seventh batch Eighth batch Ninth batch Git 2.24-rc0 Kunal Tyagi (1): add -i: show progress counter in the prompt Martin Ågren (14): Documentation: wrap blocks with "--" git-merge-base.txt: render indentations correctly under Asciidoctor Documentation: wrap config listings in "----" git-ls-remote.txt: wrap shell listing in "----" git-receive-pack.txt: wrap shell [script] listing in "----" git-merge-index.txt: wrap shell listing in "----" gitweb.conf.txt: switch pluses to backticks to help Asciidoctor Doc/Makefile: give mansource/-version/-manual attributes asciidoctor-extensions: provide `` doc-diff: replace --cut-header-footer with --cut-footer user-manual.txt: add missing section label user-manual.txt: change header notation asciidoctor-extensions.rb: handle "book" doctype in linkgit user-manual.txt: render ASCII art correctly under Asciidoctor Masaya Suzuki (1): fetch: use oidset to keep the want OIDs for faster lookup Matheus Tavares (1): grep: fix worktree case in submodules Matthew DeVore (10): list-objects-filter: encapsulate filter components list-objects-filter: put omits set in filter struct list-objects-filter-options: always supply *errbuf list-objects-filter: implement composite filters list-objects-filter-options: move error check up list-objects-filter-options: make filter_spec a string_list strbuf: give URL-encoding API a char predicate fn list-objects-filter-options: allow mult. --filter list-objects-filter-options: clean up use of ALLOC_GROW list-objects-filter-options: make parser void Max Rothman (1): completion: add missing completions for log, diff, show Michael J Gruber (3): merge: do no-verify like commit git-merge: honor pre-merge-commit hook merge: --no-verify to bypass pre-merge-commit hook Mike Hommey (3): notes: avoid leaking duplicate entries commit: free the right buffer in release_commit_memory http: don't leak urlmatch_config.vars Mischa POSLAWSKY (1): ref-filter: initialize empty name or email fields Paul Mackerras (1): gitk: Make web links clickable Paul Wise (1): gitk: Use right colour for remote refs in the "Tags and heads" dialog Pedro Sousa (1): doc: MyFirstContribution: fix cmd placement instructions Philip.McGraw (1): git-p4: auto-delete named temporary file Phillip Wood (3): rebase -i: always update HEAD before rewording rebase -i: check for updated todo after squash and reword sequencer: simplify root commit creation Pratyush Yadav (6): git-gui: call do_quit before destroying the main window git-gui: allow reverting selected lines git-gui: allow reverting selected hunk git-gui: return early when patch fails to apply git-gui: allow undoing last revert Documentation: update the location of the git-gui repo René Scharfe (28): nedmalloc: do assignments only after the declaration section nedmalloc: avoid compiler warning about unused value archive-tar: report wrong pax extended header length archive-tar: fix pax extended header length calculation archive-tar: use size_t in strbuf_append_ext_header() archive-tar: turn length miscalculation warning into BUG parseopt: move definition of enum parse_opt_result up sha1-name: make sort_ambiguous_oid_array() thread-safe log-tree: always use return value of strbuf_detach() grep: use return value of strbuf_detach() trace2: use warning() directly in tr2_dst_malformed_warning() help: make help_unknown_ref() NORETURN tree: simplify parse_tree_indirect() tag: factor out get_tagged_oid() use get_tagged_oid() log: test --decorate-refs-exclude with --simplify-by-decoration log-tree: call load_ref_decorations() in get_name_decoration() rev-parse: demonstrate overflow of N for "foo^N" and "foo~N" sha1-name: check for overflow of N in "foo^N" and "foo~N" commit-graph: use commit_list_count() sha1_name: simplify strbuf handling in interpret_nth_prior_checkout() git: use COPY_ARRAY and MOVE_ARRAY in handle_alias() treewide: remove duplicate #include directives convert: fix handling of dashless UTF prefix in validate_encoding() tests: remove "cat foo" before "test_i18ngrep bar foo" http-push: simplify deleting a list item column: use utf8_strnwidth() to strip out ANSI color escapes remote-curl: use argv_array in parse_push() SZEDER Gábor (33): t5510-fetch: fix negated 'test_i18ngrep' invocation t5510-fetch: run non-httpd-specific test before sourcing 'lib-httpd.sh' t5703: run all non-httpd-specific tests before sourcing 'lib-httpd.sh' t: warn against adding non-httpd-specific tests after sourcing 'lib-httpd' t5318-commit-graph: use 'test_expect_code' commit-graph: turn a group of write-related macro flags into an enum commit-graph: error out on invalid commit oids in 'write --stdin-commits' t0000-basic: use realistic test script names in the verbose tests tests: show the test name and number at the start of verbose output completion: fix a typo in a comment completion: complete more values of more 'color.*' configuration variables completion: add tests for 'git config' completion completion: deduplicate configuration sections completion: use 'sort -u' to deduplicate config variable names completion: simplify inner 'case' pattern in __gitcomp() completion: split _git_config() completion: complete configuration sections and variable names for 'git -c' completion: complete values of configuration variables after 'git -c var=' completion: complete config variables names and values for 'git clone -c' completion: complete config variables and values for 'git clone --config=' worktree remove: clarify error message on dirty worktree diff: 'diff.indentHeuristic' is no longer experimental line-log: extract pathspec parsing from line ranges into a helper function line-log: avoid unnecessary full tree diffs t7300-clean: demonstrate deleting nested repo with an ignored file breakage t/lib-git-svn.sh: check GIT_TEST_SVN_HTTPD when running SVN HTTP tests ci: restore running httpd tests commit-graph: don't show progress percentages while expanding reachable commits Revert "progress: use term_clear_line()" Test the progress display t/helper: ignore only executable files travis-ci: do not skip successfully tested trees in debug mode name-rev: avoid cutoff timestamp underflow Stephen Boyd (1): userdiff: add a builtin pattern for dts files Stephen P. Smith (2): Quit passing 'now' to date code test_date.c: remove reference to GIT_TEST_DATE_NOW Sun Chao (1): pack-refs: always refresh after taking the lock file Tanay Abhra (1): t1308-config-set: fix a test that has a typo Taylor Blau (4): banned.h: fix vsprintf()'s ban message t/t5318: introduce failing 'git commit-graph write' tests commit-graph.c: handle commit parsing errors commit-graph.c: handle corrupt/missing trees Thomas Gummerer (6): t0021: make sure clean filter runs push: disallow --all and refspecs when remote..mirror is set factor out refresh_and_write_cache function merge: use refresh_and_write_cache stash: make sure to write refreshed cache range-diff: don't segfault with mode-only changes Tobias Klauser (1): git-svn: trim leading and trailing whitespaces in author name Torsten Bögershausen (1): mingw: support UNC in git clone file://server/share/repo Varun Naik (2): checkout.c: unstage empty deleted ita files restore: add test for deleted ita files YanKe (1): gitk: Add Chinese (zh_CN) translation brian m. carlson (43): builtin/replace: make hash size independent patch-id: convert to use the_hash_algo fetch-pack: use parse_oid_hex builtin/receive-pack: switch to use the_hash_algo builtin/blame: switch uses of GIT_SHA1_HEXSZ to the_hash_algo builtin/rev-parse: switch to use the_hash_algo blame: remove needless comparison with GIT_SHA1_HEXSZ show-index: switch hard-coded constants to the_hash_algo connected: switch GIT_SHA1_HEXSZ to the_hash_algo bundle: switch to use the_hash_algo combine-diff: replace GIT_SHA1_HEXSZ with the_hash_algo config: use the_hash_algo in abbrev comparison sha1-lookup: switch hard-coded constants to the_hash_algo bisect: switch to using the_hash_algo sequencer: convert to use the_hash_algo pack-write: use hash_to_hex when writing checksums builtin/repack: write object IDs of the proper length builtin/worktree: switch null_sha1 to null_oid cache: remove null_sha1 wt-status: convert struct wt_status to object_id packfile: replace sha1_to_hex builtin/index-pack: replace sha1_to_hex builtin/receive-pack: replace sha1_to_hex rerere: replace sha1_to_hex builtin/show-index: replace sha1_to_hex midx: switch to using the_hash_algo t3201: abstract away SHA-1-specific constants t3206: abstract away hash size constants t3301: abstract away SHA-1-specific constants t3305: make hash size independent t3306: abstract away SHA-1-specific constants t3404: abstract away SHA-1-specific constants t3430: avoid hard-coded object IDs t3506: make hash independent t3600: make hash size independent t3800: make hash-size independent t3903: abstract away SHA-1-specific constants t4000: make hash size independent t4002: make hash independent t4009: make hash size independent path: add a function to check for path suffix am: reload .gitattributes after patching it Documentation: fix build with Asciidoctor 2 Ævar Arnfjörð Bjarmason (20): log tests: test regex backends in "--encode=" tests grep: don't use PCRE2?_UTF8 with "log --encoding=" t4210: skip more command-line encoding tests on MinGW grep: inline the return value of a function call used only once grep tests: move "grep binary" alongside the rest grep tests: move binary pattern tests into their own file grep: make the behavior for NUL-byte in patterns sane grep: drop support for \0 in --fixed-strings grep: remove the kwset optimization grep: use PCRE v2 for optimized fixed-string search grep: remove overly paranoid BUG(...) code grep: stop "using" a custom JIT stack with PCRE v2 grep: stop using a custom JIT stack with PCRE v1 grep: consistently use "p->fixed" in compile_regexp() grep: create a "is_fixed" member in "grep_pat" grep: stess test PCRE v2 on invalid UTF-8 data grep: do not enter PCRE2_UTF mode on fixed matching t3432: distinguish "noop-same" v.s. "work-same" in "same head" tests t3432: test for --no-ff's interaction with fast-forward rebase tests: test linear branch topology Version v2.23.4; changes since v2.23.3: --------------------------------------- Johannes Schindelin (8): run-command: invalidate lstat cache after a command finished Git 2.17.6 Git 2.18.5 Git 2.19.6 Git 2.20.5 Git 2.21.4 Git 2.22.5 Git 2.23.4 Matheus Tavares (2): checkout: fix bug that makes checkout follow symlinks in leading path unpack_trees(): start with a fresh lstat cache Version v2.23.3; changes since v2.23.2: --------------------------------------- Jeff King (6): t0300: make "quit" helper more realistic t0300: use more realistic inputs credential: parse URL without host as empty host, not unset credential: refuse to operate when missing host or protocol credential: die() when parsing invalid urls Git 2.17.5 Jonathan Nieder (4): fsck: convert gitmodules url to URL passed to curl credential: treat URL without scheme as invalid credential: treat URL with empty scheme as invalid fsck: reject URL with empty host in .gitmodules Version v2.23.2; changes since v2.23.1: --------------------------------------- Jeff King (4): credential: avoid writing values with newlines t/lib-credential: use test_i18ncmp to check stderr credential: detect unrepresentable values when parsing urls fsck: detect gitmodules URLs with embedded newlines Junio C Hamano (1): Git 2.17.4 Version v2.23.1; changes since v2.23.0: --------------------------------------- Garima Singh (2): test-path-utils: offer to run a protectNTFS/protectHFS benchmark tests: add a helper to stress test argument quoting Jeff King (7): t9300: drop some useless uses of cat t9300: create marks files for double-import-marks test fast-import: tighten parsing of boolean command line options fast-import: stop creating leading directories for import-marks fast-import: delay creating leading directories for export-marks fast-import: disallow "feature export-marks" by default fast-import: disallow "feature import-marks" by default Johannes Schindelin (35): clone --recurse-submodules: prevent name squatting on Windows mingw: disallow backslash characters in tree objects' file names path.c: document the purpose of `is_ntfs_dotgit()` is_ntfs_dotgit(): only verify the leading segment path: safeguard `.git` against NTFS Alternate Streams Accesses is_ntfs_dotgit(): speed it up mingw: fix quoting of arguments path: also guard `.gitmodules` against NTFS Alternate Data Streams protect_ntfs: turn on NTFS protection by default Disallow dubiously-nested submodule git directories quote-stress-test: accept arguments to test via the command-line t6130/t9350: prepare for stringent Win32 path validation quote-stress-test: allow skipping some trials unpack-trees: let merged_entry() pass through do_add_entry()'s errors mingw: refuse to access paths with illegal characters quote-stress-test: offer to test quoting arguments for MSYS2 sh mingw: refuse to access paths with trailing spaces or periods mingw: handle `subst`-ed "DOS drives" Git 2.14.6 Git 2.15.4 test-drop-caches: use `has_dos_drive_prefix()` Git 2.16.6 Git 2.17.3 Git 2.18.2 Git 2.19.3 t7415: adjust test for dubiously-nested submodule gitdirs for v2.20.x Git 2.20.2 mingw: detect when MSYS2's sh is to be spawned more robustly mingw: use MSYS2 quoting even when spawning shell scripts mingw: fix quoting of empty arguments for `sh` t7415: drop v2.20.x-specific work-around mingw: sh arguments need quoting in more circumstances Git 2.21.1 Git 2.22.2 Git 2.23.1 Jonathan Nieder (3): submodule: reject submodule.update = !command in .gitmodules fsck: reject submodule.update = !command in .gitmodules submodule: defend against submodule.update = !command in .gitmodules Version v2.23.0; changes since v2.23.0-rc2: ------------------------------------------- Alessandro Menti (3): l10n: it.po: update the Italian translation l10n: it.po: update the Italian translation for v2.23.0 l10n: it.po: update the Italian localization for v2.23.0 round 2 Alexander Shopov (1): l10n: bg.po: Updated Bulgarian translation (4674t) Carmine Zaccagnino (1): l10n: it.po: remove an extra space Christopher Díaz Riveros (1): l10n: es: 2.23.0 round 2 Dimitriy Ryazantcev (1): l10n: ru.po: update Russian translation Jean-Noël Avila (1): l10n: fr v2.23.0 round 2 Jiang Xin (3): l10n: git.pot: v2.23.0 round 1 (130 new, 35 removed) l10n: git.pot: v2.23.0 round 2 (4 new, 6 removed) l10n: zh_CN: for git v2.23.0 l10n round 1~2 Jordi Mas (2): l10n: Update Catalan translation l10n: Update Catalan translation Junio C Hamano (2): Git 2.22.1 Git 2.23 Mark Rushakoff (1): doc: fix repeated words Matthias Rüster (1): l10n: de.po: Update German translation Peter Krefting (1): l10n: sv.po: Update Swedish translation (4676t0f0u) Philip Oakley (1): .mailmap: update email address of Philip Oakley Philipp Weißmann (1): l10n: de.po: Fix typo in German translation Trần Ngọc Quân (2): l10n: vi.po (4676t): Updated Vietnamese translation l10n: vi(4674t): Updated translation for Vietnamese Version v2.23.0-rc2; changes since v2.23.0-rc1: ----------------------------------------------- Derrick Stolee (1): commit-graph: fix bug around octopus merges Elijah Newren (1): merge-recursive: avoid directory rename detection in recursive case Jean-Noël Avila (1): l10n: reformat some localized strings for v2.23.0 Jeff King (1): t0000: reword comments for "local" test Jonathan Nieder (1): t: decrease nesting in test_oid_to_path Junio C Hamano (1): Git 2.23-rc2 Mark Rushakoff (1): doc: typo: s/can not/cannot/ and s/is does/does/ René Scharfe (4): commit-graph: release strbufs after use dir-iterator: release strbuf after use test-dir-iterator: use path argument directly sha1-file: release strbuf after use William Chargin (1): restore: fix typo in docs Version v2.23.0-rc1; changes since v2.23.0-rc0: ----------------------------------------------- Carlo Marcelo Arenas Belón (3): xdiff: drop system includes in xutils.c xdiff: remove duplicate headers from xhistogram.c xdiff: remove duplicate headers from xpatience.c Jeff King (6): verify-tag: drop signal.h include wt-status.h: drop stdio.h include t: sort output of hashmap iteration t7700: clean up .keep file in bitmap-writing test repack: silence warnings when auto-enabled bitmaps cannot be built repack: simplify handling of auto-bitmaps and .keep files Johannes Schindelin (15): Vcproj.pm: auto-generate GUIDs Vcproj.pm: do not configure VCWebServiceProxyGeneratorTool Vcproj.pm: urlencode '<' and '>' when generating VC projects contrib/buildsystems: ignore irrelevant files in Generators/ contrib/buildsystems: error out on unknown option contrib/buildsystems: handle libiconv, too contrib/buildsystems: also handle -lexpat contrib/buildsystems: handle options starting with a slash contrib/buildsystems: add a backend for modern Visual Studio versions msvc: add a Makefile target to pre-generate the Visual Studio solution vcxproj: also link-or-copy builtins .gitignore: ignore Visual Studio's temporary/generated files bin-wrappers: append `.exe` to target paths if necessary git: avoid calling aliased builtins via their dashed form config: work around bug with includeif:onbranch and early config Junio C Hamano (5): test-dir-iterator: do not assume errno values A few more last-minute fixes log: flip the --mailmap default unconditionally log: really flip the --mailmap default Git 2.23-rc1 Martin Ågren (2): RelNotes/2.21.1: typofix RelNotes/2.23.0: fix a few typos and other minor issues Philip Oakley (9): Vcproj.pm: list git.exe first to be startup project contrib/buildsystems: ignore invalidcontinue.obj contrib/buildsystems: fix misleading error message contrib/buildsystems: handle quoted spaces in filenames contrib/buildsystems: ignore gettext stuff contrib/buildsystems: redirect errors of the dry run into a log file contrib/buildsystems: optionally capture the dry-run in a file contrib/buildsystems: handle the curl library option .gitignore: touch up the entries regarding Visual Studio SZEDER Gábor (1): Documentation/git-fsck.txt: include fsck.* config variables brian m. carlson (10): t: add helper to convert object IDs to paths t1410: make hash size independent t1450: make hash size independent t5000: make hash independent t6030: make test work with SHA-256 t0027: make hash size independent t0090: make test pass with SHA-256 t1007: remove SHA1 prerequisites t1710: make hash independent t2203: avoid hard-coded object ID values Version v2.23.0-rc0; changes since v2.22.5: ------------------------------------------- Andrey Mazo (8): git-p4: detect/prevent infinite loop in gitCommitByP4Change() git-p4: add failing test for "git-p4: match branches case insensitively if configured" git-p4: match branches case insensitively if configured git-p4: don't groom exclude path list on every commit git-p4: add failing test for "don't exclude other files with same prefix" git-p4: don't exclude other files with same prefix git-p4: add failing test for "git-p4: respect excluded paths when detecting branches" git-p4: respect excluded paths when detecting branches Ariadne Conill (3): log: add warning for unspecified log.mailmap setting documentation: mention --no-use-mailmap and log.mailmap false setting tests: defang pager tests by explicitly disabling the log.mailmap warning Barret Rhoden (8): fsck: rename and touch up init_skiplist() Move oidset_parse_file() to oidset.c blame: use a helper function in blame_chunk() blame: add the ability to ignore commits and their changes blame: add config options for the output of ignored or unblamable lines blame: optionally track line fingerprints during fill_blame_origin() blame: use the fingerprint heuristic to match ignored lines blame: add a test to cover blame_coalesce() Beat Bolli (1): grep: print the pcre2_jit_on value Ben Avison (1): clone: add `--remote-submodules` flag Boxuan Li (2): userdiff: add Octave userdiff: fix grammar and style issues Carlo Marcelo Arenas Belón (1): trace2: correct typo in technical documentation Cesar Eduardo Barros (1): mingw: embed a manifest to trick UAC into Doing The Right Thing Christian Couder (7): t/helper: add test-oidmap.c t: add t0016-oidmap.sh oidmap: use sha1hash() instead of static hash() function test-hashmap: remove 'hash' command doc: improve usage string in MyFirstContribution test-oidmap: remove 'add' subcommand t0016: add 'remove' subcommand test Daniel Ferreira (1): dir-iterator: add tests for dir-iterator API Denton Liu (3): git-format-patch.txt: document --no-notes option format-patch: teach format.notes config option config: learn the "onbranch:" includeIf condition Derrick Stolee (35): revision: use generation for A..B --topo-order queries revision: keep topo-walk free of unintersting commits repack: refactor pack deletion for future use Docs: rearrange subcommands for multi-pack-index multi-pack-index: prepare for 'expire' subcommand midx: simplify computation of pack name lengths midx: refactor permutation logic and pack sorting multi-pack-index: implement 'expire' subcommand multi-pack-index: prepare 'repack' subcommand midx: implement midx_repack() multi-pack-index: test expire while adding packs midx: add test that 'expire' respects .keep files t5319-multi-pack-index.sh: test batch size zero commit-graph: document commit-graph chains commit-graph: prepare for commit-graph chains commit-graph: rename commit_compare to oid_compare commit-graph: load commit-graph chains commit-graph: add base graphs chunk commit-graph: rearrange chunk count logic commit-graph: write commit-graph chains commit-graph: add --split option to builtin commit-graph: merge commit-graph chains commit-graph: allow cross-alternate chains commit-graph: expire commit-graph files commit-graph: create options for split files commit-graph: verify chains with --shallow mode commit-graph: clean up chains after flattened write commit-graph: test octopus merges with --split commit-graph: test --split across alternate without --split commit-graph: normalize commit-graph filenames commit-graph: test verify across alternates fetch: add --[no-]show-forced-updates argument fetch: warn about forced updates in branch listing pull: add --[no-]show-forced-updates passthrough t5319: use 'test-tool path-utils' instead of 'ls -l' Dimitriy Ryazantcev (1): l10n: localizable upload progress messages Edmundo Carmona Antoranz (1): builtin/merge.c - cleanup of code in for-cycle that tests strategies Elijah Newren (5): t9350: fix encoding test to actually test reencoding fast-import: support 'encoding' commit header fast-export: avoid stripping encoding header if we cannot reencode fast-export: differentiate between explicitly UTF-8 and implicitly UTF-8 fast-export: do automatic reencoding of commit messages only if requested Emily Shaffer (4): documentation: add tutorial for first contribution documentation: add anchors to MyFirstContribution doc: add some nit fixes to MyFirstContribution rev-list: teach --no-object-names to enable piping Eric Wong (2): update-server-info: avoid needless overwrites repack: disable bitmaps-by-default if .keep files exist Jeff Hostetler (13): cache-tree/blame: avoid reusing the DEBUG constant msvc: mark a variable as non-const msvc: do not re-declare the timespec struct msvc: define ftello() msvc: fix detect_msys_tty() msvc: update Makefile to allow for spaces in the compiler path status: add status.aheadbehind setting status: warn when a/b calculation takes too long status: ignore status.aheadbehind in porcelain formats msvc: support building Git using MS Visual C++ msvc: add a compile-time flag to allow detailed heap debugging msvc: do not pretend to support all signals msvc: ignore .dll and incremental compile output Jeff King (42): cmd_{read,write}_tree: rename "unused" variable that is used builtin: consistently pass cmd_* prefix to parse_options submodule: drop unused prefix parameter from some functions clone: drop dest parameter from copy_alternates() read-cache: drop unused parameter from threaded load wt-status: drop unused status parameter mktree: drop unused length parameter name-rev: drop unused parameters from is_better_name() pack-objects: drop unused rev_info parameters receive-pack: drop unused "commands" from prepare_shallow_update() remove_all_fetch_refspecs(): drop unused "remote" parameter rev-list: drop unused void pointer from finish_commit() show-branch: drop unused parameter from show_independent() verify-commit: simplify parameters to run_gpg_verify() help_unknown_ref(): duplicate collected refnames help_unknown_ref(): check for refname ambiguity describe: fix accidental oid/hash type-punning upload-pack: rename a "sha1" variable to "oid" pack-bitmap-write: convert some helpers to use object_id pack-objects: convert packlist_find() to use object_id pack-objects: convert locate_object_entry_hash() to object_id object: convert lookup_unknown_object() to use object_id object: convert lookup_object() to use object_id object: convert internal hash_obj() to object_id object: convert create_object() to use object_id khash: drop broken oid_map typedef khash: rename kh_oid_t to kh_oid_set delta-islands: convert island_marks khash to use oids pack-bitmap: convert khash_sha1 maps into kh_oid_map khash: drop sha1-specific map types khash: rename oid helper functions hash.h: move object_id definition from cache.h hashmap: convert sha1hash() to oidhash() blame: drop some unused function parameters object-store.h: move for_each_alternate_ref() from transport.h check_everything_connected: assume alternate ref tips are valid test-lib: introduce test_commit_bulk t5310: increase the number of bitmapped commits t3311: use test_commit_bulk t5702: use test_commit_bulk t5703: use test_commit_bulk t6200: use test_commit_bulk Johannes Schindelin (18): Drop unused git-rebase--am.sh t3400: stop referring to the scripted rebase .gitignore: there is no longer a built-in `git-rebase--interactive` sequencer: the `am` and `rebase--interactive` scripts are gone rebase: fold git-rebase--common into the -p backend mingw: fix a typo in the msysGit-specific section Mark .bat files as requiring CR/LF endings t0001 (mingw): do not expect a specific order of stdout/stderr obstack: fix compiler warning mingw: replace mingw_startup() hack msvc: fix dependencies of compat/msvc.c msvc: avoid debug assertion windows in Debug Mode mingw: enable stack smashing protector mingw: get pw_name in UTF-8 format mingw: use Unicode functions explicitly mingw: fix possible buffer overrun when calling `GetUserNameW()` rebase: fix white-space git: mark cmd_rebase as requiring a worktree Johannes Sixt (5): userdiff: two simplifications of patterns for rust t7610-mergetool: do not place pipelines headed by `yes` in subshells t7610-mergetool: use test_cmp instead of test $(cat file) = $txt mergetool: dissect strings with shell variable magic instead of `expr` mergetool: use shell variable magic instead of `awk` John Lin (1): status: remove the empty line after hints Junio C Hamano (8): The first batch after 2.22 The second batch The third batch The fourth batch The fifth batch The sixth batch The seventh batch Git 2.23-rc0 Karsten Blees (2): gettext: always use UTF-8 on native Windows mingw: initialize HOME on startup Marc-André Lureau (1): userdiff: add built-in pattern for rust Martin Ågren (1): ref-filter: fix memory leak in `free_array_item()` Matheus Tavares (8): clone: better handle symlinked files at .git/objects/ dir-iterator: use warning_errno when possible dir-iterator: refactor state machine model dir-iterator: add flags parameter to dir_iterator_begin clone: copy hidden paths at local clone clone: extract function from copy_or_link_directory clone: use dir-iterator to avoid explicit dir traversal clone: replace strcmp by fspathcmp Matthew DeVore (2): list-objects-filter-options: error is localizeable ref-filter: sort detached HEAD lines firstly Michael Osipov (1): configure: Detect linking style for HP aCC on HP-UX Michael Platings (2): blame: add a fingerprint heuristic to match ignored lines t8014: remove unnecessary braces Nguyễn Thái Ngọc Duy (60): git-checkout.txt: spell out --no-option git-checkout.txt: fix one syntax line doc: document --overwrite-ignore git-checkout.txt: fix monospace typeset t: rename t2014-switch.sh to t2014-checkout-switch.sh checkout: advice how to get out of detached HEAD mode checkout: inform the user when removing branch state checkout: keep most #include sorted checkout: factor out some code in parse_branchname_arg() checkout: make "opts" in cmd_checkout() a pointer checkout: move 'confict_style' and 'dwim_..' to checkout_opts checkout: split options[] array in three pieces checkout: split part of it to new command 'switch' switch: better names for -b and -B switch: add --discard-changes switch: remove -l switch: stop accepting pathspec switch: reject "do nothing" case switch: only allow explicit detached HEAD switch: add short option for --detach switch: implicit dwim, use --no-guess to disable it switch: no worktree status unless real branch switch happens switch: reject if some operation is in progress switch: make --orphan switch to an empty tree t: add tests for switch completion: support switch doc: promote "git switch" checkout: split part of it to new command 'restore' restore: take tree-ish from --source option instead restore: make pathspec mandatory restore: disable overlay mode by default checkout: factor out worktree checkout code restore: add --worktree and --staged restore: reject invalid combinations with --staged restore: default to --source=HEAD when only --staged is specified restore: replace --force with --ignore-unmerged restore: support --patch t: add tests for restore completion: support restore user-manual.txt: prefer 'merge --abort' over 'reset --hard' doc: promote "git restore" help: move git-diff and git-reset to different groups Declare both git-switch and git-restore experimental merge: remove drop_save() in favor of remove_merge_branch_state() worktree add: sanitize worktree names merge: add --quit fetch: only run 'gc' once when fetching multiple remotes t2027: use test_must_be_empty switch: allow to switch in the middle of bisect completion: disable dwim on "git switch -d" fetch-pack: move capability names out of i18n strings fetch-pack: print all relevant supported capabilities with -v -v fetch-pack: print server version at the top in -v -v sha1-file.c: remove the_repo from read_object_with_reference() tree-walk.c: remove the_repo from fill_tree_descriptor() tree-walk.c: remove the_repo from get_tree_entry() tree-walk.c: remove the_repo from get_tree_entry_follow_symlinks() match-trees.c: remove the_repo from shift_tree*() Use the right 'struct repository' instead of the_repository t7814: do not generate same commits in different repos Nickolai Belakovski (3): ref-filter: add worktreepath atom branch: update output to include worktree info branch: add worktree info on verbose output Philip Oakley (5): git.c: show usage for accessing the git(1) help page Doc: git.txt: remove backticks from link and add git-scm.com/docs msvc: include sigset_t definition msvc: define O_ACCMODE msvc: add pragmas for common warnings Phillip Wood (7): rebase -r: always reword merge -c show --continue/skip etc. consistently in synopsis sequencer: always allow tab after command name sequencer: factor out todo command name parsing status: do not report errors in sequencer/todo git-prompt: improve cherry-pick/revert detection t3420: remove progress lines before comparing output Ramsay Jones (1): env--helper: mark a file-local symbol as static Rohit Ashiwal (5): sequencer: add advice for revert sequencer: rename reset_for_rollback to reset_merge sequencer: use argv_array in reset_merge cherry-pick/revert: add --skip option cherry-pick/revert: advise using --skip SZEDER Gábor (1): travis-ci: build with GCC 4.8 as well Stephen Boyd (2): format-patch: inform user that patch-id generation is unstable format-patch: make --base patch-id output stable Taylor Blau (1): ref-filter.c: find disjoint pattern prefixes Thomas Gummerer (15): apply: replace marc.info link with public-inbox apply: only pass required data to skip_tree_prefix apply: only pass required data to git_header_name apply: only pass required data to check_header_line apply: only pass required data to find_name_* apply: only pass required data to gitdiff_* functions apply: make parse_git_diff_header public range-diff: fix function parameter indentation range-diff: split lines manually range-diff: don't remove funcname from inner diff range-diff: suppress line count in outer diff range-diff: add section header instead of diff header range-diff: add filename to inner diff range-diff: add headers to the outer hunk header stash: fix handling removed files with --keep-index Tigran Mkrtchyan (1): tag: add tag.gpgSign config option to force all tags be GPG-signed Ævar Arnfjörð Bjarmason (20): send-email: move the read_config() function above getopts send-email: rename the @bcclist variable for consistency send-email: do defaults -> config -> getopt in that order tests: add a special setup where prerequisites fail Makefile: remove the NO_R_TO_GCC_LINKER flag send-email: remove cargo-culted multi-patch pattern in tests send-email: fix broken transferEncoding tests send-email: document --no-[to|cc|bcc] send-email: fix regression in sendemail.identity parsing Revert "test-lib: whitelist GIT_TR2_* in the environment" config tests: simplify include cycle test env--helper: new undocumented builtin wrapping git_env_*() config.c: refactor die_bad_number() to not call gettext() early t6040 test: stop using global "script" variable tests: make GIT_TEST_GETTEXT_POISON a boolean tests README: re-flow a previously changed paragraph tests: replace test_tristate with "git env--helper" tests: make GIT_TEST_FAIL_PREREQS a boolean tests: mark two failing tests under FAIL_PREREQS clone: test for our behavior on odd objects/* content Version v2.22.5; changes since v2.22.4: --------------------------------------- Johannes Schindelin (7): run-command: invalidate lstat cache after a command finished Git 2.17.6 Git 2.18.5 Git 2.19.6 Git 2.20.5 Git 2.21.4 Git 2.22.5 Matheus Tavares (2): checkout: fix bug that makes checkout follow symlinks in leading path unpack_trees(): start with a fresh lstat cache Version v2.22.4; changes since v2.22.3: --------------------------------------- Jeff King (6): t0300: make "quit" helper more realistic t0300: use more realistic inputs credential: parse URL without host as empty host, not unset credential: refuse to operate when missing host or protocol credential: die() when parsing invalid urls Git 2.17.5 Jonathan Nieder (4): fsck: convert gitmodules url to URL passed to curl credential: treat URL without scheme as invalid credential: treat URL with empty scheme as invalid fsck: reject URL with empty host in .gitmodules Version v2.22.3; changes since v2.22.2: --------------------------------------- Jeff King (4): credential: avoid writing values with newlines t/lib-credential: use test_i18ncmp to check stderr credential: detect unrepresentable values when parsing urls fsck: detect gitmodules URLs with embedded newlines Junio C Hamano (1): Git 2.17.4 Version v2.22.2; changes since v2.22.1: --------------------------------------- Garima Singh (2): test-path-utils: offer to run a protectNTFS/protectHFS benchmark tests: add a helper to stress test argument quoting Jeff King (7): t9300: drop some useless uses of cat t9300: create marks files for double-import-marks test fast-import: tighten parsing of boolean command line options fast-import: stop creating leading directories for import-marks fast-import: delay creating leading directories for export-marks fast-import: disallow "feature export-marks" by default fast-import: disallow "feature import-marks" by default Johannes Schindelin (34): clone --recurse-submodules: prevent name squatting on Windows mingw: disallow backslash characters in tree objects' file names path.c: document the purpose of `is_ntfs_dotgit()` is_ntfs_dotgit(): only verify the leading segment path: safeguard `.git` against NTFS Alternate Streams Accesses is_ntfs_dotgit(): speed it up mingw: fix quoting of arguments path: also guard `.gitmodules` against NTFS Alternate Data Streams protect_ntfs: turn on NTFS protection by default Disallow dubiously-nested submodule git directories quote-stress-test: accept arguments to test via the command-line t6130/t9350: prepare for stringent Win32 path validation quote-stress-test: allow skipping some trials unpack-trees: let merged_entry() pass through do_add_entry()'s errors mingw: refuse to access paths with illegal characters quote-stress-test: offer to test quoting arguments for MSYS2 sh mingw: refuse to access paths with trailing spaces or periods mingw: handle `subst`-ed "DOS drives" Git 2.14.6 Git 2.15.4 test-drop-caches: use `has_dos_drive_prefix()` Git 2.16.6 Git 2.17.3 Git 2.18.2 Git 2.19.3 t7415: adjust test for dubiously-nested submodule gitdirs for v2.20.x Git 2.20.2 mingw: detect when MSYS2's sh is to be spawned more robustly mingw: use MSYS2 quoting even when spawning shell scripts mingw: fix quoting of empty arguments for `sh` t7415: drop v2.20.x-specific work-around mingw: sh arguments need quoting in more circumstances Git 2.21.1 Git 2.22.2 Jonathan Nieder (3): submodule: reject submodule.update = !command in .gitmodules fsck: reject submodule.update = !command in .gitmodules submodule: defend against submodule.update = !command in .gitmodules Version v2.22.1; changes since v2.22.0: --------------------------------------- Beat Bolli (1): unicode: update the width tables to Unicode 12.1 Carlo Marcelo Arenas Belón (5): fsmonitor: avoid signed integer overflow / infinite loop wrapper: avoid undefined behaviour in macOS xdiff: drop system includes in xutils.c xdiff: remove duplicate headers from xhistogram.c xdiff: remove duplicate headers from xpatience.c Chris Mayo (1): send-email: update documentation of required Perl modules Denton Liu (2): config/alias.txt: change " and ' to ` config/alias.txt: document alias accepting non-command first word Derrick Stolee (15): commit-graph: fix the_repository reference sha1-file: split OBJECT_INFO_FOR_PREFETCH commit-graph: return with errors during write commit-graph: collapse parameters into flags commit-graph: remove Future Work section commit-graph: create write_commit_graph_context commit-graph: extract fill_oids_from_packs() commit-graph: extract fill_oids_from_commit_hex() commit-graph: extract fill_oids_from_all_packs() commit-graph: extract count_distinct_commits() commit-graph: extract copy_oids_to_commits() commit-graph: extract write_commit_graph_file() commit-graph: use raw_object_store when closing packfile: close commit-graph in close_all_packs packfile: rename close_all_packs to close_object_store Doug Ilijev (1): README: fix rendering of text in angle brackets Dr. Adam Nielsen (1): gitignore.txt: make slash-rules more readable Emily Shaffer (3): grep: fail if call could output and name is null doc: hint about GIT_DEBUGGER in CodingGuidelines transport-helper: enforce atomic in push_refs_with_push Eric Wong (1): server-info: do not list unlinked packs Felipe Contreras (5): t5801 (remote-helpers): cleanup refspec stuff t5801 (remote-helpers): add test to fetch tags fetch: trivial cleanup fetch: make the code more understandable fetch: fix regression with transport helpers Jakub Wilk (1): doc: don't use git.kernel.org as example gitweb URL Jeff King (10): upload-pack: strip namespace from symref data am: simplify prompt response handling am: read interactive input from stdin am: drop tty requirement for --interactive am: fix --interactive HEAD tree resolution interpret-trailers: load default config verify-tag: drop signal.h include wt-status.h: drop stdio.h include delta-islands: respect progress flag xdiff: clamp function context indices in post-image Johannes Schindelin (14): bisect--helper: verify HEAD could be parsed before continuing fill_stat_cache_info(): prepare for an fsmonitor fix mark_fsmonitor_valid(): mark the index as changed if needed bundle verify: error out if called without an object database poll (mingw): allow compiling with GCC 8 and DEVELOPER=1 kwset: allow building with GCC 8 winansi: simplify loading the GetCurrentConsoleFontEx() function config: avoid calling `labs()` on too-large data type t3404: fix a typo t0001: fix on case-insensitive filesystems rebase --am: ignore rebase.rescheduleFailedExec diff: munmap() file contents before running external diff mingw: support spawning programs containing spaces in their names clean: show an error message when the path is too long Jonathan Tan (5): t5616: refactor packfile replacement index-pack: prefetch missing REF_DELTA bases t5616: use correct flag to check object is missing t5616: cover case of client having delta base t5551: test usage of chunked encoding explicitly Josh Steadmon (1): trace2: correct trace2 field name documentation Junio C Hamano (6): transport-helper: avoid var decl in for () loop control rm: resolving by removal is not a warning-worthy event CodingGuidelines: spell out post-C89 rules Flush fixes up to the third batch post 2.22.0 Merge fixes made on the 'master' front Git 2.22.1 Martin Ågren (1): RelNotes/2.21.1: typofix Matthew DeVore (3): list-objects-filter: correct usage of ALLOC_GROW url: do not read past end of buffer url: do not allow %00 to represent NUL in URLs Miguel Ojeda (1): clang-format: use git grep to generate the ForEachMacros list Mike Hommey (2): dup() the input fd for fast-import used for remote helpers Use xmmap_gently instead of xmmap in use_pack Mike Mueller (1): p4 unshelve: fix "Not a valid object name HEAD0" on Windows Morian Sonnet (1): submodule foreach: fix recursion of options Nguyễn Thái Ngọc Duy (3): init: make --template path relative to $CWD worktree add: be tolerant of corrupt worktrees completion: do not cache if --git-completion-helper fails Paolo Bonzini (2): request-pull: quote regex metacharacters in local ref request-pull: warn if the remote object is not the same as the local one Philip Oakley (2): doc branch: provide examples for listing remote tracking branches .mailmap: update email address of Philip Oakley Phillip Wood (5): rebase: fix a memory leak rebase: warn if state directory cannot be removed sequencer: return errors from sequencer_remove_state() rebase --abort/--quit: cleanup refs/rewritten add -p: fix checkout -p with pathological context Quentin Nerden (2): docs: git-clone: refer to long form of options docs: git-clone: list short form of options first René Scharfe (6): cleanup: fix possible overflow errors in binary search, part 2 coccinelle: use COPY_ARRAY for copying arrays use COPY_ARRAY for copying arrays config: use unsigned_mult_overflows to check for overflows config: don't multiply in parse_unit_factor() config: simplify parsing of unit factors Robert Morgan (1): gpg(docs): use correct --verify syntax SZEDER Gábor (11): t3404: modernize here doc style t3404: make the 'rebase.missingCommitsCheck=ignore' test more focused pager: add a helper function to clear the last line in the terminal t5551: use 'test_i18ngrep' to check translated output rebase: fix garbled progress display with '-x' progress: use term_clear_line() Document that 'git -C ""' works and doesn't change directory ci: don't update Homebrew ci: disable Homebrew's auto cleanup ci/lib.sh: update a comment about installed P4 and Git-LFS versions Documentation/git-fsck.txt: include fsck.* config variables Simon Williams (1): git-p4: allow unshelving of branched files Steven Roberts (1): gpg-interface: do not scan past the end of buffer Thomas Gummerer (1): stash: fix show referencing stash index Varun Naik (1): read-cache.c: do not die if mmap fails Vishal Verma (1): merge: refuse --commit with --squash Xin Li (1): clone: respect user supplied origin name when setting up partial clone Ævar Arnfjörð Bjarmason (1): hash-object doc: stop mentioning git-cvsimport Version v2.22.0; changes since v2.22.0-rc3: ------------------------------------------- Alessandro Menti (1): l10n: it.po: Updated Italian translation Alexander Shopov (3): l10n: bg.po: Updated Bulgarian translation (4577t) l10n: bg.po: Updated Bulgarian translation (4580t) l10n: bg.po: Updated Bulgarian translation (4581t) Christopher Díaz Riveros (3): l10n: es: 2.22.0 round 1 l10n: es: 2.22.0 round 2 l10n: es: 2.22.0 round 3 Cédric Malard (1): l10n: fr.po: Review French translation Elijah Newren (1): merge-recursive: restore accidentally dropped setting of path Fangyi Zhou (1): l10n: zh_CN: Revision for git v2.22.0 l10n Jean-Noël Avila (3): l10n: fr.po v2.22.0.rnd1 l10n: fr.po v2.22.0 round 2 l10n: fr v2.22.0 rnd 3 Jiang Xin (4): l10n: git.pot: v2.22.0 round 1 (270 new, 56 removed) l10n: git.pot: v2.22.0 round 2 (6 new, 3 removed) l10n: git.pot: v2.22.0 round 3 (3 new, 2 removed) l10n: zh_CN: for git v2.22.0 l10n round 1~3 Jordi Mas (1): l10n: Update Catalan translation Junio C Hamano (1): Git 2.22 Matthias Rüster (2): l10n: TEAMS: Change German translation team leader l10n: de.po: Update German translation Peter Krefting (2): l10n: sv.po: Update Swedish translation l10n: sv.po: Update Swedish translation (4577t0f0u) Ralf Thielow (1): l10n: de.po: improve description of 'git reset --quiet' Trần Ngọc Quân (3): l10n: vi.po(4577t): Updated Vietnamese translation for v2.22.0 round 1 l10n: vi.po(4580t): Updated Vietnamese translation for v2.22.0 round 2 l10n: vi.po(4581t): Updated Vietnamese translation for v2.22.0 round 3 Version v2.22.0-rc3; changes since v2.22.0-rc2: ----------------------------------------------- Christian Couder (1): list-objects-filter: disable 'sparse:path' filters Jiang Xin (1): i18n: fix typos found during l10n for git 2.22.0 Junio C Hamano (1): Git 2.22-rc3 Todd Zullinger (1): RelNotes: minor typo fixes in 2.22.0 draft Version v2.22.0-rc2; changes since v2.22.0-rc1: ----------------------------------------------- Emily Shaffer (1): gitsubmodules: align html and nroff lists Jean-Noël Avila (1): diff: fix mistake in translatable strings Jeff Hostetler (1): trace2: fix tracing when NO_PTHREADS is defined Johannes Schindelin (4): rebase: replace incorrect logical negation by correct bitwise one tests: mark a couple more test cases as requiring `rebase -p` docs: say that `--rebase=preserve` is deprecated rebase docs: recommend `-r` over `-p` Jonathan Tan (1): fetch-pack: send server options after command Junio C Hamano (1): Git 2.22-rc2 Nguyễn Thái Ngọc Duy (3): diff-parseopt: correct variable types that are used by parseopt diff-parseopt: restore -U (no argument) behavior parse-options: check empty value in OPT_INTEGER and OPT_ABBREV SZEDER Gábor (3): trace2: rename environment variables to GIT_TRACE2* trace2: document the supported values of GIT_TRACE2* env variables progress: avoid empty line when breaking the progress line Version v2.22.0-rc1; changes since v2.22.0-rc0: ----------------------------------------------- Boxuan Li (1): t4253-am-keep-cr-dos: avoid using pipes Carlo Marcelo Arenas Belón (1): http-push: prevent format overflow warning with gcc >= 9 Chris Mayo (1): notes: correct documentation of format_display_notes() Chris. Webster (1): diff-highlight: use correct /dev/null for UNIX and Windows Denton Liu (10): t7610: unsuppress output t7610: add mergetool --gui tests t2018: cleanup in current test branch: make create_branch accept a merge base rev tag: fix typo in nested tagging hint mergetool: use get_merge_tool function mergetool--lib: create gui_mode function mergetool: fallback to tool when guitool unavailable difftool: make --gui, --tool and --extcmd mutually exclusive difftool: fallback on merge.guitool Derrick Stolee (3): midx: pass a repository pointer midx: add packs to packed_git linked list trace2: add variable description to git.txt Dustin Spicuzza (1): cvsexportcommit: force crlf translation Elijah Newren (1): Honor core.precomposeUnicode in more places Eric Sunshine (1): check-non-portable-shell: support Perl versions older than 5.10 Jeff King (4): coccicheck: optionally batch spatch invocations t/lib-httpd: pass LSAN_OPTIONS through apache coccicheck: make batch size of 0 mean "unlimited" get_oid: handle NULL repo->index Johannes Schindelin (8): t5580: verify that alternates can be UNC paths fsmonitor: demonstrate that it is not refreshed after discard_index() fsmonitor: force a refresh after the index was discarded t6500(mingw): use the Windows PID of the shell difftool --no-index: error out on --dir-diff (and don't crash) status: fix display of rebase -ir's `label` command parse-options: adjust `parse_opt_unknown_cb()`s declared return type stash: document stash.useBuiltin Josh Steadmon (1): commit-graph: fix memory leak Junio C Hamano (2): pkt-line: drop 'const'-ness of a param to set_packet_header() Git 2.22-rc1 Mike Hommey (1): Make fread/fwrite-like functions in http.c more like fread/fwrite. Nguyễn Thái Ngọc Duy (2): parse-options: don't emit "ambiguous option" for aliases submodule--helper: add a missing \n SZEDER Gábor (1): ci: install 'libsvn-perl' instead of 'git-svn' Tanushree Tumane (1): mingw: remove obsolete IPv6-related code Todd Zullinger (1): test-lib: try harder to ensure a working jgit Ævar Arnfjörð Bjarmason (8): perf README: correct docs for 3c8f12c96c regression perf aggregate: remove GIT_TEST_INSTALLED from --codespeed perf-lib.sh: make "./run " use the correct gits perf-lib.sh: remove GIT_TEST_INSTALLED from perf-lib.sh perf tests: add "bindir" prefix to git tree test results perf-lib.sh: forbid the use of GIT_TEST_INSTALLED trace2: fix up a missing "leave" entry point sha1dc: update from upstream İsmail Dönmez (2): mingw: do not let ld strip relocations mingw: enable DEP and ASLR Version v2.22.0-rc0; changes since v2.21.4: ------------------------------------------- Alban Gruin (18): sequencer: changes in parse_insn_buffer() sequencer: make the todo_list structure public sequencer: remove the 'arg' field from todo_item sequencer: refactor transform_todos() to work on a todo_list sequencer: introduce todo_list_write_to_file() sequencer: refactor check_todo_list() to work on a todo_list sequencer: refactor sequencer_add_exec_commands() to work on a todo_list sequencer: refactor rearrange_squash() to work on a todo_list sequencer: make sequencer_make_script() write its script to a strbuf sequencer: change complete_action() to use the refactored functions rebase--interactive: move sequencer_add_exec_commands() rebase--interactive: move rearrange_squash_in_todo_file() sequencer: refactor skip_unnecessary_picks() to work on a todo_list rebase-interactive: use todo_list_write_to_file() in edit_todo_list() rebase-interactive: append_todo_help() changes rebase-interactive: rewrite edit_todo_list() to handle the initial edit sequencer: use edit_todo_list() in complete_action() rebase--interactive: move transform_todo_file() Alexander Blesius (1): doc: fix typos in man pages Alexander Shopov (1): gitk: Update Bulgarian translation (317t) Anders Waldenborg (7): doc: group pretty-format.txt placeholders descriptions pretty: allow %(trailers) options with explicit value pretty: single return path in %(trailers) handling pretty: allow showing specific trailers pretty: add support for "valueonly" option in %(trailers) strbuf: separate callback for strbuf_expand:ing literals pretty: add support for separator option in %(trailers) Andreas Heiduk (1): revisions.txt: remove ambibuity between : and : Andrei Rybak (1): t4150: remove unused variable Baruch Siach (1): send-email: don't cc *-by lines with '-' prefix Beat Bolli (1): unicode: update the width tables to Unicode 12 Ben Peart (1): read-cache: add post-index-change hook Brandon Richardson (1): commit-tree: utilize parse-options api Christian Couder (4): t6050: use test_line_count instead of wc -l t6050: redirect expected error output to a file replace: peel tag when passing a tag as parent to --graft replace: peel tag when passing a tag first to --graft Clément Chigot (2): Makefile: use fileno macro work around on AIX git-compat-util: work around for access(X_OK) under root Corentin BOMPARD (2): doc/CodingGuidelines: URLs and paths as monospace doc: format pathnames and URLs as monospace. Damien Robert (1): ref-filter: use correct branch for %(push:track) Daniels Umanovskis (1): branch: introduce --show-current display option David Aguilar (2): mergetools: add support for smerge (Sublime Merge) contrib/completion: add smerge to the mergetool completion candidates David Kastrup (1): blame.c: don't drop origin blobs as eagerly Denton Liu (28): completion: complete git submodule absorbgitdirs git-submodule.txt: "--branch " option defaults to 'master' submodule--helper: teach config subcommand --unset submodule: document default behavior git-reset.txt: clarify documentation git-clean.txt: clarify ignore pattern files docs: move core.excludesFile from git-add to gitignore contrib/subtree: ensure only one rev is provided midx.c: convert FLEX_ALLOC_MEM to FLEX_ALLOC_STR cocci: FLEX_ALLOC_MEM to FLEX_ALLOC_STR tag: fix formatting submodule: teach set-branch subcommand tag: advise on nested tags t7600: clean up style t3507: clean up style t7604: clean up style t7502: clean up style commit: extract cleanup_mode functions to sequencer parse-options.h: extract common --cleanup option merge: cleanup messages like commit merge: add scissors line on merge conflict cherry-pick/revert: add scissors line on merge conflict *.[ch]: remove extern from function declarations using spatch *.[ch]: remove extern from function declarations using sed *.[ch]: manually align parameter lists revisions.txt: change "rev" to "" revisions.txt: mark optional rev arguments with [] revisions.txt: mention ~ form Derrick Stolee (1): trace2:data: pack-objects: add trace2 regions Elijah Newren (22): log,diff-tree: add --combined-all-paths option merge-options.txt: correct wording of --no-commit option t9300: demonstrate bug with get-mark and empty orphan commits git-fast-import.txt: fix wording about where ls command can appear fast-import: check most prominent commands first fast-import: only allow cat-blob requests where it makes sense fast-import: fix erroneous handling of get-mark with empty orphan commits Use 'unsigned short' for mode, like diff_filespec does merge-recursive: rename merge_options argument from 'o' to 'opt' merge-recursive: rename diff_filespec 'one' to 'o' merge-recursive: rename locals 'o' and 'a' to 'obuf' and 'abuf' merge-recursive: use 'ci' for rename_conflict_info variable name merge-recursive: move some struct declarations together merge-recursive: shrink rename_conflict_info merge-recursive: remove ren[12]_other fields from rename_conflict_info merge-recursive: track branch where rename occurred in rename struct merge-recursive: cleanup handle_rename_* function signatures merge-recursive: switch from (oid,mode) pairs to a diff_filespec t6043: fix copied test description to match its purpose merge-recursive: track information associated with directory renames merge-recursive: give callers of handle_content_merge() access to contents merge-recursive: switch directory rename detection default Eric Wong (1): repack: enable bitmaps by default on bare repos Jean-Noël Avila (2): l10n: fr.po remove obsolete entries Doc: fix misleading asciidoc formating Jeff Hostetler (29): trace2: Documentation/technical/api-trace2.txt trace2: create new combined trace facility trace2: collect Windows-specific process information trace2:data: add trace2 regions to wt-status trace2:data: add editor/pager child classification trace2:data: add trace2 sub-process classification trace2:data: add trace2 transport child classification trace2:data: add trace2 hook classification trace2:data: add trace2 instrumentation to index read/write trace2:data: add subverb to checkout command trace2:data: add subverb to reset command trace2:data: add subverb for rebase trace2: t/helper/test-trace2, t0210.sh, t0211.sh, t0212.sh trace2: add for_each macros to clang-format progress: add sparse mode to force 100% complete message trace2:data: add trace2 data to midx midx: add progress indicators in multi-pack-index verify midx: during verify group objects by packfile to speed verification config: initialize opts structure in repo_read_config() trace2: refactor setting process starting time trace2: add absolute elapsed time to start event trace2: find exec-dir before trace2 initialization config: add read_very_early_config() trace2: use system/global config for default trace2 settings trace2: report peak memory usage of the process trace2: clarify UTC datetime formatting trace2: make SIDs more unique trace2: update docs to describe system/global config settings trace2: fixup access problem on /etc/gitconfig in read_very_early_config Jeff King (88): prune: lazily perform reachability traversal prune: use bitmaps for reachability traversal prune: check SEEN flag for reachability t5304: rename "sha1" variables to "oid" diff: drop options parameter from diffcore_fix_diff_index() diff: drop unused color reset parameters diff: drop unused emit data parameter from sane_truncate_line() diff: drop complete_rewrite parameter from run_external_diff() merge-recursive: drop several unused parameters pack-objects: drop unused parameter from oe_map_new_pack() files-backend: drop refs parameter from split_symref_update() ref-filter: drop unused buf/sz pairs ref-filter: drop unused "obj" parameters ref-filter: drop unused "sz" parameters diff: reuse diff setup for --no-index case bisect: use string arguments to feed internal diff-tree bisect: fix internal diff-tree config loading bisect: make diff-tree output prettier fetch: avoid calling write_or_die() fetch: ignore SIGPIPE during network operation rev-list: allow cached objects in existence check doc/fsck: clarify --connectivity-only behavior fsck: always compute USED flags for unreachable objects compat/bswap: add include header guards config: document --type=color output is a complete line line-log: suppress diff output with "-s" line-log: detect unsupported formats point pull requesters to GitGitGadget Makefile: fix unaligned loads in sha1dc with UBSan t5310: correctly remove bitmaps for jgit test pack-objects: default to writing bitmap hash-cache perf-lib.sh: rely on test-lib.sh for --tee handling revision: drop some unused "revs" parameters log: drop unused rev_info from early output log: drop unused "len" from show_tagger() update-index: drop unused prefix_length parameter from do_reupdate() test-date: drop unused "now" parameter from parse_dates() unpack-trees: drop name_entry from traverse_by_cache_tree() unpack-trees: drop unused error_type parameters report_path_error(): drop unused prefix parameter fetch_pack(): drop unused parameters parse-options: drop unused ctx parameter from show_gitcomp() pretty: drop unused "type" parameter in needs_rfc2047_encoding() pretty: drop unused strbuf from parse_padding_placeholder() git: read local config in --list-cmds completion: fix multiple command removals parse_opt_ref_sorting: always use with NONEG flag refs/files-backend: handle packed transaction prepare failure refs/files-backend: don't look at an aborted transaction http: factor out curl result code normalization http: normalize curl results for dumb loose and alternates fetches http: use normalize_curl_result() instead of manual conversion revision: use a prio_queue to hold rewritten parents get_commit_tree(): return NULL for broken tree rev-list: let traversal die when --missing is not in use rev-list: detect broken root trees test-prio-queue: use xmalloc xdiff: use git-compat-util xdiff: use xmalloc/xrealloc progress: use xmalloc/xcalloc t5516: drop ok=sigpipe from unreachable-want tests t5530: check protocol response for "not our ref" upload-pack: send ERR packet for non-tip objects pkt-line: prepare buffer before handling ERR packets fetch: use free_refs() remote.c: make singular free_ref() public fetch: do not consider peeled tags as advertised tips packfile.h: drop extern from function declarations pack-revindex: open index if necessary t5319: fix bogus cat-file argument t5319: drop useless --buffer from cat-file midx: check both pack and index names for containment packfile: fix pack basename computation http: simplify parsing of remote objects/info/packs server-info: fix blind pointer arithmetic server-info: simplify cleanup in parse_pack_def() server-info: use strbuf to read old info/packs file server-info: drop nr_alloc struct member server-info: drop objdirlen pointer arithmetic update_info_refs(): drop unused force parameter t5304: add a test for pruning with bitmaps untracked-cache: be defensive about missing NULs in index untracked-cache: simplify parsing by dropping "next" untracked-cache: simplify parsing by dropping "len" p5302: create the repo in each index-pack test doc/ls-files: put nested list for "-t" option into block t/perf: depend on perl JSON only when using --codespeed t/perf: add perf script for partial clones Jiang Xin (4): t5323: test cases for git-pack-redundant pack-redundant: delay creation of unique_objects pack-redundant: rename pack_list.all_objects pack-redundant: consistent sort method Joel Teichroeb (5): stash: improve option parsing test coverage stash: convert apply to builtin stash: convert drop and clear to builtin stash: convert branch to builtin stash: convert pop to builtin Joey Hess (1): convert: avoid malloc of original file size Johannes Schindelin (55): ident: add the ability to provide a "fallback identity" travis: remove the hack to build the Windows job on Azure Pipelines tests: let --stress-limit= imply --stress tests: introduce --stress-jobs= built-in rebase: no need to check out `onto` twice built-in rebase: use the correct reflog when switching branches built-in rebase: demonstrate that ORIG_HEAD is not set correctly built-in rebase: set ORIG_HEAD just once, before the rebase Makefile: use `git ls-files` to list header files, if possible curl: anonymize URLs in error messages and warnings remote-curl: mark all error messages for translation stash: add back the original, scripted `git stash` stash: optionally use the scripted version again tests: add a special setup where stash.useBuiltin is off legacy stash: fix "rudimentary backport of -q" built-in stash: handle :(glob) pathspecs again mingw: drop MakeMaker reference mingw: allow building with an MSYS2 runtime v3.x rebase: deprecate --preserve-merges mingw: respect core.hidedotfiles = false in git-init again test-lib: introduce 'test_atexit' git-daemon: use 'test_atexit` to stop 'git-daemon' git p4 test: use 'test_atexit' to kill p4d and the watchdog process rebase -i: demonstrate obscure loose object cache bug sequencer: improve error message when an OID could not be parsed sequencer: move stale comment into correct location get_oid(): when an object was not found, try harder difftool: remove obsolete (and misleading) comment parse-options: make OPT_ARGUMENT() more useful difftool: allow running outside Git worktrees with --no-index docs: move gitremote-helpers into section 7 docs: do not document the `git remote-testgit` command check-docs: really look at the documented commands again check-docs: do not expect guide pages to correspond to commands check-docs: fix for setups where executables have an extension tests (rebase): spell out the `--keep-empty` option tests (rebase): spell out the `--force-rebase` option t7810: do not abbreviate `--no-exclude-standard` nor `--invert-match` t5531: avoid using an abbreviated option tests (push): do not abbreviate the `--follow-tags` option tests (status): spell out the `--find-renames` option in full tests (pack-objects): use the full, unabbreviated `--revs` option t3301: fix false negative untracked cache: fix off-by-one tests: disallow the use of abbreviated options (by default) t9822: skip tests if file names cannot be ISO-8859-1 encoded macOS: make sure that gettext is found remote-testgit: move it into the support directory for t5801 Makefile: drop the NO_INSTALL variable help -a: do not list commands that are excluded from the build check-docs: allow command-list.txt to contain excluded commands docs: exclude documentation for commands that have been excluded check-docs: do not bother checking for legacy scripts' documentation test-tool: handle the `-C ` option just like `git` Turn `git serve` into a test helper Jonathan Tan (24): remote-curl: reduce scope of rpc_state.argv remote-curl: reduce scope of rpc_state.stdin_preamble remote-curl: reduce scope of rpc_state.result remote-curl: refactor reading into rpc_state's buf remote-curl: use post_rpc() for protocol v2 also tests: define GIT_TEST_PROTOCOL_VERSION t5601: check ssh command only with protocol v0 tests: always test fetch of unreachable with v0 t5503: fix overspecification of trace expectation t5512: compensate for v0 only sending HEAD symrefs t5700: only run with protocol version 1 tests: fix protocol version for overspecifications t5552: compensate for v2 filtering ref adv. submodule: explain first attempt failure clearly t5551: mark half-auth no-op fetch test as v0-only fetch-pack: call prepare_shallow_info only if v0 fetch-pack: respect --no-update-shallow in v2 sha1-file: support OBJECT_INFO_FOR_PREFETCH fetch-pack: binary search when storing wanted-refs diff: batch fetching of missing blobs pack-objects: write objects packed to trace2 transport: die if server options are unsupported clone: send server options when using protocol v2 worktree: update is_bare heuristics Jordi Mas (1): l10n: Fixes to Catalan translation Josh Steadmon (4): protocol-capabilities.txt: document symref trace2: write to directory targets clone: do faster object check for partial clones trace2: fix incorrect function pointer check Junio C Hamano (14): test: caution on our version of 'yes' builtin/log: downcase the beginning of error messages format-patch: notice failure to open cover letter for writing Start 2.22 cycle The second batch The third batch The fourth batch gettext tests: export the restored GIT_TEST_GETTEXT_POISON The fifth batch The sixth batch Makefile: dedup list of files obtained from ls-files The seventh batch The eighth batch Git 2.22-rc0 Kyle Meyer (5): rebase docs: fix "gitlink" typo submodule: refuse to add repository with no commits dir: do not traverse repositories with no commits add: error appropriately on repository with no commits t3000 (ls-files -o): widen description to reflect current tests Martin Ågren (14): setup: free old value before setting `work_tree` setup: fix memory leaks with `struct repository_format` config/diff.txt: drop spurious backtick config/fsck.txt: avoid starting line with dash git.txt: remove empty line before list continuation git-svn.txt: drop escaping '\' that ends up being rendered Documentation: turn middle-of-line tabs into spaces Documentation/Makefile: add missing xsl dependencies for manpages Documentation/Makefile: add missing dependency on asciidoctor-extensions asciidoctor-extensions: fix spurious space after linkgit Doc: auto-detect changed build flags doc-diff: let `render_tree()` take an explicit directory name doc-diff: support diffing from/to AsciiDoc(tor) doc-diff: add `--cut-header-footer` Matthew Kraai (1): t3903: add test for --intent-to-add file Michal Suchanek (1): worktree: fix worktree add race Mike Hommey (1): fix pack protocol example client/server communication Nguyễn Thái Ngọc Duy (124): parse-options.h: remove extern on function prototypes parse-options: add one-shot mode parse-options: disable option abbreviation with PARSE_OPT_KEEP_UNKNOWN parse-options: add OPT_BITOP() parse-options: stop abusing 'callback' for lowlevel callbacks parse-options: avoid magic return codes parse-options: allow ll_callback with OPTION_CALLBACK diff.h: keep forward struct declarations sorted diff.h: avoid bit fields in struct diff_flags diff.c: prepare to use parse_options() for parsing diff.c: convert -u|-p|--patch diff.c: convert -U|--unified diff.c: convert -W|--[no-]function-context diff.c: convert --raw read-cache.c: fix writing "link" index ext with null base oid completion: add more parameter value completion diff-parseopt: convert --patch-with-raw diff-parseopt: convert --numstat and --shortstat diff-parseopt: convert --dirstat and friends diff-parseopt: convert --check diff-parseopt: convert --summary diff-parseopt: convert --patch-with-stat diff-parseopt: convert --name-only diff-parseopt: convert --name-status diff-parseopt: convert -s|--no-patch diff-parseopt: convert --stat* diff-parseopt: convert --[no-]compact-summary diff-parseopt: convert --output-* diff-parseopt: convert -B|--break-rewrites diff-parseopt: convert -M|--find-renames diff-parseopt: convert -D|--irreversible-delete diff-parseopt: convert -C|--find-copies diff-parseopt: convert --find-copies-harder diff-parseopt: convert --no-renames|--[no--rename-empty diff-parseopt: convert --relative diff-parseopt: convert --[no-]minimal diff-parseopt: convert --ignore-some-changes Delete check-racy.c diff-parseopt: convert --[no-]indent-heuristic diff-parseopt: convert --patience diff-parseopt: convert --histogram diff-parseopt: convert --diff-algorithm diff-parseopt: convert --anchored diff-parseopt: convert --binary diff-parseopt: convert --full-index diff-parseopt: convert -a|--text diff-parseopt: convert -R diff-parseopt: convert --[no-]follow diff-parseopt: convert --[no-]color diff-parseopt: convert --word-diff diff-parseopt: convert --word-diff-regex diff-parseopt: convert --color-words diff-parseopt: convert --exit-code diff-parseopt: convert --quiet diff-parseopt: convert --ext-diff diff-parseopt: convert --textconv diff-parseopt: convert --ignore-submodules diff-parseopt: convert --submodule files-backend.c: factor out per-worktree code in loose_fill_ref_dir() files-backend.c: reduce duplication in add_per_worktree_entries_to_dir() Make sure refs/rewritten/ is per-worktree unpack-trees: fix oneway_merge accidentally carry over stage index checkout.txt: note about losing staged changes with --merge commit: improve error message in "-a " case unpack-trees: keep gently check inside add_rejected_path unpack-trees: rename "gently" flag to "quiet" read-tree: add --quiet checkout: prevent losing staged changes with --merge diff-parseopt: convert --ws-error-highlight diff-parseopt: convert --ita-[in]visible-in-index diff-parseopt: convert -z diff-parseopt: convert -l diff-parseopt: convert -S|-G diff-parseopt: convert --pickaxe-all|--pickaxe-regex diff-parseopt: convert -O diff-parseopt: convert --find-object diff-parseopt: convert --diff-filter diff-parseopt: convert --[no-]abbrev diff-parseopt: convert --[src|dst]-prefix diff-parseopt: convert --line-prefix diff-parseopt: convert --no-prefix diff-parseopt: convert --inter-hunk-context diff-parseopt: convert --[no-]color-moved diff-parseopt: convert --color-moved-ws diff.c: allow --no-color-moved-ws range-diff: use parse_options() instead of diff_opt_parse() diff --no-index: use parse_options() instead of diff_opt_parse() am: avoid diff_opt_parse() config: correct '**' matching in includeIf patterns interpret-trailers.txt: start the desc line with a capital letter read-tree.txt: clarify --reset and worktree changes packfile.c: add repo_approximate_object_count() refs.c: add refs_ref_exists() refs.c: add refs_shorten_unambiguous_ref() refs.c: remove the_repo from substitute_branch_name() refs.c: remove the_repo from expand_ref() refs.c: add repo_dwim_ref() refs.c: add repo_dwim_log() refs.c: remove the_repo from read_ref_at() submodule foreach: fix " --quiet" not being respected commit.cocci: refactor code, avoid double rewrite commit.c: add repo_get_commit_tree() sha1-name.c: remove the_repo from sort_ambiguous() sha1-name.c: remove the_repo from find_abbrev_len_packed() sha1-name.c: add repo_find_unique_abbrev_r() sha1-name.c: store and use repo in struct disambiguate_state sha1-name.c: add repo_for_each_abbrev() sha1-name.c: remove the_repo from get_short_oid() sha1-name.c: remove the_repo from interpret_nth_prior_checkout() sha1-name.c: remove the_repo from interpret_branch_mark() sha1-name.c: add repo_interpret_branch_name() sha1-name.c: remove the_repo from get_oid_oneline() sha1-name.c: remove the_repo from get_describe_name() sha1-name.c: remove the_repo from get_oid_basic() sha1-name.c: remove the_repo from get_oid_1() sha1-name.c: remove the_repo from handle_one_ref() sha1-name.c: remove the_repo from diagnose_invalid_index_path() sha1-name.c: remove the_repo from resolve_relative_path() sha1-name.c: remove the_repo from get_oid_with_context_1() sha1-name.c: add repo_get_oid() submodule-config.c: use repo_get_oid for reading .gitmodules sha1-name.c: remove the_repo from maybe_die_on_misspelt_object_name sha1-name.c: remove the_repo from other get_oid_* sha1-name.c: remove the_repo from get_oid_mb() Paul-Sebastian Ungureanu (17): sha1-name.c: add `get_oidf()` which acts like `get_oid()` strbuf.c: add `strbuf_join_argv()` strbuf.c: add `strbuf_insertf()` and `strbuf_vinsertf()` t3903: modernize style stash: rename test cases to be more descriptive stash: add tests for `git stash show` config stash: mention options in `show` synopsis stash: convert list to builtin stash: convert show to builtin stash: convert store to builtin stash: convert create to builtin stash: convert push to builtin stash: make push -q quiet stash: convert save to builtin stash: optimize `get_untracked_files()` and `check_changes()` stash: replace all `write-tree` child processes with API calls stash: convert `stash--helper.c` into `stash.c` Philip Oakley (2): rerere doc: quote `rerere.enabled` describe doc: remove '7-char' abbreviation reference Phillip Wood (21): am/cherry-pick/rebase/revert: document --rerere-autoupdate merge: tweak --rerere-autoupdate documentation sequencer: break some long lines cherry-pick: demonstrate option amnesia cherry-pick --continue: remember options commit/reset: try to clean up sequencer state fix cherry-pick/revert status after commit sequencer: fix cleanup with --signoff and -x sequencer.c: save and restore cleanup mode sequencer: always discard index after checkout rebase: don't translate trace strings rebase: rename write_basic_state() rebase: use OPT_RERERE_AUTOUPDATE() rebase -i: combine rebase--interactive.c with rebase.c rebase -i: remove duplication rebase -i: use struct commit when parsing options rebase -i: use struct object_id for squash_onto rebase -i: use struct rebase_options to parse args rebase -i: use struct rebase_options in do_interactive_rebase() rebase: use a common action enum rebase -i: run without forking rebase--interactive Ramsay Jones (2): prune-packed: check for too many arguments Makefile: fix 'hdr-check' when GCRYPT not installed René Scharfe (1): get-tar-commit-id: parse comment record Robert P. J. Day (3): mention use of "hooks.allownonascii" in "man githooks" docs/git-gc: fix typo "--prune=all" to "--prune=now" attr.c: ".gitattribute" -> ".gitattributes" (comments) Rohit Ashiwal (3): test functions: add function `test_file_not_empty` t3600: modernize style t3600: use helpers to replace test -d/f/e/s SZEDER Gábor (23): test-lib: fix interrupt handling with 'dash' and '--verbose-log -x' t/lib-git-daemon: make sure to kill the 'git-daemon' process tests: use 'test_atexit' to stop httpd t0301-credential-cache: use 'test_atexit' to stop the credentials helper git p4 test: clean up the p4d cleanup functions git p4 test: simplify timeout handling git p4 test: disable '-x' tracing in the p4d watchdog loop t9811-git-p4-label-import: fix pipeline negation t5318-commit-graph: remove unused variable Documentation/git-diff-tree.txt: fix formatting Documentation/technical/api-config.txt: fix formatting Documentation/technical/protocol-v2.txt: fix formatting ci: install Asciidoctor in 'ci/install-dependencies.sh' index-pack: show progress while checking objects ci: stick with Asciidoctor v1.5.8 for now ci: fix AsciiDoc/Asciidoctor stderr check in the documentation build job progress: make display_progress() return void progress: assemble percentage and counters in a strbuf before printing blame: default to HEAD in a bare repo when no start commit is given builtin rebase: use FREE_AND_NULL builtin rebase: use oideq() progress: clear previous progress update dynamically progress: break too long progress bar lines Sun Chao (2): pack-redundant: delete redundant code pack-redundant: new algorithm to find min packs Sven Strickroth (1): MSVC: include compat/win32/path-utils.h for MSVC, too, for real_path() Taylor Blau (4): t: move 'hex2oct' into test-lib-functions.sh t: introduce tests for unexpected object types list-objects.c: handle unexpected non-blob entries list-objects.c: handle unexpected non-tree entries Thomas Gummerer (15): move worktree tests to t24* entry: factor out unlink_entry function entry: support CE_WT_REMOVE flag in checkout_entry read-cache: add invalidate parameter to remove_marked_cache_entries checkout: clarify comment checkout: factor out mark_cache_entry_for_checkout function checkout: introduce --{,no-}overlay option checkout: introduce checkout.overlayMode config revert "checkout: introduce checkout.overlayMode config" ident: don't require calling prepare_fallback_ident first stash: drop unused parameter stash: pass pathspec as pointer glossary: add definition for overlay stash: setup default diff output format if necessary ls-files: use correct format string Todd Zullinger (7): t4038-diff-combined: quote paths with whitespace t9902: test multiple removals via completion.commands completion: use __git when calling --list-cmds Documentation/rev-list-options: wrap --date= block with "--" Documentation/git-status: fix titles in porcelain v2 section Documentation/git-svn: improve asciidoctor compatibility Documentation/git-show-branch: avoid literal {apostrophe} Torsten Bögershausen (1): trace2: NULL is not allowed for va_list Trần Ngọc Quân (1): l10n: Updated Vietnamese translation for v2.21 rd2 Vadim Kochan (1): autoconf: #include when checking for gettext() William Hubbs (1): config: allow giving separate author and committer idents Yash Bhatambare (1): gitattributes.txt: fix typo brian m. carlson (35): t/lib-submodule-update: use appropriate length constant khash: move oid hash table definition pack-bitmap: make bitmap header handling hash agnostic pack-bitmap: convert struct stored_bitmap to object_id pack-bitmap: replace sha1_to_hex pack-bitmap: switch hard-coded constants to the_hash_algo pack-bitmap: switch hash tables to use struct object_id submodule: avoid hard-coded constants notes-merge: switch to use the_hash_algo notes: make hash size independent notes: replace sha1_to_hex object-store: rename and expand packed_git's sha1 member builtin/name-rev: make hash-size independent fast-import: make hash-size independent fast-import: replace sha1_to_hex builtin/am: make hash size independent builtin/pull: make hash-size independent http-push: convert to use the_hash_algo http-backend: allow 64-character hex names http-push: remove remaining uses of sha1_to_hex http-walker: replace sha1_to_hex http: replace hard-coded constant with the_hash_algo http: compute hash of downloaded objects using the_hash_algo http: replace sha1_to_hex remote-curl: make hash size independent hash: add a function to lookup hash algorithm by length builtin/get-tar-commit-id: make hash size independent archive: convert struct archiver_args to object_id refspec: make hash size independent builtin/difftool: use parse_oid_hex dir: make untracked cache extension hash size independent read-cache: read data in a hash-independent way Git.pm: make hash size independent gitweb: make hash size independent send-email: default to quoted-printable when CR is present Ævar Arnfjörð Bjarmason (36): receive-pack: fix use-after-free bug commit-graph tests: split up corrupt_graph_and_verify() commit-graph tests: test a graph that's too small Makefile: remove an out-of-date comment Makefile: move "strip" assignment down from flags Makefile: add/remove comments at top and tweak whitespace Makefile: Move *_LIBS assignment into its own section Makefile: move the setting of *FLAGS closer to "include" Makefile: allow for combining DEVELOPER=1 and CFLAGS="..." gc: remove redundant check for gc_auto_threshold gc: convert to using the_hash_algo gc: refactor a "call me once" pattern reflog tests: make use of "test_config" idiom reflog tests: test for the "points nowhere" warning rebase: remove the rebase.useBuiltin setting gc docs: modernize the advice for manually running "gc" gc docs: stop noting "repack" flags gc docs: clean grammar for "gc.bigPackThreshold" commit-graph: fix segfault on e.g. "git status" commit-graph: don't early exit(1) on e.g. "git status" commit-graph: don't pass filename to load_commit_graph_one_fd_st() commit-graph verify: detect inability to read the graph commit-graph write: don't die if the existing graph is corrupt commit-graph: improve & i18n error messages reflog tests: assert lack of early exit with expiry="never" gc: handle & check gc.reflogExpire config test-lib: whitelist GIT_TR2_* in the environment gc docs: include the "gc.*" section from "config" in "gc" gc docs: re-flow the "gc.*" section in "config" gc docs: fix formatting for "gc.writeCommitGraph" gc docs: note how --aggressive impacts --window & --depth gc docs: downplay the usefulness of --aggressive gc docs: note "gc --aggressive" in "fast-import" gc docs: clarify that "gc" doesn't throw away referenced objects gc docs: remove incorrect reference to gc.auto=0 trace2: fix up a missing "leave" entry point Version v2.21.4; changes since v2.21.3: --------------------------------------- Johannes Schindelin (6): run-command: invalidate lstat cache after a command finished Git 2.17.6 Git 2.18.5 Git 2.19.6 Git 2.20.5 Git 2.21.4 Matheus Tavares (2): checkout: fix bug that makes checkout follow symlinks in leading path unpack_trees(): start with a fresh lstat cache Version v2.21.3; changes since v2.21.2: --------------------------------------- Jeff King (6): t0300: make "quit" helper more realistic t0300: use more realistic inputs credential: parse URL without host as empty host, not unset credential: refuse to operate when missing host or protocol credential: die() when parsing invalid urls Git 2.17.5 Jonathan Nieder (4): fsck: convert gitmodules url to URL passed to curl credential: treat URL without scheme as invalid credential: treat URL with empty scheme as invalid fsck: reject URL with empty host in .gitmodules Version v2.21.2; changes since v2.21.1: --------------------------------------- Jeff King (4): credential: avoid writing values with newlines t/lib-credential: use test_i18ncmp to check stderr credential: detect unrepresentable values when parsing urls fsck: detect gitmodules URLs with embedded newlines Junio C Hamano (1): Git 2.17.4 Version v2.21.1; changes since v2.21.0: --------------------------------------- Garima Singh (2): test-path-utils: offer to run a protectNTFS/protectHFS benchmark tests: add a helper to stress test argument quoting Jeff King (7): t9300: drop some useless uses of cat t9300: create marks files for double-import-marks test fast-import: tighten parsing of boolean command line options fast-import: stop creating leading directories for import-marks fast-import: delay creating leading directories for export-marks fast-import: disallow "feature export-marks" by default fast-import: disallow "feature import-marks" by default Johannes Schindelin (33): clone --recurse-submodules: prevent name squatting on Windows mingw: disallow backslash characters in tree objects' file names path.c: document the purpose of `is_ntfs_dotgit()` is_ntfs_dotgit(): only verify the leading segment path: safeguard `.git` against NTFS Alternate Streams Accesses is_ntfs_dotgit(): speed it up mingw: fix quoting of arguments path: also guard `.gitmodules` against NTFS Alternate Data Streams protect_ntfs: turn on NTFS protection by default Disallow dubiously-nested submodule git directories quote-stress-test: accept arguments to test via the command-line t6130/t9350: prepare for stringent Win32 path validation quote-stress-test: allow skipping some trials unpack-trees: let merged_entry() pass through do_add_entry()'s errors mingw: refuse to access paths with illegal characters quote-stress-test: offer to test quoting arguments for MSYS2 sh mingw: refuse to access paths with trailing spaces or periods mingw: handle `subst`-ed "DOS drives" Git 2.14.6 Git 2.15.4 test-drop-caches: use `has_dos_drive_prefix()` Git 2.16.6 Git 2.17.3 Git 2.18.2 Git 2.19.3 t7415: adjust test for dubiously-nested submodule gitdirs for v2.20.x Git 2.20.2 mingw: detect when MSYS2's sh is to be spawned more robustly mingw: use MSYS2 quoting even when spawning shell scripts mingw: fix quoting of empty arguments for `sh` t7415: drop v2.20.x-specific work-around mingw: sh arguments need quoting in more circumstances Git 2.21.1 Jonathan Nieder (3): submodule: reject submodule.update = !command in .gitmodules fsck: reject submodule.update = !command in .gitmodules submodule: defend against submodule.update = !command in .gitmodules Version v2.21.0; changes since v2.21.0-rc2: ------------------------------------------- Alessandro Menti (1): l10n: it: update the Italian translation Alexander Shopov (1): l10n: bg.po: Updated Bulgarian translation (4363t) Christopher Díaz Riveros (1): l10n: es: 2.21.0 round 2 Fabien Villepinte (2): l10n: fr.po Fix some typos l10n: fr.po Fix some typos from round3 Fangyi Zhou (1): l10n: zh_CN: Revision for git v2.21.0 l10n Jean-Noël Avila (1): l10n: fr.po v2.21.0 rnd 2 Jiang Xin (3): l10n: git.pot: v2.21.0 round 1 (214 new, 38 removed) l10n: git.pot: v2.21.0 round 2 (3 new, 3 removed) l10n: zh_CN: for git v2.21.0 l10n round 1~2 Jimmy Angelakos (1): l10n: el: add Greek l10n team and essential translations Johannes Schindelin (1): README: adjust for final Azure Pipeline ID Jordi Mas (2): l10n: Update Catalan translation l10n: Fixes to Catalan translation Junio C Hamano (1): Git 2.21 Nguyễn Thái Ngọc Duy (1): l10n: bg.po: correct typo Peter Krefting (1): l10n: Update Swedish translation (4363t0f0u) Ralf Thielow (1): l10n: update German translation Sebastian Staudt (3): l10n: de.po: consistent translation of 'root commit' l10n: de.po: fix a message for index-pack.c l10n: de.po: fix grammar in message for tag.c Yoichi Nakayama (1): checkout doc: fix an unmatched double-quote pair Zhilei Han (1): l10n: zh_CN: fix typo of submodule init message Ævar Arnfjörð Bjarmason (3): tests: avoid syntax triggering old dash bug tests: fix unportable "\?" and "\+" regex syntax commit-graph tests: fix unportable "dd" invocation Version v2.21.0-rc2; changes since v2.21.0-rc1: ----------------------------------------------- Elijah Newren (1): git-rebase.txt: update to reflect merge now implemented on sequencer Emilio Cobos Álvarez (1): docs/git-rebase: remove redundant entry in incompatible options list Johannes Schindelin (2): mingw: safe-guard a bit more against getenv() problems tests: teach the test-tool to generate NUL bytes and use it Junio C Hamano (3): t1404: do not rely on the exact phrasing of strerror() Revert "t5562: replace /dev/zero with a pipe from generate_zero_bytes" Git 2.21-rc2 Max Kirillov (2): t5562: do not depend on /dev/zero t5562: do not reuse output files Todd Zullinger (1): t/lib-httpd: pass GIT_TEST_SIDEBAND_ALL through Apache Version v2.21.0-rc1; changes since v2.21.0-rc0: ----------------------------------------------- Derrick Stolee (1): Makefile: add coverage-prove target Jean-Noël Avila (1): Fix typos in translatable strings for v2.21.0 Jeff King (4): remote-curl: refactor smart-http discovery remote-curl: tighten "version 2" check for smart-http RelNotes/2.21: tweak "--date=auto" mention RelNotes/2.21: misc typo/English fixups Johannes Schindelin (4): Revert "rebase: introduce a shortcut for --reschedule-failed-exec" mingw: fix CPU reporting in `git version --build-options` .mailmap: map Clemens Buchacher's mail addresses mingw: use a more canonical method to fix the CPU reporting Josh Steadmon (3): t5551: test server-side ERR packet fuzz-commit-graph: initialize repo object object: fix leak of shallow_stat Junio C Hamano (3): ci: clear and mark MAKEFLAGS exported just once Seventh batch for 2.21 Git 2.21-rc1 Katrin Leinweber (1): doc: prevent overflowing tag in rendered HTML Kevin Daudt (1): t0028: fix wrong octal values for BOM in setup Luke Diamand (1): git-p4: remove ticket expiry test Nguyễn Thái Ngọc Duy (5): checkout: update count-checkouts messages checkout: count and print -m paths separately imap-send.c: add a missing space in error message git-compat-util: work around fileno(fp) that is a macro get_oid_with_context(): match prototype and implementation Ramsay Jones (1): sequencer: make sign_off_header a file local symbol Randall S. Becker (6): t5403: correct bash ambiguous redirect error in subtest 8 by quoting $GIT_DIR config.mak.uname: add FREAD_READS_DIRECTORIES for NonStop platform test-lib-functions.sh: add generate_zero_bytes function t5318: replace use of /dev/zero with generate_zero_bytes t5562: replace /dev/zero with a pipe from generate_zero_bytes config.mak.uname: move location of bash on NonStop to CoreUtils SZEDER Gábor (3): ci: make sure we build Git parallel test-lib: make '--stress' more bisect-friendly test-lib: fix non-portable pattern bracket expressions Todd Zullinger (2): t/lib-gpg: quote path to ${GNUPGHOME}/trustlist.txt t/lib-gpg: drop redundant killing of gpg-agent brian m. carlson (1): utf8: handle systems that don't write BOM for UTF-16 Ævar Arnfjörð Bjarmason (1): rebase: fix regression in rebase.useBuiltin=false test mode Version v2.21.0-rc0; changes since v2.20.5: ------------------------------------------- Arti Zirk (1): git-instaweb: add Python builtin http.server support Ben Peart (2): checkout: add test demonstrating regression with checkout -b on initial commit checkout: fix regression in checkout -b on intitial checkout Brandon Richardson (1): commit-tree: add missing --gpg-sign flag Brandon Williams (1): mailmap: update brandon williams's email address Carlo Marcelo Arenas Belón (4): t6036: avoid non-portable "cp -a" tests: add lint for non portable cp -a t5004: avoid using tar for empty packages config.mak.uname: OpenBSD uses BSD semantics with fread for directories Chayoung You (3): zsh: complete unquoted paths with spaces correctly completion: treat results of git ls-tree as file paths completion: fix typo in git-completion.bash Christian Couder (3): fetch: fix extensions.partialclone name in error message partial-clone: add missing 'is' in doc helper/test-ref-store: fix "new-sha1" vs "old-sha1" typo David Turner (1): Do not print 'dangling' for cat-file in case of ambiguity Denis Ovsienko (1): docs: fix $strict_export text in gitweb.conf.txt Derrick Stolee (8): merge-recursive: combine error handling commit-graph: writing missing parents is a BUG git-gc.txt: fix typo about gc.writeCommitGraph revision: add mark_tree_uninteresting_sparse list-objects: consume sparse tree walk revision: implement sparse algorithm pack-objects: create pack.useSparse setting pack-objects: create GIT_TEST_PACK_SPARSE Elijah Newren (30): t6042: add tests for consistency in file collision conflict handling t6036, t6042: testcases for rename collision of already conflicting files merge-recursive: increase marker length with depth of recursion merge-recursive: new function for better colliding conflict resolutions merge-recursive: fix rename/add conflict handling merge-recursive: improve handling for rename/rename(2to1) conflicts merge-recursive: use handle_file_collision for add/add conflicts merge-recursive: improve rename/rename(1to2)/add[/add] handling t6036, t6043: increase code coverage for file collision handling fast-export: convert sha1 to oid git-fast-import.txt: fix documentation for --quiet option git-fast-export.txt: clarify misleading documentation about rev-list args fast-export: use value from correct enum fast-export: avoid dying when filtering by paths and old tags exist fast-export: move commit rewriting logic into a function for reuse fast-export: when using paths, avoid corrupt stream with non-existent mark fast-export: ensure we export requested refs fast-export: add --reference-excluded-parents option fast-import: remove unmaintained duplicate documentation fast-export: add a --show-original-ids option to show original names git-rebase.txt: update note about directory rename detection and am rebase: make builtin and legacy script error messages the same rebase: fix incompatible options error message t5407: add a test demonstrating how interactive handles --skip differently am, rebase--merge: do not overlook --skip'ed commits with post-rewrite git-rebase, sequencer: extend --quiet option for the interactive machinery git-legacy-rebase: simplify unnecessary triply-nested if rebase: define linearization ordering and enforce it rebase: implement --merge via the interactive machinery git-show-ref.txt: fix order of flags Eric Sunshine (1): doc/config: do a better job of introducing 'worktree.guessRemote' Eric Wong (2): banned.h: mark strncat() as banned t1512: test ambiguous cat-file --batch and --batch-output Erin Dahlgren (1): Simplify handling of setup_git_directory_gently() failure cases. Force Charlie (1): http: add support selecting http version Frank Dana (1): docs/gitweb.conf: config variable typo Issac Trotts (1): log: add %S option (like --source) to log --format Jean-Noël Avila (2): Documentation/Makefile add optional targets for l10n doc: tidy asciidoc style Jeff King (50): fsck: do not reuse child_process structs submodule--helper: prefer strip_suffix() to ends_with() rename "alternate_object_database" to "object_directory" sha1_file_name(): overwrite buffer instead of appending handle alternates paths the same as the main object dir sha1-file: use an object_directory for the main object dir object-store: provide helpers for loose_objects_cache sha1-file: use loose object cache for quick existence check fetch-pack: drop custom loose object cache odb_load_loose_cache: fix strbuf leak transport-helper: drop read/write errno checks sha1-file: fix outdated sha1 comment references update comment references to sha1_object_info() http: use struct object_id instead of bare sha1 sha1-file: modernize loose object file functions sha1-file: modernize loose header/stream functions sha1-file: convert pass-through functions to object_id convert has_sha1_file() callers to has_object_file() sha1-file: drop has_sha1_file() sha1-file: prefer "loose object file" to "sha1 file" in messages sha1-file: avoid "sha1 file" for generic use in messages prefer "hash mismatch" to "sha1 mismatch" upload-pack: support hidden refs with protocol v2 remote: check config validity before creating rewrite struct get_super_prefix(): copy getenv() result commit: copy saved getenv() result config: make a copy of $GIT_CONFIG string init: make a copy of $GIT_DIR string merge-recursive: copy $GITHEAD strings builtin_diff(): read $GIT_DIFF_OPTS closer to use add: use separate ADD_CACHE_RENORMALIZE flag attr: do not mark queried macros as unset t4006: resurrect commented-out tests diff: clear emitted_symbols flag after use combine-diff: factor out stat-format mask combine-diff: treat --shortstat like --stat combine-diff: treat --summary like --stat combine-diff: treat --dirstat like --stat match-trees: drop unused path parameter from score functions apply: drop unused "def" parameter from find_name_gnu() create_bundle(): drop unused "header" parameter column: drop unused "opts" parameter in item_length() show_date_relative(): drop unused "tz" parameter config: drop unused parameter from maybe_remove_section() convert: drop len parameter from conversion checks convert: drop path parameter from actual conversion functions doc/gitattributes: clarify "autocrlf overrides eol" docs/config: clarify "text property" in core.eol test-date: drop unused parameter to getnanos() add_to_index(): convert forgotten HASH_RENORMALIZE check Johannes Schindelin (35): rebase: introduce --reschedule-failed-exec rebase: add a config option to default to --reschedule-failed-exec rebase: introduce a shortcut for --reschedule-failed-exec gc/repack: release packs when needed add --edit: truncate the patch file t6042: work around speed optimization on Windows abspath_part_inside_repo: respect core.ignoreCase rebase: move `reset_head()` into a better spot rebase: avoid double reflog entry when switching branches rebase: teach `reset_head()` to optionally skip the worktree built-in rebase: call `git am` directly mingw (t5580): document bug when cloning from backslashed UNC paths mingw: special-case arguments to `sh` tests: explicitly use `test-tool.exe` on Windows travis: fix skipping tagged releases ci: rename the library of common functions ci/lib.sh: encapsulate Travis-specific things ci: inherit --jobs via MAKEFLAGS in run-build-and-tests ci: use a junction on Windows instead of a symlink test-date: add a subcommand to measure times in shell scripts tests: optionally write results as JUnit-style .xml ci/lib.sh: add support for Azure Pipelines Add a build definition for Azure DevOps ci: add a Windows job to the Azure Pipelines definition ci: use git-sdk-64-minimal build artifact mingw: be more generous when wrapping up the setitimer() emulation README: add a build badge (status of the Azure Pipelines build) tests: avoid calling Perl just to determine file sizes tests: include detailed trace logs with --write-junit-xml upon failure mingw: try to work around issues with the test cleanup tests: add t/helper/ to the PATH with --with-dashes t0061: workaround issues with --with-dashes and RUNTIME_PREFIX tests: optionally skip bin-wrappers/ ci: speed up Windows phase ci: parallelize testing on Windows Jonathan Nieder (1): stripspace: allow -s/-c outside git repository Jonathan Tan (9): revision: use commit graph in get_reference() fetch-pack: support protocol version 2 fetch-pack: do not take shallow lock unnecessarily upload-pack: teach deepen-relative in protocol v2 pkt-line: introduce struct packet_writer sideband: reverse its dependency on pkt-line {fetch,upload}-pack: sideband v2 fetch response tests: define GIT_TEST_SIDEBAND_ALL ls-refs: filter refs using namespace-stripped name Josh Steadmon (4): filter-options: expand scaled numbers commit-graph, fuzz: add fuzzer for commit-graph commit-graph: fix buffer read-overflow Makefile: correct example fuzz build Junio C Hamano (11): t0027: squelch checkout path run outside test_expect_* block t0061: do not fail test if '.' is part of $PATH submodule update: run at most one fetch job unless otherwise set Prepare for 2.21 cycle to start soonish First batch after 2.20.1 ref-filter: give uintmax_t to format with %PRIuMAX Second batch after 2.20 Third batch after 2.20 Fourth batch after 2.20 Fifth batch for 2.21 Git 2.21-rc0 Kim Gybels (1): diff: ensure correct lifetime of external_diff_cmd Kyle Meyer (2): rebase docs: drop stray word in merge command description init docs: correct a punctuation typo Laura Abbott (1): git-quiltimport: add --keep-non-patch option Linus Torvalds (1): Add 'human' date format Luke Diamand (2): git-p4: add failing test for shelved CL update involving move/copy git-p4: handle update of moved/copied files when updating a shelve Martin Ågren (5): git-column.txt: fix section header Documentation: do not nest open blocks git-status.txt: render tables correctly under Asciidoctor t7510: invoke git as part of &&-chain doc-diff: don't `cd_to_toplevel` Masaya Suzuki (7): Use packet_reader instead of packet_read_line pack-protocol.txt: accept error packets in any context http: support file handles for HTTP_KEEP_ERROR http: enable keep_error for HTTP requests remote-curl: define struct for CURLOPT_WRITEFUNCTION remote-curl: unset CURLOPT_FAILONERROR test: test GIT_CURL_VERBOSE=1 shows an error Matthew DeVore (4): list-objects.c: don't segfault for missing cmdline objects revision.c: put promisor option in specialized struct list-objects-filter: teach tree:# how to handle >0 tree:: skip some trees even when collecting omits Matthieu Moy (1): git-multimail: update to release 1.5.0 Max Kirillov (1): http-backend: enable cleaning up forked upload/receive-pack on exit Nguyễn Thái Ngọc Duy (62): git.c: mark more strings for translation alias.c: mark split_cmdline_strerror() strings for translation archive.c: mark more strings for translation attr.c: mark more string for translation read-cache.c: turn die("internal error") to BUG() read-cache.c: mark more strings for translation read-cache.c: add missing colon separators reflog: mark strings for translation remote.c: turn some error() or die() to BUG() remote.c: mark messages for translation repack: mark more strings for translation parse-options: replace opterror() with optname() parse-options.c: turn some die() to BUG() parse-options.c: mark more strings for translation fsck: reduce word legos to help i18n fsck: mark strings for translation wt-status.c: remove implicit dependency on the_index wt-status.c: remove implicit dependency the_repository list-objects-filter.c: remove implicit dependency on the_index list-objects.c: reduce the_repository references notes-merge.c: remove implicit dependency on the_index notes-merge.c: remove implicit dependency the_repository transport.c: remove implicit dependency on the_index sequencer.c: remove implicit dependency on the_index sequencer.c: remove implicit dependency on the_repository blame.c: remove implicit dependency the_repository bisect.c: remove the_repository reference branch.c: remove the_repository reference bundle.c: remove the_repository references cache-tree.c: remove the_repository references delta-islands.c: remove the_repository references diff-lib.c: remove the_repository references line-log.c: remove the_repository reference notes-cache.c: remove the_repository references pack-check.c: remove the_repository references pack-*.c: remove the_repository references rerere.c: remove the_repository references rebase-interactive.c: remove the_repository references checkout: disambiguate dwim tracking branches and local files checkout: print something when checking out paths tree.c: make read_tree*() take 'struct repository *' tree-walk.c: make tree_entry_interesting() take an index pathspec.h: clean up "extern" in function declarations dir.c: move, rename and export match_attrs() tree-walk: support :(attr) matching Indent code with TABs style: the opening '{' of a function is in a separate line worktree: allow to (re)move worktrees with uninitialized submodules grep: use grep_opt->repo instead of explict repo argument notes-utils.c: remove the_repository references repository.c: replace hold_locked_index() with repo_hold_locked_index() checkout: avoid the_index when possible read-cache.c: kill read_index() read-cache.c: replace update_index_if_able with repo_& sha1-name.c: remove implicit dependency on the_index merge-recursive.c: remove implicit dependency on the_index merge-recursive.c: remove implicit dependency on the_repository read-cache.c: remove the_* from index_has_changes() cache.h: flip NO_THE_INDEX_COMPATIBILITY_MACROS switch fetch: prefer suffix substitution in compact fetch.output help: align the longest command in the command listing git-commit.txt: better description what it does Olga Telezhnaya (6): ref-filter: add objectsize:disk option ref-filter: add check for negative file size ref-filter: add tests for objectsize:disk ref-filter: add deltabase option ref-filter: add tests for deltabase ref-filter: add docs for new options Orgad Shaneh (2): t5403: simplify by using a single repository rebase: run post-checkout hook on checkout Patrick Hogg (2): pack-objects: move read mutex to packing_data struct pack-objects: merge read_lock and lock in packing_data struct Peter Osterlund (1): git-p4: fix problem when p4 login is not necessary Phillip Wood (11): diff: document --no-color-moved Use "whitespace" consistently diff: allow --no-color-moved-ws diff --color-moved-ws: demonstrate false positives diff --color-moved-ws: fix false positives diff --color-moved=zebra: be stricter with color alternation diff --color-moved-ws: optimize allow-indentation-change diff --color-moved-ws: modify allow-indentation-change diff --color-moved-ws: handle blank lines implicit interactive rebase: don't run sequence editor rebase -x: sanity check command Pranit Bauva (7): bisect--helper: `bisect_reset` shell function in C bisect--helper: `bisect_write` shell function in C wrapper: move is_empty_file() and rename it as is_empty_or_missing_file() bisect--helper: `check_and_set_terms` shell function in C bisect--helper: `bisect_next_check` shell function in C bisect--helper: `get_terms` & `bisect_terms` shell function in C bisect--helper: `bisect_start` shell function partially in C Ramsay Jones (2): config.mak.uname: remove obsolete SPARSE_FLAGS setting Makefile: improve SPARSE_FLAGS customisation Randall S. Becker (4): transport-helper: use xread instead of read config.mak.uname: support for modern HPE NonStop config. git-compat-util.h: add FLOSS headers for HPE NonStop compat/regex/regcomp.c: define intptr_t and uintptr_t on NonStop René Scharfe (5): sha1-file: close fd of empty file in map_sha1_file_1() object-store: factor out odb_loose_cache() object-store: factor out odb_clear_loose_cache() object-store: use one oid_array per subdirectory for loose cache object-store: retire odb_load_loose_cache() SZEDER Gábor (22): clone: use a more appropriate variable name for the default refspec clone: respect additional configured fetch refspecs during initial fetch Documentation/clone: document ignored configuration variables test-lib: check Bash version for '-x' without using shell arrays test-lib: translate SIGTERM and SIGHUP to an exit test-lib: extract Bash version check for '-x' tracing test-lib: parse options in a for loop to keep $@ intact test-lib: parse command line options earlier test-lib: consolidate naming of test-results paths test-lib: set $TRASH_DIRECTORY earlier test-lib-functions: introduce the 'test_set_port' helper function test-lib: add the '--stress' option to run a test repeatedly under load compat/obstack: fix -Wcast-function-type warnings .gitignore: ignore external debug symbols from GCC on macOS travis-ci: don't be '--quiet' when running the tests travis-ci: switch to Xcode 10.1 macOS image travis-ci: build with the right compiler commit-graph: rename "large edges" to "extra edges" commit-graph: don't call write_graph_chunk_extra_edges() unnecessarily strbuf.cocci: suggest strbuf_addbuf() to add one strbuf to an other object_as_type: initialize commit-graph-related fields of 'struct commit' travis-ci: make the OSX build jobs' 'brew update' more quiet Sebastian Staudt (2): describe: setup working tree for --dirty t6120: test for describe with a bare repository Sergey Organov (4): t3510: stop using '-m 1' to force failure mid-sequence of cherry-picks cherry-pick: do not error on non-merge commits when '-m 1' is specified t3502: validate '-m 1' argument is now accepted for non-merge commits t3506: validate '-m 1 -ff' is now accepted for non-merge commits Shahzad Lone (1): various: tighten constness of some local variables Slavica Djukic (1): stash: tolerate missing user identity Stefan Beller (39): sha1_file: allow read_object to read objects in arbitrary repositories packfile: allow has_packed_and_bad to handle arbitrary repositories diff: align move detection error handling with other options object-store: allow read_object_file_extended to read from any repo object-store: prepare read_object_file to deal with any repo object-store: prepare has_{sha1, object}_file to handle any repo object: parse_object to honor its repository argument commit: allow parse_commit* to handle any repo commit-reach.c: allow paint_down_to_common to handle any repo commit-reach.c: allow merge_bases_many to handle any repo commit-reach.c: allow remove_redundant to handle any repo commit-reach.c: allow get_merge_bases_many_0 to handle any repo commit-reach: prepare get_merge_bases to handle any repo commit-reach: prepare in_merge_bases[_many] to handle any repo commit: prepare get_commit_buffer to handle any repo commit: prepare repo_unuse_commit_buffer to handle any repo commit: prepare logmsg_reencode to handle arbitrary repositories pretty: prepare format_commit_message to handle arbitrary repositories sideband: color lines with keyword only sha1-array: provide oid_array_filter submodule.c: fix indentation submodule.c: sort changed_submodule_names before searching it submodule.c: tighten scope of changed_submodule_names struct submodule: store OIDs in changed_submodule_names repository: repo_submodule_init to take a submodule struct submodule: migrate get_next_submodule to use repository structs submodule.c: fetch in submodules git directory instead of in worktree fetch: ensure submodule objects fetched submodule update: add regression test with old style setups submodule: unset core.worktree if no working tree is present submodule--helper: fix BUG message in ensure_core_worktree submodule deinit: unset core.worktree submodule: use submodule repos for object lookup submodule: don't add submodule as odb for push commit-graph: convert remaining functions to handle any repo commit: prepare free_commit_buffer and release_commit_memory for any repo path.h: make REPO_GIT_PATH_FUNC repository agnostic t/helper/test-repository: celebrate independence from the_repository git-submodule: abort if core.worktree could not be set correctly Stephen P. Smith (4): Replace the proposed 'auto' mode with 'auto:' Add 'human' date format documentation Add `human` format to test-tool Add `human` date format tests. Sven van Haastregt (1): git-submodule.sh: shorten submodule SHA-1s using rev-parse Thomas Braun (1): log -G: ignore binary files Thomas Gummerer (3): t5570: drop racy test Revert "t/lib-git-daemon: record daemon log" config.mak.dev: add -Wall, primarily for -Wformat, to help autoconf users Torsten Bögershausen (3): git clone C:\cygwin\home\USER\repo' is working (again) test-lint: only use only sed [-n] [-e command] [-f command_file] Support working-tree-encoding "UTF-16LE-BOM" brian m. carlson (19): sha1-file: rename algorithm to "sha1" sha1-file: provide functions to look up hash algorithms hex: introduce functions to print arbitrary hashes cache: make hashcmp and hasheq work with larger hashes t: add basic tests for our SHA-1 implementation t: make the sha1 test-tool helper generic sha1-file: add a constant for hash block size t/helper: add a test helper to compute hash speed commit-graph: convert to using the_hash_algo Add a base implementation of SHA-256 support sha256: add an SHA-256 implementation using libgcrypt hash: add an SHA-256 implementation using OpenSSL tree-walk: copy object ID before use match-trees: compute buffer offset correctly when splicing match-trees: use hashcpy to splice trees tree-walk: store object_id in a separate member cache: make oidcpy always copy GIT_MAX_RAWSZ bytes fetch-pack: clear alternate shallow when complete fetch-pack: clear alternate shallow in one more place Ævar Arnfjörð Bjarmason (17): remote.c: add braces in anticipation of a follow-up change i18n: remote.c: mark error(...) messages for translation push: improve the error shown on unqualified push push: move unqualified refname error into a function push: add an advice on unqualified push push: test that doesn't DWYM if is unqualified push doc: document the DWYM behavior pushing to unqualified commit-graph: split up close_reachable() progress output commit-graph write: use pack order when finding commits commit-graph write: add "Writing out" progress output commit-graph write: more descriptive "writing out" output commit-graph write: show progress for object search commit-graph write: add more descriptive progress output commit-graph write: remove empty line for readability commit-graph write: add itermediate progress commit-graph write: emit a percentage for all progress diff-tree doc: correct & remove wrong documentation Version v2.20.5; changes since v2.20.4: --------------------------------------- Johannes Schindelin (5): run-command: invalidate lstat cache after a command finished Git 2.17.6 Git 2.18.5 Git 2.19.6 Git 2.20.5 Matheus Tavares (2): checkout: fix bug that makes checkout follow symlinks in leading path unpack_trees(): start with a fresh lstat cache Version v2.20.4; changes since v2.20.3: --------------------------------------- Jeff King (6): t0300: make "quit" helper more realistic t0300: use more realistic inputs credential: parse URL without host as empty host, not unset credential: refuse to operate when missing host or protocol credential: die() when parsing invalid urls Git 2.17.5 Jonathan Nieder (4): fsck: convert gitmodules url to URL passed to curl credential: treat URL without scheme as invalid credential: treat URL with empty scheme as invalid fsck: reject URL with empty host in .gitmodules Version v2.20.3; changes since v2.20.2: --------------------------------------- Jeff King (4): credential: avoid writing values with newlines t/lib-credential: use test_i18ncmp to check stderr credential: detect unrepresentable values when parsing urls fsck: detect gitmodules URLs with embedded newlines Junio C Hamano (1): Git 2.17.4 Version v2.20.2; changes since v2.20.1: --------------------------------------- Garima Singh (2): test-path-utils: offer to run a protectNTFS/protectHFS benchmark tests: add a helper to stress test argument quoting Jeff King (7): t9300: drop some useless uses of cat t9300: create marks files for double-import-marks test fast-import: tighten parsing of boolean command line options fast-import: stop creating leading directories for import-marks fast-import: delay creating leading directories for export-marks fast-import: disallow "feature export-marks" by default fast-import: disallow "feature import-marks" by default Johannes Schindelin (27): clone --recurse-submodules: prevent name squatting on Windows mingw: disallow backslash characters in tree objects' file names path.c: document the purpose of `is_ntfs_dotgit()` is_ntfs_dotgit(): only verify the leading segment path: safeguard `.git` against NTFS Alternate Streams Accesses is_ntfs_dotgit(): speed it up mingw: fix quoting of arguments path: also guard `.gitmodules` against NTFS Alternate Data Streams protect_ntfs: turn on NTFS protection by default Disallow dubiously-nested submodule git directories quote-stress-test: accept arguments to test via the command-line t6130/t9350: prepare for stringent Win32 path validation quote-stress-test: allow skipping some trials unpack-trees: let merged_entry() pass through do_add_entry()'s errors mingw: refuse to access paths with illegal characters quote-stress-test: offer to test quoting arguments for MSYS2 sh mingw: refuse to access paths with trailing spaces or periods mingw: handle `subst`-ed "DOS drives" Git 2.14.6 Git 2.15.4 test-drop-caches: use `has_dos_drive_prefix()` Git 2.16.6 Git 2.17.3 Git 2.18.2 Git 2.19.3 t7415: adjust test for dubiously-nested submodule gitdirs for v2.20.x Git 2.20.2 Jonathan Nieder (3): submodule: reject submodule.update = !command in .gitmodules fsck: reject submodule.update = !command in .gitmodules submodule: defend against submodule.update = !command in .gitmodules Version v2.20.1; changes since v2.20.0: --------------------------------------- Derrick Stolee (1): .gitattributes: ensure t/oid-info/* has eol=lf Johannes Schindelin (4): help.h: fix coding style help -a: handle aliases with long names gracefully t4256: mark support files as LF-only t9902: 'send-email' test case requires PERL Junio C Hamano (2): run-command: report exec failure Git 2.20.1 Nguyễn Thái Ngọc Duy (1): parse-options: fix SunCC compiler warning Version v2.20.0; changes since v2.20.0-rc2: ------------------------------------------- Alexander Shopov (3): l10n: bg.po: Updated Bulgarian translation (4185t) l10n: bg.po: Updated Bulgarian translation (4185t) l10n: bg.po: Updated Bulgarian translation (4187t) Christopher Díaz Riveros (2): l10n: es.po v2.20.0 round 1 l10n: es.po v2.20.0 round 3 Jean-Noël Avila (2): l10n: fr.po v2.20 rnd 1 l10n: fr.po v2.20.0 round 3 Jiang Xin (5): l10n: zh_CN: review for git v2.19.0 l10n l10n: git.pot: v2.20.0 round 1 (254 new, 27 removed) l10n: git.pot: v2.20.0 round 2 (2 new, 2 removed) l10n: git.pot: v2.20.0 round 3 (5 new, 3 removed) l10n: zh_CN: for git v2.20.0 l10n round 1 to 3 Johannes Sixt (1): rebase docs: fix incorrect format of the section Behavioral Differences Jordi Mas (2): l10n: Update Catalan translation l10n: Update Catalan translation Junio C Hamano (1): Git 2.20 Martin Ågren (4): range-diff: always pass at least minimal diff options RelNotes 2.20: move some items between sections RelNotes 2.20: clarify sentence RelNotes 2.20: drop spurious double quote Minh Nguyen (1): l10n: vi.po: fix typo in pack-objects Peter Krefting (2): l10n: sv.po: Update Swedish translation (4185t0f0u) l10n: sv.po: Update Swedish translation (4187t0f0u) Ralf Thielow (3): l10n: update German translation l10n: update German translation l10n: de.po: fix two messages Trần Ngọc Quân (2): l10n: vi(4185t): Updated Vietnamese translation for v2.20.0 l10n: vi(4187t): Updated Vietnamese translation for v2.20.0 rd3 Version v2.20.0-rc2; changes since v2.20.0-rc1: ----------------------------------------------- Greg Hurrell (1): doc: update diff-format.txt for removed ellipses in --raw Jean-Noël Avila (1): i18n: fix small typos Jeff King (1): t5562: fix perl path Johannes Schindelin (2): rebase: fix GIT_REFLOG_ACTION regression rebase --stat: fix when rebasing to an unrelated history Junio C Hamano (2): format-patch: do not let its diff-options affect --range-diff Git 2.20-rc2 Martin Ågren (2): git-reset.txt: render tables correctly under Asciidoctor git-reset.txt: render literal examples as monospace Nguyễn Thái Ngọc Duy (2): files-backend.c: fix build error on Solaris transport-helper.c: do not translate a string twice Ralf Thielow (1): builtin/rebase.c: remove superfluous space in messages SZEDER Gábor (3): tests: send "bug in the test script" errors to the script's stderr test-lib-functions: make 'test_cmp_rev' more informative on failure t/lib-git-daemon: fix signal checking Sven Strickroth (1): msvc: directly use MS version (_stricmp) of strcasecmp Torsten Bögershausen (1): t5601-99: Enable colliding file detection for MINGW Ævar Arnfjörð Bjarmason (2): push: change needlessly ambiguous example in error advice: don't pointlessly suggest --convert-graft-file Version v2.20.0-rc1; changes since v2.20.0-rc0: ----------------------------------------------- Derrick Stolee (1): pack-objects: ignore ambiguous object warnings Jeff King (3): pack-objects: fix tree_depth and layer invariants pack-objects: zero-initialize tree_depth/layer arrays pack-objects: fix off-by-one in delta-island tree-depth computation Johannes Schindelin (7): tests: fix GIT_TEST_INSTALLED's PATH to include t/helper/ tests: respect GIT_TEST_INSTALLED when initializing repositories t/lib-gettext: test installed git-sh-i18n if GIT_TEST_INSTALLED is set tests: do not require Git to be built when testing an installed Git tests: explicitly use `git.exe` on Windows legacy-rebase: backport -C and --whitespace=