AgeCommit message (Collapse)Author
39 hoursMerge branch 'ds/default-pack-use-sparse-to-true'HEADmasterJunio C Hamano
The 'pack.useSparse' configuration variable now defaults to 'true', enabling an optimization that has been experimental since Git 2.21. * ds/default-pack-use-sparse-to-true: pack-objects: flip the use of GIT_TEST_PACK_SPARSE config: set pack.useSparse=true by default
4 daysThe second batch post 2.26 cycleJunio C Hamano
Signed-off-by: Junio C Hamano <>
4 daysMerge branch 'ah/force-pull-rebase-configuration'Junio C Hamano
"git pull" learned to warn when no pull.rebase configuration exists, and neither --[no-]rebase nor --ff-only is given (which would result a merge). * ah/force-pull-rebase-configuration: pull: warn if the user didn't say whether to rebase or to merge
4 daysMerge branch 'tg/retire-scripted-stash'Junio C Hamano
"git stash" has kept an escape hatch to use the scripted version for a few releases, which got stale. It has been removed. * tg/retire-scripted-stash: stash: remove the stash.useBuiltin setting stash: get git_stash_config at the top level
4 daysMerge branch 'jc/describe-misnamed-annotated-tag'Junio C Hamano
When "git describe C" finds an annotated tag with tagname A to be the best name to explain commit C, and the tag is stored in a "wrong" place in the refs/tags hierarchy, e.g. refs/tags/B, the command gave a warning message but used A (not B) to describe C. If C is exactly at the tag, the describe output would be "A", but "git rev-parse A^0" would not be equal as "git rev-parse C^0". The behavior of the command has been changed to use the "long" form i.e. A-0-gOBJECTNAME, which is correctly interpreted by rev-parse. * jc/describe-misnamed-annotated-tag: describe: force long format for a name based on a mislocated tag
4 daysMerge branch 'at/rebase-fork-point-regression-fix'Junio C Hamano
The "--fork-point" mode of "git rebase" regressed when the command was rewritten in C back in 2.20 era, which has been corrected. * at/rebase-fork-point-regression-fix: rebase: --fork-point regression fix
4 daysMerge branch 'bc/filter-process'Junio C Hamano
Provide more information (e.g. the object of the tree-ish in which the blob being converted appears, in addition to its path, which has already been given) to smudge/clean conversion filters. * bc/filter-process: t0021: test filter metadata for additional cases builtin/reset: compute checkout metadata for reset builtin/rebase: compute checkout metadata for rebases builtin/clone: compute checkout metadata for clones builtin/checkout: compute checkout metadata for checkouts convert: provide additional metadata to filters convert: permit passing additional metadata to filter processes builtin/checkout: pass branch info down to checkout_worktree
4 daysMerge branch 'hi/gpg-prefer-check-signature'Junio C Hamano
The code to interface with GnuPG has been refactored. * hi/gpg-prefer-check-signature: gpg-interface: prefer check_signature() for GPG verification t: increase test coverage of signature verification output
4 daysMerge branch 'bc/sha-256-part-1-of-4'Junio C Hamano
SHA-256 transition continues. * bc/sha-256-part-1-of-4: (22 commits) fast-import: add options for rewriting submodules fast-import: add a generic function to iterate over marks fast-import: make find_marks work on any mark set fast-import: add helper function for inserting mark object entries fast-import: permit reading multiple marks files commit: use expected signature header for SHA-256 worktree: allow repository version 1 init-db: move writing repo version into a function builtin/init-db: add environment variable for new repo hash builtin/init-db: allow specifying hash algorithm on command line setup: allow check_repository_format to read repository format t/helper: make repository tests hash independent t/helper: initialize repository if necessary t/helper/test-dump-split-index: initialize git repository t6300: make hash algorithm independent t6300: abstract away SHA-1-specific constants t: use hash-specific lookup tables to define test constants repository: require a build flag to use SHA-256 hex: add functions to parse hex object IDs in any algorithm hex: introduce parsing variants taking hash algorithms ...
4 daysMerge branch 'pb/recurse-submodules-fix'Junio C Hamano
Fix "git checkout --recurse-submodules" of a nested submodule hierarchy. * pb/recurse-submodules-fix: t/lib-submodule-update: add test removing nested submodules unpack-trees: check for missing submodule directory in merged_entry unpack-trees: remove outdated description for verify_clean_submodule t/lib-submodule-update: move a test to the right section t/lib-submodule-update: remove outdated test description t7112: remove mention of KNOWN_FAILURE_SUBMODULE_RECURSIVE_NESTED
5 daysThe first batch post 2.26 cycleJunio C Hamano
Signed-off-by: Junio C Hamano <>
5 daysMerge branch 'ss/submodule-foreach-cb'Junio C Hamano
Code clean-up. * ss/submodule-foreach-cb: submodule--helper.c: Rename 'cb_foreach' to 'foreach_cb'
5 daysMerge branch 'jc/config-tar'Junio C Hamano
Improve the structure of the documentation source a bit. * jc/config-tar: separate tar.* config to its own source file
5 daysMerge branch 'en/oidset-uninclude-hashmap'Junio C Hamano
Code clean-up. * en/oidset-uninclude-hashmap: oidset: remove unnecessary include
5 daysMerge branch 'ds/check-connected-reprepare-packed-git'Junio C Hamano
Corner case "git fetch" fix. * ds/check-connected-reprepare-packed-git: connected.c: reprepare packs for corner cases
5 daysMerge branch 'rs/doc-passthru-fetch-options'Junio C Hamano
Doc update. * rs/doc-passthru-fetch-options: pull: document more passthru options
5 daysMerge branch 'pw/advise-rebase-skip'Junio C Hamano
The mechanism to prevent "git commit" from making an empty commit or amending during an interrupted cherry-pick was broken during the rewrite of "git rebase" in C, which has been corrected. * pw/advise-rebase-skip: commit: give correct advice for empty commit during a rebase commit: encapsulate determine_whence() for sequencer commit: use enum value for multiple cherry-picks sequencer: write CHERRY_PICK_HEAD for reword and edit cherry-pick: check commit error messages cherry-pick: add test for `--skip` advice in `git commit` t3404: use test_cmp_rev
5 daysMerge branch 'yz/p4-py3'Junio C Hamano
Update "git p4" to work with Python 3. * yz/p4-py3: ci: use python3 in linux-gcc and osx-gcc and python2 elsewhere git-p4: use python3's input() everywhere git-p4: simplify regex pattern generation for parsing diff-tree git-p4: use dict.items() iteration for python3 compatibility git-p4: use functools.reduce instead of reduce git-p4: fix freezing while waiting for fast-import progress git-p4: use marshal format version 2 when sending to p4 git-p4: open .gitp4-usercache.txt in text mode git-p4: convert path to unicode before processing them git-p4: encode/decode communication with git for python3 git-p4: encode/decode communication with p4 for python3 git-p4: remove string type aliasing git-p4: change the expansion test from basestring to list git-p4: make python2.7 the oldest supported version
5 daysMerge branch 'am/real-path-fix'Junio C Hamano
The real_path() convenience function can easily be misused; with a bit of code refactoring in the callers' side, its use has been eliminated. * am/real-path-fix: get_superproject_working_tree(): return strbuf real_path_if_valid(): remove unsafe API real_path: remove unsafe API set_git_dir: fix crash when used with real_path()
5 daysMerge branch 'sg/commit-slab-clarify-peek'Junio C Hamano
In-code comment update. * sg/commit-slab-clarify-peek: commit-slab: clarify slabname##_peek()'s return value
5 daysMerge branch 'jc/maintain-doc'Junio C Hamano
Doc update. * jc/maintain-doc: update how-to-maintain-git
5 daysMerge branch 'js/https-proxy-config'Junio C Hamano
A handful of options to configure SSL when talking to proxies have been added. * js/https-proxy-config: http: add environment variable support for HTTPS proxies http: add client cert support for HTTPS proxies
5 daysMerge branch 'hw/advise-ng'Junio C Hamano
Revamping of the advise API to allow more systematic enumeration of advice knobs in the future. * hw/advise-ng: tag: use new advice API to check visibility advice: revamp advise API advice: change "setupStreamFailure" to "setUpstreamFailure" advice: extract vadvise() from advise()
8 daysGit 2.26v2.26.0maintJunio C Hamano
Signed-off-by: Junio C Hamano <>
9 daysMerge branch 'en/rebase-backend'Junio C Hamano
Test fix. * en/rebase-backend: t3419: prevent failure when run with EXPENSIVE
10 daysMerge tag 'l10n-2.26.0-rnd2.1' of git:// C Hamano
l10n-2.26.0-rnd2.1 * tag 'l10n-2.26.0-rnd2.1' of (28 commits) l10n: tr.po: change file mode to 644 l10n: de.po: Update German translation for Git 2.26.0 l10n: de.po: add missing space l10n: tr: Fix a couple of ambiguities l10n: Update Catalan translation l10n: sv.po: Update Swedish translation (4839t0f0u) l10n: zh_CN: Revise v2.26.0 translation l10n: zh_CN: for git v2.26.0 l10n round 1 and 2 l10n: vi(4839t): Updated Vietnamese translation for v2.26.0 l10n: vi: fix translation + grammar l10n: zh_TW.po: v2.26.0 round 2 (0 untranslated) l10n: zh_TW.po: v2.26.0 round 1 (11 untranslated) l10n: it.po: update the Italian translation for Git 2.26.0 round 2 l10n: es: 2.26.0 round#2 l10n: bg.po: Updated Bulgarian translation (4839t) l10n: tr: v2.26.0 round 2 l10n: fr : v2.26.0 rnd 2 l10n: git.pot: v2.26.0 round 2 (7 new, 2 removed) l10n: tr: Add glossary for Turkish translations l10n: sv.po: Update Swedish translation (4835t0f0u) ...
10 daysl10n: tr.po: change file mode to 644Jiang Xin
Signed-off-by: Jiang Xin <>
10 dayst3419: prevent failure when run with EXPENSIVEbrian m. carlson
This test runs a function which itself runs several assertions. The last of these assertions cleans up the .git/rebase-apply directory, since when run with EXPENSIVE set, the function is invoked a second time to run the same tests with a larger data set. However, as of 2ac0d6273f ("rebase: change the default backend from "am" to "merge"", 2020-02-15), the default backend of rebase has changed, and cleaning up the rebase-apply directory has no effect: it no longer exists, since we're using rebase-merge instead. Since we don't really care which rebase backend is in use, let's just use the command "git rebase --quit", which will do the right thing regardless. Signed-off-by: brian m. carlson <> Signed-off-by: Junio C Hamano <>
10 dayspack-objects: flip the use of GIT_TEST_PACK_SPARSEDerrick Stolee
The environment variable GIT_TEST_PACK_SPARSE was previously used to allow testing the --sparse option for "git pack-objects" in the test suite. This allowed interesting cases of "git push" to also test this algorithm. Since pack.useSparse is now true by default, we do not need this variable to _enable_ the --sparse option, but instead to _disable_ it. This flips how we work with the variable a bit. When checking for the variable, default to a value of -1 for "unset". If unset, then take the default from the repo settings, which is currently 1. Then, the --[no-]sparse command-line option will override either of these settings. Signed-off-by: Derrick Stolee <> Signed-off-by: Junio C Hamano <>
10 daysconfig: set pack.useSparse=true by defaultDerrick Stolee
The pack.useSparse config option was introduced by 3d036eb0 (pack-objects: create pack.useSparse setting, 2019-01-19) and was first available in v2.21.0. When enabled, the pack-objects process during 'git push' will use a sparse tree walk when deciding which trees and blobs to send to the remote. The algorithm was introduced by d5d2e93 (revision: implement sparse algorithm, 2019-01-16) and has been in production use by VFS for Git since around that time. The features.experimental config option also enabled pack.useSparse, so hopefully that has also increased exposure. It is worth noting that pack.useSparse has a possibility of sending more objects across a push, but requires a special arrangement of exact _copies_ across directories. There is a test in that demonstrates this possibility. This test uses the --sparse option to "git pack-objects" but we can make it implied by the config value to demonstrate that the default value has changed. While updating that test, I noticed that the documentation did not include an option for --no-sparse, which is now more important than it was before. Since the downside is unlikely but the upside is significant, set the default value of pack.useSparse to true. Remove it from the set of options implied by features.experimental. Signed-off-by: Derrick Stolee <> Signed-off-by: Junio C Hamano <>
11 daysl10n: de.po: Update German translation for Git 2.26.0Matthias Rüster
Signed-off-by: Matthias Rüster <> Reviewed-by: Ralf Thielow <> Reviewed-by: Phillip Szelat <>
11 daysl10n: de.po: add missing spaceRalf Thielow
Signed-off-by: Ralf Thielow <>
11 daysMerge C Hamano
* 'master' of git-gui: create a new namespace for chord script evaluation git-gui: reduce Tcl version requirement from 8.6 to 8.5 git-gui--askpass: coerce answers to UTF-8 on Windows git-gui: fix error popup when doing blame -> "Show History Context" git-gui: add missing close bracket git-gui: update German translation git-gui: extend translation glossary template with more terms git-gui: update pot template and German translation to current source code
11 daysl10n: tr: Fix a couple of ambiguitiesEmir Sarı
Signed-off-by: Emir Sarı <>
12 daysMerge branch 'py/remove-tcloo'Pratyush Yadav
Reduce the Tcl version requirement to 8.5 to allow git-gui to run on MacOS distributions like High Sierra. While here, fix a potential variable name collision. * py/remove-tcloo: git-gui: create a new namespace for chord script evaluation git-gui: reduce Tcl version requirement from 8.6 to 8.5
12 daysRelNotes/2.26.0: fix various typosElijah Newren
Signed-off-by: Elijah Newren <> Signed-off-by: Junio C Hamano <>
12 dayssubmodule--helper.c: Rename 'cb_foreach' to 'foreach_cb'Shourya Shukla
In 'submodule--helper.c', the structures and macros for callbacks belonging to any subcommand are named in the format: 'subcommand_cb' and 'SUBCOMMAND_CB_INIT' respectively. This was an exception for the subcommand 'foreach' of the command 'submodule'. Rename the aforementioned structures and macros: 'struct cb_foreach' to 'struct foreach_cb' and 'CB_FOREACH_INIT' to 'FOREACH_CB_INIT'. Signed-off-by: Shourya Shukla <> Signed-off-by: Junio C Hamano <>
13 daysseparate tar.* config to its own source fileJunio C Hamano
Even though there is only one configuration variable in the namespace, it is not quite right to have tar.umask described among the variables for tag.* namespace. Signed-off-by: Junio C Hamano <>
13 daysl10n: Update Catalan translationJordi Mas
Signed-off-by: Jordi Mas <>
13 daysSync with Git 2.25.2Junio C Hamano
Signed-off-by: Junio C Hamano <>
13 daysGit 2.25.2v2.25.2Junio C Hamano
Signed-off-by: Junio C Hamano <>
13 daysunicode: update the width tables to Unicode 13.0Beat Bolli
Now that Unicode 13.0 has been announced[0], update the character width tables to the new version. [0] Signed-off-by: Beat Bolli <> Signed-off-by: Junio C Hamano <>
13 daysMerge branch 'js/ci-windows-update' into maintJunio C Hamano
Updates to the CI settings. * js/ci-windows-update: Azure Pipeline: switch to the latest agent pools ci: prevent `perforce` from being quarantined t/lib-httpd: avoid using macOS' sed
13 daysMerge branch 'jk/run-command-formatfix' into maintJunio C Hamano
Code style cleanup. * jk/run-command-formatfix: run-command.h: fix mis-indented struct member
13 daysMerge branch 'jk/doc-credential-helper' into maintJunio C Hamano
Docfix. * jk/doc-credential-helper: doc: move credential helper info into gitcredentials(7)
13 daysMerge branch 'js/mingw-open-in-gdb' into maintJunio C Hamano
Dev support. * js/mingw-open-in-gdb: mingw: add a helper function to attach GDB to the current process
13 daysMerge branch 'js/test-unc-fetch' into maintJunio C Hamano
Test updates. * js/test-unc-fetch: t5580: test cloning without file://, test fetching via UNC paths
13 daysMerge branch 'js/test-write-junit-xml-fix' into maintJunio C Hamano
Testfix. * js/test-write-junit-xml-fix: tests: fix --write-junit-xml with subshells
13 daysMerge branch 'en/simplify-check-updates-in-unpack-trees' into maintJunio C Hamano
Code simplification. * en/simplify-check-updates-in-unpack-trees: unpack-trees: exit check_updates() early if updates are not wanted
13 daysMerge branch 'jc/doc-single-h-is-for-help' into maintJunio C Hamano
Both "git ls-remote -h" and "git grep -h" give short usage help, like any other Git subcommand, but it is not unreasonable to expect that the former would behave the same as "git ls-remote --head" (there is no other sensible behaviour for the latter). The documentation has been updated in an attempt to clarify this. * jc/doc-single-h-is-for-help: Documentation: clarify that `-h` alone stands for `help`