Posted
over 2 years
ago
by
Johannes Schindelin
Dear Git users,
I hereby announce that Git for Windows 2.39.0-rc0 is available from:
https://github.com/git-for-windows/git/releases/tag/v2.39.0-rc0.windows.1
Changes since Git for Windows v2.38.1 (October 18th 2022)
* Comes with OpenSSL
... [More]
v1.1.1q.
New Features
* Comes with Git v2.39.0-rc0.
* Comes with OpenSSL v1.1.1s.
* Comes with cURL v7.86.0.
* The Portable Git edition (which comes as a self-extracting 7-Zip
archive) now uses the latest 7-Zip version to self-extract.
* Comes with OpenSSH v9.1p1.
* It is now possible to generate and use SSH keys protected by
security keys (AKA FIDO devices) via Windows Hello, e.g. via
ssh-keygen.exe -t ecdsa-sk.
* Comes with Bash v5.2 patchlevel 009 .
* Portable Git no longer configures color.diff, color.status and
color.branch individually, but configures color.ui instead, which
makes it easier to override the default.
* Comes with GNU TLS v3.7.8.
* Comes with Git Credential Manager Core v2.0.877.
Bug Fixes
* The Git executables (e.g. git.exe itself) used to have incomplete
version information recorded in their resources, which has been
fixed.
* A regression introduced in Git for Windows v2.38.0 that prevented
git.exe from running in Windows Nano Server containers was fixed.
Git-2.39.0-rc0-64-bit.exe | 74ba237e120c4528102001551f2b2c08a9643a6cad8d7a397b134e4dde5498ef
Git-2.39.0-rc0-32-bit.exe | 0c14e81e0746a151ca8937c3736160720b4cfecf9bc826f681de7f275978ab51
PortableGit-2.39.0-rc0-64-bit.7z.exe | 02e73e5f584df658a709f373b0e0b8dc7ff72a754052bd76cd0af67fa23a9701
PortableGit-2.39.0-rc0-32-bit.7z.exe | 2c6acc55ea0df14be2b1695445ec6ac9061eb6e5a0f50ee8d9a1054899e522c2
MinGit-2.39.0-rc0-64-bit.zip | 638acc223365fc761655926b2cd86d9f4e2b6618a7ddee183a31c26dd3a63714
MinGit-2.39.0-rc0-32-bit.zip | bc3c16ba093821ffb254a6c2eb44a9f84de163543f657e03ca1b797a826ab80c
MinGit-2.39.0-rc0-busybox-64-bit.zip | f898d769d717c85f380f65687b10734aa5cfb28b636805b7bf434b5c24dbc593
MinGit-2.39.0-rc0-busybox-32-bit.zip | bd79b74dac8b69a8eba4c5324b5190dd85c71b74ffb8e2ca20358d94e244ec00
Git-2.39.0-rc0-64-bit.tar.bz2 | 48f2855ec77fb608f3831b1aaab725ca599e42a8fb27c6aa6c872c4d3f2f9efd
Git-2.39.0-rc0-32-bit.tar.bz2 | 036afe5dda8cb98e70bbcbce92570dfe0bc6d6f82f2fb7e0129faf17b62eeb4f
Ciao,
Johannes
[Less]
|
Posted
over 2 years
ago
by
Junio C Hamano
An early preview release Git v2.39.0-rc0 is now available for
testing at the usual places. It is comprised of 423 non-merge
commits since v2.38.0, contributed by 67 people, 28 of which are
new faces [*].
The tarballs are found at:
... [More]
https://www.kernel.org/pub/software/scm/git/testing/
The following public repositories all have a copy of the
'v2.39.0-rc0' tag and the 'master' branch that the tag points at:
url = https://git.kernel.org/pub/scm/git/git
url = https://kernel.googlesource.com/pub/scm/git/git
url = git://repo.or.cz/alt-git.git
url = https://github.com/gitster/git
New contributors whose contributions weren't in v2.38.0 are as follows.
Welcome to the Git development community!
Alexander Meshcheryakov, Anh Le, Arthur Chan, Daniel
Sonbolian, Debra Obondo, Diomidis Spinellis, Erik Cervin
Edin, Hank Leininger, herr.kaste, John A. Leuenhagen, Julia
Ramer, Kevin Backhouse, Kousik Sanagavarapu, Lukáš Doktor,
Martin Englund, M Hickford, Michael V. Scovetta, Noah Betzen,
Nsengiyumva Wilberforce, orygaw, Ronan Pigott, Rubén Justo,
Sotir Danailov, srz_zumix, Stefano Rivera, Tim Jaacks, Vincent
Bernat, and Vlad-Stefan Harbuz.
Returning contributors who helped this release are as follows.
Thanks for your continued support.
정재우, Ævar Arnfjörð Bjarmason, Alejandro R. Sedeño,
Alex Henrie, Derrick Stolee, Đoàn Trần Công Danh, Elijah
Newren, Emily Shaffer, Eric DeCosta, Eric Sunshine, Eric Wong,
Glen Choo, Han-Wen Nienhuys, Jan Pokorný, Jeff Hostetler, Jeff
King, Jerry Zhang, Johannes Altmanninger, Johannes Schindelin,
John Cai, Jonathan Tan, Julien Moutinho, Junio C Hamano, Martin
Ågren, Martin von Zweigbergk, Matthew John Cheetham, Michael
J Gruber, Michael McClimon, Patrick Steinhardt, Philip Oakley,
Philippe Blain, Phillip Wood, René Scharfe, Sergey Organov,
Shaoxuan Yuan, SZEDER Gábor, Taylor Blau, Torsten Bögershausen,
and Victoria Dye.
[*] We are counting not just the authorship contribution but issue
reporting, mentoring, helping and reviewing that are recorded in
the commit trailers.
----------------------------------------------------------------
Git v2.39 Release Notes (draft)
===============================
UI, Workflows & Features
------------------------
* "git grep" learned to expand the sparse-index more lazily and on
demand in a sparse checkout.
* By default, use of fsmonitor on a repository on networked
filesystem is disabled. Add knobs to make it workable on macOS.
* After checking out a "branch" that is a symbolic-ref that points at
another branch, "git symbolic-ref HEAD" reports the underlying
branch, not the symbolic-ref the user gave checkout as argument.
The command learned the "--no-recurse" option to stop after
dereferencing a symbolic-ref only once.
* "git branch --edit-description @{-1}" is now a way to edit branch
description of the branch you were on before switching to the
current branch.
* "git merge-tree --stdin" is a new way to request a series of merges
and report the merge results.
* "git shortlog" learned to group by the "format" string.
* A new "--include-whitespace" option is added to "git patch-id", and
existing bugs in the internal patch-id logic that did not match
what "git patch-id" produces have been corrected.
* Enable gc.cruftpacks by default for those who opt into
feature.experimental setting.
* "git repack" learns to send cruft objects out of the way into
packfiles outside the repository.
* 'scalar reconfigure -a' is taught to automatically remove
scalar.repo entires which no longer exist.
* Redact headers from cURL's h2h3 module in GIT_CURL_VERBOSE and
others.
* 'git maintenance register' is taught to write configuration to an
arbitrary path, and 'git for-each-repo' is taught to expand tilde
characters in paths.
* When creating new notes, the template used to get a stray empty
newline, which has been removed.
* "git receive-pack" used to use all the local refs as the boundary for
checking connectivity of the data "git push" sent, but now it uses
only the refs that it advertised to the pusher. In a repository with
the .hideRefs configuration, this reduces the resources needed to
perform the check.
* With '--recurse-submodules=on-demand', all submodules are
recursively pushed.
Performance, Internal Implementation, Development Support etc.
--------------------------------------------------------------
* With a bit of header twiddling, use the native regexp library on
macOS instead of the compat/ one.
* Prepare for GNU [ef]grep that throw warning of their uses.
* Sources related to fuzz testing have been moved down to their own
directory.
* Most credential helpers ignored unknown entries in a credential
description, but a few died upon seeing them. The latter were
taught to ignore them, too
* "scalar unregister" in a repository that is already been
unregistered reported an error.
* Remove error detection from a function that fetches from promisor
remotes, and make it die when such a fetch fails to bring all the
requested objects, to give an early failure to various operations.
* Update CodingGuidelines to clarify what features to use and avoid
in C99.
* Avoid false-positive from LSan whose assumption may be broken with
higher optimization levels.
* Enable address and undefined sanitizer tasks at GitHub Actions CI.
* More UNUSED annotation to help using -Wunused option with the
compiler.
(merge 4b992f0a24 jk/unused-anno-more later to maint).
* Rewrite a deep recursion in the skipping negotiator to use a loop
with on-heap prio queue to avoid stack wastage.
* Add documentation for message IDs in fsck error messages.
* Define the logical elements of a "bundle list", data structure to
store them in-core, format to transfer them, and code to parse
them.
* The role the security mailing list plays in an embargoed release
has been documented.
* Two new facilities, "timer" and "counter", are introduced to the
trace2 API.
* Code simplification by using strvec_pushf() instead of building an
argument in a separate strbuf.
* Make sure generated dependency file is stably sorted to help
developers debugging their build issues.
* The glossary entries for "commit-graph file" and "reachability
bitmap" have been added.
* Various tests exercising the transfer.credentialsInUrl
configuration are taught to avoid making requests which require
resolving localhost to reduce CI-flakiness.
* A redundant diagnostic message is dropped from test_path_is_missing().
* Simplify the run-command API.
* Update the actions/github-script dependency in CI to avoid a
deprecation warning.
* Progress on being able to initialize a rev_info struct with a
macro.
* Add trace2 counters to the region to clear skip worktree bits in a
sparse checkout.
* Modernize test script to avoid "test -f" and friends.
* Avoid calling 'cache_tree_update()' when doing so would be
redundant.
* Update the credential-cache documentation to provide a more
realistic example.
* Makefile comments updates and reordering to clarify knobs used to
choose SHA implementations.
* A design document for sparse-checkout's future directions has been
added.
* Teach chainlint.pl to annotate the original test definition instead
of the token stream.
* "make coccicheck" is time consuming. It has been made to run more
incrementally.
Fixes since v2.38
-----------------
* The codepath that reads from the index v4 had unaligned memory
accesses, which has been corrected.
* Fix messages incorrectly marked for translation.
* "git fsck" failed to release contents of tree objects already used
from the memory, which has been fixed.
* "git clone" did not like to see the "--bare" and the "--origin"
options used together without a good reason.
* "git remote rename" failed to rename a remote without fetch
refspec, which has been corrected.
* Documentation on various Boolean GIT_* environment variables have
been clarified.
* "git rebase -i" can mistakenly attempt to apply a fixup to a commit
itself, which has been corrected.
* "git multi-pack-index repack/expire" used to repack unreachable
cruft into a new pack, which have been corrected.
* In read-only repositories, "git merge-tree" tried to come up with a
merge result tree object, which it failed (which is not wrong) and
led to a segfault (which is bad), which has been corrected.
* Force C locale while running tests around httpd to make sure we can
find expected error messages in the log.
* Fix a logic in "mailinfo -b" that miscomputed the length of a
substring, which lead to an out-of-bounds access.
* The codepath to sign learned to report errors when it fails to read
from "ssh-keygen".
* Code clean-up that results in plugging a leak.
* "GIT_EDITOR=: git branch --edit-description" resulted in failure,
which has been corrected.
* The code to clean temporary object directories (used for
quarantine) tried to remove them inside its signal handler, which
was a no-no.
* Update comment in the Makefile about the RUNTIME_PREFIX config knob.
* Clarify that "the sentence after : prefix does not begin with
a capital letter" rule applies only to the commit title.
* "git branch --edit-description" on an unborh branch misleadingly
said that no such branch exists, which has been corrected.
* Work around older clang that warns against C99 zero initialization
syntax for struct.
* Giving "--invert-grep" and "--all-match" without "--grep" to the
"git log" command resulted in an attempt to access grep pattern
expression structure that has not been allocated, which has been
corrected.
(merge db84376f98 ab/grep-simplify-extended-expression later to maint).
* "git diff rev^!" did not show combined diff to go to the rev from
its parents.
(merge a79c6b6081 rs/diff-caret-bang-with-parents later to maint).
* Allow configuration files in "protected" scopes to include other
configuration files.
(merge ecec57b3c9 gc/bare-repo-discovery later to maint).
* Give a bit more diversity to macOS CI by using sha1dc in one of the
jobs (the other one tests Apple Common Crypto).
(merge 1ad5c3df35 jc/ci-osx-with-sha1dc later to maint).
* A bugfix with tracing support in midx codepath
(merge e9c3839944 tb/midx-bitmap-selection-fix later to maint).
* When geometric repacking feature is in use together with the
--pack-kept-objects option, we lost packs marked with .keep files.
(merge 197443e80a tb/save-keep-pack-during-geometric-repack later to maint).
* Move a global variable added as a hack during regression fixes to
its proper place in the API.
(merge 0b0ab95f17 ab/run-hook-api-cleanup later to maint).
* Update to build procedure with VS using CMake/CTest.
(merge c858750b41 js/cmake-updates later to maint).
* The short-help text shown by "git cmd -h" and the synopsis text
shown at the beginning of "git help cmd" have been made more
consistent.
* When creating a multi-pack bitmap, remove per-pack bitmap files
unconditionally as they will never be consulted.
(merge 55d902cd61 tb/remove-unused-pack-bitmap later to maint).
* Fix a longstanding syntax error in Git.pm error codepath.
* "git diff --stat" etc. were invented back when everything was ASCII
and strlen() was a way to measure the display width of a string;
adjust them to compute the display width assuming UTF-8 pathnames.
(merge ce8529b2bb tb/diffstat-with-utf8-strwidth later to maint).
* "git branch --edit-description" can exit with status -1 which is
not a good practice; it learned to use 1 as everybody else instead.
* "git apply" limits its input to a bit less than 1 GiB.
* Merging a branch with directory renames into a branch that changes
the directory to a symlink was mishandled by the ort merge
strategy, which has been corrected.
* A bugfix to "git subtree" in its split and merge features.
* Fix some bugs in the reflog messages when rebasing and changes the
reflog messages of "rebase --apply" to match "rebase --merge" with
the aim of making the reflog easier to parse.
* "git rebase --keep-base" used to discard the commits that are
already cherry-picked to the upstream, even when "keep-base" meant
that the base, on top of which the history is being rebuilt, does
not yet include these cherry-picked commits. The --keep-base
option now implies --reapply-cherry-picks and --no-fork-point
options.
* The way "git repack" creared temporary files when it received a
signal was prone to deadlocking, which has been corrected.
* Various tests exercising the transfer.credentialsInUrl
configuration are taught to avoid making requests which require
resolving localhost to reduce CI-flakiness.
* The adjust_shared_perm() helper function learned to refrain from
setting the "g+s" bit on directories when it is not necessary.
* "git archive" mistakenly complained twice about a missing
executable, which has been corrected.
* Fix a bug where `git branch -d` did not work on an orphaned HEAD.
* `git rebase --update-refs` would delete references when all
`update-ref` commands in the sequencer were removed, which has been
corrected.
* Fix a regression in the bisect-helper which mistakenly treats
arguments to the command given to 'git bisect run' as arguments to
the helper.
* Correct an error where `git rebase` would mistakenly use a branch or
tag named "refs/rewritten/xyz" when missing a rebase label.
* Other code cleanup, docfix, build fix, etc.
(merge 413bc6d20a ds/cmd-main-reorder later to maint).
(merge 8d2863e4ed nw/t1002-cleanup later to maint).
----------------------------------------------------------------
Changes since v2.38.0 are as follows:
Alejandro R. Sedeño (1):
git-compat-util.h: GCC deprecated message arg only in GCC 4.5+
Alex Henrie (2):
fsmonitor--daemon: don't translate literal commands
push: improve grammar of branch.autoSetupMerge advice
Anh Le (2):
index: add trace2 region for clear skip worktree
index: raise a bug if the index is materialised more than once
Arthur Chan (1):
fuzz: reorganise the path for existing oss-fuzz fuzzers
Daniel Sonbolian (1):
git.c: improve code readability in cmd_main()
Debra Obondo (1):
t7001-mv.sh: modernizing test script using functions
Derrick Stolee (15):
maintenance: add 'unregister --force'
scalar: make 'unregister' idempotent
gc: replace config subprocesses with API calls
string-list: document iterator behavior on NULL input
bundle-uri: fix technical doc issues
bundle-uri: use plain string in find_temp_filename()
bundle-uri: create bundle_list struct and helpers
bundle-uri: create base key-value pair parsing
bundle-uri: parse bundle list in config format
bundle-uri: limit recursion depth for bundle lists
bundle: properly clear all revision flags
bundle-uri: fetch a list of bundles
bundle: add flags to verify_bundle()
bundle-uri: quiet failed unbundlings
bundle-uri: suppress stderr from remote-https
Diomidis Spinellis (1):
grep: fix multibyte regex handling under macOS
Elijah Newren (4):
merge-ort: fix bug with dir rename vs change dir to symlink
merge-tree: update documentation for differences in -z output
merge-tree: support multiple batched merges with --stdin
sparse-checkout.txt: new document with sparse-checkout directions
Emily Shaffer (2):
gc: add tests for --cruft and friends
config: let feature.experimental imply gc.cruftPacks=true
Eric DeCosta (6):
fsmonitor: refactor filesystem checks to common interface
fsmonitor: relocate socket file if .git directory is remote
fsmonitor: avoid socket location check if using hook
fsmonitor: deal with synthetic firmlinks on macOS
fsmonitor: check for compatability before communicating with fsmonitor
fsmonitor: add documentation for allowRemote and socketDir options
Eric Sunshine (8):
check-non-portable-shell: detect obsolescent egrep/fgrep
chainlint: add explanatory comments
chainlint: tighten accuracy when consuming input stream
chainlint: latch start/end position of each token
chainlint: annotate original test definition rather than token stream
chainlint: sidestep impoverished macOS "terminfo"
chainlint: latch line numbers at which each token starts and ends
chainlint: prefix annotated test definition with line numbers
Eric Wong (1):
delta-islands: free island-related data after use
Glen Choo (2):
config: respect includes in protected config
http: redact curl h2h3 headers in info
Han-Wen Nienhuys (1):
refs: unify parse_worktree_ref() and ref_type()
Jeff Hostetler (9):
config.mak.dev: disable suggest braces error on old clang versions
trace2: use size_t alloc,nr_open_regions in tr2tls_thread_ctx
tr2tls: clarify TLS terminology
api-trace2.txt: elminate section describing the public trace2 API
trace2: rename the thread_name argument to trace2_thread_start
trace2: improve thread-name documentation in the thread-context
trace2: convert ctx.thread_name from strbuf to pointer
trace2: add stopwatch timers
trace2: add global counter mechanism
Jeff King (41):
fsck: free tree buffers after walking unreachable objects
fsck: turn off save_commit_buffer
parse_object_buffer(): respect save_commit_buffer
clone: allow "--bare" with "-o"
remote: handle rename of remote without fetch refspec
shell: add basic tests
shell: limit size of interactive commands
sequencer: detect author name errors in read_author_script()
test-submodule: inline resolve_relative_url() function
multi-pack-index: avoid writing to global in option callback
commit: avoid writing to global in option callback
attr: drop DEBUG_ATTR code
dir: use fspathncmp() in pl_hashmap_cmp()
fsmonitor: fix leak of warning message
diffstat_consume(): assert non-zero length
submodule--helper: drop unused argc from module_list_compute()
update-index: drop unused argc from do_reupdate()
mark unused parameters in trivial compat functions
object-file: mark unused parameters in hash_unknown functions
string-list: mark unused callback parameters
date: mark unused parameters in handler functions
apply: mark unused parameters in handlers
apply: mark unused parameters in noop error/warning routine
convert: mark unused parameter in null stream filter
diffcore-pickaxe: mark unused parameters in pickaxe functions
ll-merge: mark unused parameters in callbacks
Makefile: force -O0 when compiling with SANITIZE=leak
repack: convert "names" util bitfield to array
repack: populate extension bits incrementally
repack: expand error message for missing pack files
repack: use tempfiles for signal cleanup
repack: drop remove_temporary_files()
Git.pm: trust rev-parse to find bare repositories
t7700: annotate cruft-pack failure with ok=sigpipe
shortlog: accept `--date`-related options
Makefile: force -O0 when compiling with SANITIZE=leak
t5516: move plaintext-password tests from t5601 and t5516
ref-filter: fix parsing of signatures without blank lines
ref-filter: fix parsing of signatures with CRLF and no body
branch: gracefully handle '-d' on orphan HEAD
t: run t5551 tests with both HTTP and HTTP/2
Jerry Zhang (6):
patch-id: fix stable patch id for binary / header-only
patch-id: use stable patch-id for rebases
builtin: patch-id: fix patch-id with binary diffs
patch-id: fix patch-id for mode changes
builtin: patch-id: add --verbatim as a command mode
builtin: patch-id: remove unused diff-tree prefix
Johannes Altmanninger (1):
sequencer: avoid dropping fixup commit that targets self via commit-ish
Johannes Schindelin (11):
merge-ort: fix segmentation fault in read-only repositories
merge-ort: return early when failing to write a blob
cmake: make it easier to diagnose regressions in CTest runs
cmake: copy the merge tools for testing
add -p: avoid ambiguous signed/unsigned comparison
cmake: avoid editing t/test-lib.sh
cmake: increase time-out for a long-running test
t5516/t5601: be less strict about the number of credential warnings
scalar reconfigure -a: remove stale `scalar.repo` entries
ci: use a newer `github-script` version
tests(scalar): tighten the stale `scalar.repo` test some
John Cai (3):
tmp-objdir: skip clean up when handling a signal
fsck: remove the unused BAD_TAG_OBJECT
fsck: document msg-id
Jonathan Tan (4):
promisor-remote: remove a return value
promisor-remote: die upon failing fetch
negotiator/skipping: avoid stack overflow
Doc: document push.recurseSubmodules=only
Julia Ramer (1):
embargoed releases: also describe the git-security list and the process
Junio C Hamano (26):
environ: document GIT_SSL_NO_VERIFY
environ: explain Boolean environment variables
environ: GIT_FLUSH should be made a usual Boolean
environ: simplify description of GIT_INDEX_FILE
environ: GIT_INDEX_VERSION affects not just a new repository
branch: do not fail a no-op --edit-desc
SubmittingPatches: use usual capitalization in the log message body
Start 2.39 cycle
symbolic-ref: teach "--[no-]recurse" option
The (real) first batch for 2.39
The second batch
The third batch
The fourth batch
ci: add address and undefined sanitizer tasks
ci: use DC_SHA1=YesPlease on osx-clang job for CI
The fifth batch
diff: leave NEEDWORK notes in show_stats() function
fsck: remove the unused MISSING_TREE_OBJECT
Documentation: add lint-fsck-msgids
Downmerge a handful of topics for 2.38.2
The sixth batch
Downmerge a bit more for 2.38.2
The seventh batch
The eighth batch
adjust_shared_perm(): leave g+s alone when the group does not matter
Git 2.39-rc0
Kevin Backhouse (1):
alias.c: reject too-long cmdline strings in split_cmdline()
Kousik Sanagavarapu (1):
repository-version.txt: partialClone casing change
M Hickford (4):
Documentation/gitcredentials.txt: mention password alternatives
Documentation: increase example cache timeout to 1 hour
docs: clarify that credential discards unrecognised attributes
Docs: describe how a credential-generating helper works
Martin Ågren (1):
test-lib-functions: drop redundant diagnostic print
Matthew John Cheetham (3):
wincred: ignore unknown lines (do not die)
netrc: ignore unknown lines (do not die)
osxkeychain: clarify that we ignore unknown lines
Michael J Gruber (1):
notes: avoid empty line in template
Michael McClimon (1):
Git.pm: add semicolon after catch statement
Noah Betzen (1):
mergetool.txt: typofix 'overwriten' -> 'overwritten'
Nsengiyumva Wilberforce (1):
t1002: modernize outdated conditional
Patrick Steinhardt (7):
refs: fix memory leak when parsing hideRefs config
refs: get rid of global list of hidden refs
revision: move together exclusion-related functions
revision: introduce struct to handle exclusions
revision: add new parameter to exclude hidden refs
rev-parse: add `--exclude-hidden=` option
receive-pack: only use visible refs for connectivity check
Philip Oakley (4):
doc: use "commit-graph" hyphenation consistently
doc: use 'object database' not ODB or abbreviation
glossary: add "commit graph" description
glossary: add reachability bitmap description
Philippe Blain (9):
test-lib-functions: mark 'test_commit' variables as 'local'
subtree: use 'git rev-parse --verify [--quiet]' for better error messages
subtree: add 'die_incompatible_opt' function to reduce duplication
subtree: prefix die messages with 'fatal'
subtree: define a variable before its first use in 'find_latest_squash'
subtree: use named variables instead of "$@" in cmd_pull
subtree: process 'git-subtree-split' trailer in separate function
subtree: fix squash merging after annotated tag was squashed merged
subtree: fix split after annotated tag was squashed merged
Phillip Wood (23):
mailinfo -b: fix an out of bounds access
ssh signing: return an error when signature cannot be read
t3435: remove redundant test case
t3416: tighten two tests
t3416: set $EDITOR in subshell
rebase: be stricter when reading state files containing oids
rebase: store orig_head as a commit
rebase: rename merge_base to branch_base
rebase: factor out branch_base calculation
rebase --keep-base: imply --reapply-cherry-picks
rebase --keep-base: imply --no-fork-point
rebase --apply: remove duplicated code
t3406: rework rebase reflog tests
rebase --merge: fix reflog when continuing
rebase --merge: fix reflog message after skipping
rebase --apply: respect GIT_REFLOG_ACTION
rebase --apply: make reflog messages match rebase --merge
rebase --abort: improve reflog message
rebase: cleanup action handling
sequencer: stop exporting GIT_REFLOG_ACTION
rebase: stop exporting GIT_REFLOG_ACTION
sequencer: unify label lookup
sequencer: tighten label lookups
René Scharfe (20):
revision: use strtol_i() for exclude_parent
revisions.txt: unspecify order of resolved parts of ^!
diff: support ^! for merges
gc: simplify maintenance_task_pack_refs()
t/lib-httpd: pass LANG and LC_ALL to Apache
bisect--helper: plug strvec leak
archive: deduplicate verbose printing
submodule: use strvec_pushf() for --super-prefix
run-command: fix return value comment
am: simplify building "show" argument list
bisect: simplify building "checkout" argument list
bisect--helper: factor out do_bisect_run()
sequencer: simplify building argument list in do_exec()
use child_process member "args" instead of string array variable
use child_process members "args" and "env" directly
replace and remove run_command_v_opt_cd_env()
replace and remove run_command_v_opt_tr2()
replace and remove run_command_v_opt_cd_env_tr2()
replace and remove run_command_v_opt()
archive-tar: report filter start error only once
Ronan Pigott (2):
for-each-repo: interpolate repo path arguments
maintenance: add option to register in a specific config
Rubén Justo (5):
ref-filter.c: fix a leak in get_head_description
branch: description for non-existent branch errors
branch: support for shortcuts like @{-1}, completed
branch: error copying or renaming a detached HEAD
branch: error code with --edit-description
SZEDER Gábor (1):
Documentation/build-docdep.perl: generate sorted output
Sergey Organov (3):
diff-merges: cleanup func_by_opt()
diff-merges: cleanup set_diff_merges()
diff-merges: clarify log.diffMerges documentation
Shaoxuan Yuan (1):
builtin/grep.c: integrate with sparse index
Sotir Danailov (1):
docs: git-send-email: difference between ssl and tls smtp-encryption
Taylor Blau (64):
Documentation/git-multi-pack-index.txt: fix typo
Documentation/git-multi-pack-index.txt: clarify expire behavior
midx.c: prevent `expire` from removing the cruft pack
midx.c: avoid cruft packs with `repack --batch-size=0`
midx.c: replace `xcalloc()` with `CALLOC_ARRAY()`
midx.c: remove unnecessary loop condition
midx.c: avoid cruft packs with non-zero `repack --batch-size`
builtin/clone.c: disallow `--local` clones with symlinks
t/lib-submodule-update.sh: allow local submodules
t/t1NNN: allow local submodules
t/2NNNN: allow local submodules
t/t3NNN: allow local submodules
t/t4NNN: allow local submodules
t/t5NNN: allow local submodules
t/t6NNN: allow local submodules
t/t7NNN: allow local submodules
t/t9NNN: allow local submodules
transport: make `protocol.file.allow` be "user" by default
t1092: prepare for changing protocol.file.allow
t2080: prepare for changing protocol.file.allow
t1092: prepare for changing protocol.file.allow
t2080: prepare for changing protocol.file.allow
t3207: prepare for changing protocol.file.allow
t5516: prepare for changing protocol.file.allow
t5537: prepare for changing protocol.file.allow
t7814: prepare for changing protocol.file.allow
t3206: prepare for changing protocol.file.allow
t5537: prepare for changing protocol.file.allow
Git 2.30.6
Git 2.31.5
Git 2.32.4
Git 2.33.5
Git 2.34.5
Git 2.35.5
Git 2.36.3
t7527: prepare for changing protocol.file.allow
Git 2.37.4
Git 2.38.1
midx.c: fix whitespace typo
midx.c: consider annotated tags during bitmap selection
midx.c: instrument MIDX and bitmap generation with trace2 regions
pack-bitmap-write.c: instrument number of reused bitmaps
builtin/repack.c: remove redundant pack-based bitmaps
repack: don't remove .keep packs with `--pack-kept-objects`
builtin/repack.c: pass "out" to `prepare_pack_objects`
builtin/repack.c: pass "cruft_expiration" to `write_cruft_pack`
builtin/repack.c: write cruft packs to arbitrary locations
builtin/repack.c: implement `--expire-to` for storing pruned objects
shortlog: make trailer insertion a noop when appropriate
shortlog: extract `--group` fragment for translation
shortlog: support arbitrary commit format `--group`s
shortlog: extract `shortlog_finish_setup()`
shortlog: implement `--group=author` in terms of `--group=`
shortlog: implement `--group=committer` in terms of `--group=`
apply: reject patches larger than ~1 GiB
Documentation/howto/maintain-git.txt: fix Meta/redo-jch.sh invocation
The ninth batch
Documentation: build redo-jch.sh from master..jch
Documentation: build redo-seen.sh from jch..seen
The tenth batch
The eleventh batch
The twelfth batch
builtin/gc.c: fix use-after-free in maintenance_unregister()
The thirteenth batch
Torsten Bögershausen (1):
diff.c: use utf8_strwidth() to count display width
Victoria Dye (7):
read-cache: avoid misaligned reads in index v4
rebase --update-refs: avoid unintended ref deletion
cache-tree: add perf test comparing update and prime
unpack-trees: add 'skip_cache_tree_update' option
reset: use 'skip_cache_tree_update' option
read-tree: use 'skip_cache_tree_update' option
rebase: use 'skip_cache_tree_update' option
Vincent Bernat (1):
ls-files: fix --ignored and --killed flags in synopsis
Vlad-Stefan Harbuz (1):
Documentation: fix typo
srz_zumix (1):
fsmonitor--daemon: on macOS support symlink
Ævar Arnfjörð Bjarmason (100):
test-lib: have SANITIZE=leak imply TEST_NO_MALLOC_CHECK
CodingGuidelines: update for C99
CodingGuidelines: mention dynamic C99 initializer elements
CodingGuidelines: allow declaring variables in for loops
CodingGuidelines: mention C99 features we can't use
grep.c: remove "extended" in favor of "pattern_expression", fix segfault
CodingGuidelines: recommend against unportable C99 struct syntax
bundle-uri: create "key=value" line parsing
bundle-uri: unit test "key=value" parsing
run-command test helper: use "else if" pattern
run-command API: have "run_processes_parallel{,_tr2}()" return void
run-command tests: use "return", not "exit"
run-command API: make "n" parameter a "size_t"
run-command API: don't fall back on online_cpus()
run-command.c: use designated init for pp_init(), add "const"
run-command API: have run_process_parallel() take an "opts" struct
run-command API: move *_tr2() users to "run_processes_parallel()"
run-command.c: make "struct parallel_processes" const if possible
run-command.c: don't copy *_fn to "struct parallel_processes"
run-command.c: don't copy "ungroup" to "struct parallel_processes"
run-command.c: don't copy "data" to "struct parallel_processes"
run-command.c: use "opts->processes", not "pp->max_processes"
run-command.c: pass "opts" further down, and use "opts->processes"
run-command.c: remove "max_processes", add "const" to signal() handler
tests: assert *.txt SYNOPSIS and -h output
CodingGuidelines: update and clarify command-line conventions
builtin/bundle.c: indent with tabs
bundle: define subcommand -h in terms of command -h
doc SYNOPSIS: don't use ' for subcommands
doc SYNOPSIS: consistently use ' for commands
built-ins: consistently add "\n" between "usage" and options
doc txt & -h consistency: word-wrap
doc txt & -h consistency: fix incorrect alternates syntax
doc txt & -h consistency: add "-z" to cat-file "-h"
doc txt & -h consistency: balance unbalanced "[" and "]"
doc txt & -h consistency: correct padding around "[]()"
stash doc SYNOPSIS & -h: correct padding around "[]()"
doc txt & -h consistency: use "", not "..."
doc SYNOPSIS & -h: use "-" to separate words in labels, not "_"
doc txt & -h consistency: fix mismatching labels
doc txt & -h consistency: add or fix optional "--" syntax
doc txt & -h consistency: make output order consistent
doc txt & -h consistency: add missing options and labels
doc txt & -h consistency: make "rerere" consistent
doc txt & -h consistency: make "read-tree" consistent
doc txt & -h consistency: make "bundle" consistent
doc txt & -h consistency: use "git foo" form, not "git-foo"
doc txt & -h consistency: add missing options
doc txt & -h consistency: make "stash" consistent
doc txt & -h consistency: make "annotate" consistent
doc txt & -h consistency: use "[...]" for "zero or more"
doc txt & -h consistency: make "diff-tree" consistent
doc txt & -h consistency: make "commit" consistent
reflog doc: list real subcommands up-front
worktree: define subcommand -h in terms of command -h
doc txt & -h consistency: make "worktree" consistent
tests: start asserting that *.txt SYNOPSIS matches -h output
tests: assert consistent whitespace in -h output
fsmonitor OSX: compile with DC_SHA1=YesPlease
merge: remove always-the-same "verbose" arguments
hook tests: fix redirection logic error in 96e7225b310
submodule tests: reset "trace.out" between "grep" invocations
run-command tests: test stdout of run_command_parallel()
Makefile + shared.mak: rename and indent $(QUIET_SPATCH_T)
cocci rules: remove unused "F" metavariable from pending rule
Makefile: add ability to TAB-complete cocci *.patch rules
Makefile: have "coccicheck" re-run if flags change
Makefile: split off SPATCH_BATCH_SIZE comment from "cocci" heading
cocci: split off include-less "tests" from SPATCH_FLAGS
cocci: split off "--all-includes" from SPATCH_FLAGS
cocci: make "coccicheck" rule incremental
cocci: optimistically use COMPUTE_HEADER_DEPENDENCIES
Makefile: copy contrib/coccinelle/*.cocci to build/
cocci rules: remove 's from rules that don't need them
cocci: run against a generated ALL.cocci
spatchcache: add a ccache-alike for "spatch"
Makefile: always (re)set DC_SHA1 on fallback
INSTALL: remove discussion of SHA-1 backends
Makefile: correct DC_SHA1 documentation
Makefile: create and use sections for "define" flag listing
Makefile: rephrase the discussion of *_SHA1 knobs
Makefile: document default SHA-256 backend
Makefile: document SHA-1 and SHA-256 default and selection order
Makefile & test-tool: replace "DC_SHA1" variable with a "define"
Makefile: document default SHA-1 backend on OSX
Makefile: discuss SHAttered in *_SHA{1,256} discussion
submodule--helper: move "config" to a test-tool
submodule tests: add tests for top-level flag output
submodule--helper: fix a memory leak in "status"
submodule tests: test for a "foreach" blind-spot
submodule.c: refactor recursive block out of absorb function
submodule API & "absorbgitdirs": remove "----recursive" option
submodule--helper: remove --prefix from "absorbgitdirs"
submodule--helper: drop "update --prefix " for "-C update"
submodule--helper: use OPT_SUBCOMMAND() API
revisions API: extend the nascent REV_INFO_INIT macro
t7610: fix flaky timeout issue, don't clone from example.com
Makefile: don't create a ".build/.build/" for cocci, fix output
maintenance --unregister: fix uninit'd data use & -Wdeclaration-after-statement
t7610: use "file:///dev/null", not "/dev/null", fixes MinGW
Đoàn Trần Công Danh (8):
CodingGuidelines: allow grep -E
t: remove \{m,n\} from BRE grep usage
t: convert egrep usage to "grep -E"
t: convert fgrep usage to "grep -F"
Makefile: clarify runtime relative gitexecdir
bisect--helper: remove unused options
bisect--helper: move all subcommands into their own functions
bisect--helper: parse subcommand with OPT_SUBCOMMAND
[Less]
|
Posted
over 2 years
ago
by
Christian Couder
Hi everyone,
The 92nd edition of Git Rev News is now published:
https://git.github.io/rev_news/2022/10/26/edition-92/
Thanks a lot to Dscho and Bruno Brito who helped this month!
Enjoy,
Christian, Jakub, Markus and Kaartic.
PS: An issue for
... [More]
the next edition is already opened and contributions
are welcome:
https://github.com/git/git.github.io/issues/614
[Less]
|
Posted
almost 3 years
ago
by
Taylor Blau
Hi everybody,
The talk videos from Git Merge 2022[^1] are now available on GitHub's
YouTube page here:
https://www.youtube.com/playlist?list=PL0lo9MOBetEGEAs1D28ExRQONnX-uZ3Wf
Thanks,
Taylor
[^1]: With the exceptions of Emily Shaffer's and Martin von Zweigbergk's
talk, which we are still working on...
|
Posted
almost 3 years
ago
by
Johannes Schindelin
Dear Git users,
I hereby announce that Git for Windows 2.38.1 is available from:
https://gitforwindows.org/
Changes since Git for Windows v2.38.0 (October 3rd 2022)
New Features
* Comes with Git v2.38.1.
Git-2.38.1-64-bit.exe |
... [More]
f3fe05e65cd7e9a9126784d4ad57fdf979d30d5987fe849af4348dbe3e284df6
Git-2.38.1-32-bit.exe | 2b607570ef03a51a3fed89c30dd461d73660cbf7686e41deaaa5ba2e719a9e7e
PortableGit-2.38.1-64-bit.7z.exe | cdcdb268aaed1dd2ac33d1dfdaf105369e3d7bd8d84d641d26d30b34e706b843
PortableGit-2.38.1-32-bit.7z.exe | d434ad45bd9060a99c1d58e9b2b09597c52035a6a3ebeb6a0fdc694092b298b5
MinGit-2.38.1-64-bit.zip | 77b14610d92e717ac025e5409e2e713553435bfad224753baf6858ebd0f7d96d
MinGit-2.38.1-32-bit.zip | cbd7c8cce55f4c1d9d858f7137f46eff44018fa9b0e646200b80ef9d1975288f
MinGit-2.38.1-busybox-64-bit.zip | 8a0c3c3a5c63f182ef52e6736187998aa4751e09e828750dfe4d4854a27172fc
MinGit-2.38.1-busybox-32-bit.zip | 9fbb8530e103c736afadc9c0df3c69a2cd7719e8c9ab1d1785c85f1519778835
Git-2.38.1-64-bit.tar.bz2 | 09246e1bbe9f7e5d2874e25ce0d05d555a059a709883b5afecf3e3aeb9b0ac2b
Git-2.38.1-32-bit.tar.bz2 | 43651cc1d0c723acce2d7e018c0e86a7d57b1aa2395516d521787d2a539fb6d2
Ciao,
Johannes
[Less]
|
Posted
almost 3 years
ago
by
Junio C Hamano
A maintenance release v2.38.1, together with releases for older
maintenance tracks v2.30.6, v2.31.5, v2.32.4, v2.33.5, v2.34.5,
v2.35.5, v2.36.3, and v2.37.4, are now available at the usual
places.
These maintenance releases are to address the
... [More]
security issues
identified as CVE-2022-39253 and CVE-2022-39260.
The tarballs are found at:
https://www.kernel.org/pub/software/scm/git/
The following public repositories all have a copy of the v2.38.1
tag, as well as the tags for older maintenance tracks for v2.30.6,
v2.31.5, v2.32.4, v2.33.5, v2.34.5, v2.35.5, v2.36.3, and v2.37.4.
url = https://git.kernel.org/pub/scm/git/git
url = https://kernel.googlesource.com/pub/scm/git/git
url = git://repo.or.cz/alt-git.git
url = https://github.com/gitster/git
CVE-2022-39253:
When relying on the `--local` clone optimization, Git dereferences
symbolic links in the source repository before creating hardlinks
(or copies) of the dereferenced link in the destination repository.
This can lead to surprising behavior where arbitrary files are
present in a repository's `$GIT_DIR` when cloning from a malicious
repository.
Git will no longer dereference symbolic links via the `--local`
clone mechanism, and will instead refuse to clone repositories that
have symbolic links present in the `$GIT_DIR/objects` directory.
Additionally, the value of `protocol.file.allow` is changed to be
"user" by default.
CVE-2022-39260:
An overly-long command string given to `git shell` can result in
overflow in `split_cmdline()`, leading to arbitrary heap writes and
remote code execution when `git shell` is exposed and the directory
`$HOME/git-shell-commands` exists.
`git shell` is taught to refuse interactive commands that are
longer than 4MiB in size. `split_cmdline()` is hardened to reject
inputs larger than 2GiB.
Credit for finding CVE-2022-39253 goes to Cory Snider of Mirantis. The
fix was authored by Taylor Blau, with help from Johannes Schindelin.
Credit for finding CVE-2022-39260 goes to Kevin Backhouse of GitHub.
The fix was authored by Kevin Backhouse, Jeff King, and Taylor Blau.
[Less]
|
Posted
almost 3 years
ago
by
Mike Hommey
Hi,
Git-cinnabar is a git remote helper to interact with mercurial
repositories. It allows to clone, pull and push from/to mercurial remote
repositories, using git.
Code on https://github.com/glandium/git-cinnabar
This release is available on
... [More]
https://github.com/glandium/git-cinnabar/releases/tag/0.6.0rc1
What's new since 0.5.10?
- Full rewrite of git-cinnabar in Rust.
- Push performance is between twice and 10 times faster than 0.5.x,
depending on scenarios.
- Based on git 2.38.0.
- `git cinnabar fetch` now accepts a `--tags` flag to fetch tags.
- `git cinnabar bundle` now accepts a `-t` flag to give a specific
bundlespec.
- `git cinnabar rollback` now accepts a `--candidates` flag to list the
metadata sha1 that can be used as target of the rollback.
- `git cinnabar rollback` now also accepts a `--force` flag to allow
any commit sha1 as metadata.
- `git cinnabar` now has a `self-update` subcommand that upgrades it
when a new version is available. The subcommand is only available
when building with the `self-update` feature (enabled on prebuilt
versions of git-cinnabar).
Mike
[Less]
|
Posted
almost 3 years
ago
by
Johannes Schindelin
Dear Git users,
I hereby announce that Git for Windows 2.38.0 is available from:
https://gitforwindows.org/
Changes since Git for Windows v2.37.3 (August 30th 2022)
New Features
* Comes with Git v2.38.0.
* Comes with cURL v7.85.0.
*
... [More]
Comes with MSYS2 runtime (Git for Windows flavor) based on Cygwin
3.3.6.
* Comes with BusyBox v1.34.0.19688.985b51cf7.
* The scalar command is now included. Scalar is a helper to
automatically configure your (large) Git repositories to take
advantage of the latest and greatest features. Note: If you work
with repositories hosted on Azure Repos, use Microsoft's fork of
Git for the best user experience.
Git-2.38.0-64-bit.exe | 49fa8d1f151e83b89c84e0cb9e400ee0d543d238960f506e487b5a39889fa2c8
Git-2.38.0-32-bit.exe | d1f4c6f9194743566b7e02ff4e437144ff102c16a6e3d3238500fb18cefa6a07
PortableGit-2.38.0-64-bit.7z.exe | 68f6eb736f20f51689a77584f6fdb12340754c90ae1fca83e2ca1cd11e3d3a73
PortableGit-2.38.0-32-bit.7z.exe | 8dbea9a129bf072c1650e4f914a8b54f4e6faccbd5c6942301835fcc5ef931c6
MinGit-2.38.0-64-bit.zip | 52c9b2a4b10a0a25b1be9466f60a5d5ca5330d5eb8c1661a8fac4bf2677a0e46
MinGit-2.38.0-32-bit.zip | f80ee8a4f2074ff9dc678487155a0571599cda7dfe4bbf54534f4ead23577b6f
MinGit-2.38.0-busybox-64-bit.zip | 36cff40e8a27b81e13b148c8ef38351f1b234edc18ab09d3a46319ddf317200e
MinGit-2.38.0-busybox-32-bit.zip | f310c8fb14942d5526d9a984e5eac8e70e08d8411fd7850d4dd9371f5e9c114d
Git-2.38.0-64-bit.tar.bz2 | e8e8420d4ce68193f678b5655d96fef79b376f411a1779f322e2165250e73061
Git-2.38.0-32-bit.tar.bz2 | de1d561bafa352eecc8b7b6ddf4ed1ee0cf8c957382574b38282760f0766ff40
Ciao,
Johannes
[Less]
|
Posted
almost 3 years
ago
by
Junio C Hamano
The latest feature release Git v2.38.0 is now available at the
usual places. It is comprised of 699 non-merge commits since
v2.37.0, contributed by 92 people, 24 of which are new faces [*].
The tarballs are found at:
... [More]
https://www.kernel.org/pub/software/scm/git/
The following public repositories all have a copy of the 'v2.38.0'
tag and the 'master' branch that the tag points at:
url = https://git.kernel.org/pub/scm/git/git
url = https://kernel.googlesource.com/pub/scm/git/git
url = git://repo.or.cz/alt-git.git
url = https://github.com/gitster/git
New contributors whose contributions weren't in v2.37.0 are as follows.
Welcome to the Git development community!
Andrew Olsen, Anthony Delannoy, Carlos López, Celeste Liu,
Cleber Rosa, David Plumpton, Elijah Conners, Eric DeCosta,
Goss Geppert, Hubert Bossot, Ilya K, Ingy dot Net, Jacob Stopak,
Julien Rouhaud, Kilian Kilger, Lana Deere, Manuel Boni, Matthew
Klein, Miaoqian Lin, Moritz Baumann, Pavel Rappo, Pierre Garnier,
Richard Oliver, and Xavier Morel.
Returning contributors who helped this release are as follows.
Thanks for your continued support.
Abhradeep Chakraborty, Adam Dinwoodie, Ævar Arnfjörð
Bjarmason, Alexander Shopov, Alex Henrie, Arthur Milchior,
Bagas Sanjaya, brian m. carlson, Calvin Wan, Carlo Marcelo
Arenas Belón, Christian Couder, Christoph Reiter, Derrick
Stolee, Dimitriy Ryazantcev, Đoàn Trần Công Danh, Elijah
Newren, Emily Shaffer, Emir SARI, Eric Sunshine, Fangyi
Zhou, Felipe Contreras, Fernando Ramos, Glen Choo, Han Xin,
Hariom Verma, Jacob Keller, Jaydeep Das, Jean-Noël Avila,
Jeff King, Jiang Xin, Joey Hess, Johannes Schindelin, John
Cai, Jonathan Tan, Jordi Mas, Josh Steadmon, Junio C Hamano,
Justin Donnelly, Kyle Zhao, Lessley Dennington, Li Linchao,
Linus Torvalds, Martin Ågren, Matheus Tavares, Matthew John
Cheetham, Michael J Gruber, Øystein Walle, Peter Krefting,
Philip Oakley, Philippe Blain, Phillip Szelat, Phillip Wood,
Ralf Thielow, Randall S. Becker, Renato Botelho, René Scharfe,
Shaoxuan Yuan, Siddharth Asthana, SZEDER Gábor, Tao Klerks,
Taylor Blau, Teng Long, Todd Zullinger, Torsten Bögershausen,
Victoria Dye, Yi-Jyun Pan, ZheNing Hu, and 依云.
[*] We are counting not just the authorship contribution but issue
reporting, mentoring, helping and reviewing that are recorded in
the commit trailers.
----------------------------------------------------------------
Git v2.38 Release Notes
=======================
UI, Workflows & Features
* "git remote show [-n] frotz" now pays attention to negative
pathspec.
* "git push" sometimes performs poorly when reachability bitmaps are
used, even in a repository where other operations are helped by
bitmaps. The push.useBitmaps configuration variable is introduced
to allow disabling use of reachability bitmaps only for "git push".
* "git grep -m" is a way to limit the hits shown per file.
* "git merge-tree" learned a new mode where it takes two commits and
computes a tree that would result in the merge commit, if the
histories leading to these two commits were to be merged.
* "git mv A B" in a sparsely populated working tree can be asked to
move a path between directories that are "in cone" (i.e. expected
to be materialized in the working tree) and "out of cone"
(i.e. expected to be hidden). The handling of such cases has been
improved.
* Earlier, HTTP transport clients learned to tell the server side
what locale they are in by sending Accept-Language HTTP header, but
this was done only for some requests but not others.
* Introduce a safe.barerepository configuration variable that
allows users to forbid discovery of bare repositories.
* Various messages that come from the pack-bitmap codepaths have been
tweaked.
* "git rebase -i" learns to update branches whose tip appear in the
rebased range with "--update-refs" option.
* "git ls-files" learns the "--format" option to tweak its output.
* "git cat-file" learned an option to use the mailmap when showing
commit and tag objects.
* When "git merge" finds that it cannot perform a merge, it should
restore the working tree to the state before the command was
initiated, but in some corner cases it didn't.
* Operating modes like "--batch" of "git cat-file" command learned to
take NUL-terminated input, instead of one-item-per-line.
* "git rm" has become more aware of the sparse-index feature.
* "git rev-list --disk-usage" learned to take an optional value
"human" to show the reported value in human-readable format, like
"3.40MiB".
* The "diagnose" feature to create a zip archive for diagnostic
material has been lifted from "scalar" and made into a feature of
"git bugreport".
* The namespaces used by "log --decorate" from "refs/" hierarchy by
default has been tightened.
* "git rev-list --ancestry-path=C A..B" is a natural extension of
"git rev-list A..B"; instead of choosing a subset of A..B to those
that have ancestry relationship with A, it lets a subset with
ancestry relationship with C.
* "scalar" now enables built-in fsmonitor on enlisted repositories,
when able.
* The bash prompt (in contrib/) learned to optionally indicate when
the index is unmerged.
* "git clone" command learned the "--bundle-uri" option to coordinate
with hosting sites the use of pre-prepared bundle files.
* "git range-diff" learned to honor pathspec argument if given.
* "git format-patch --from=" can be told to add an in-body
"From:" line even for commits that are authored by the given
with "--force-in-body-from" option.
* The built-in fsmonitor refuses to work on a network mounted
repositories; a configuration knob for users to override this has
been introduced.
* The "scalar" addition from Microsoft is now part of the core Git
installation.
Performance, Internal Implementation, Development Support etc.
* Collection of what is referenced by objects in promisor packs have
been optimized to inspect these objects in the in-pack order.
* Introduce a helper to see if a branch is already being worked on
(hence should not be newly checked out in a working tree), which
performs much better than the existing find_shared_symref() to
replace many uses of the latter.
* Teach "git archive" to (optionally and then by default) avoid
spawning an external "gzip" process when creating ".tar.gz" (and
".tgz") archives.
* Allow large objects read from a packstream to be streamed into a
loose object file straight, without having to keep it in-core as a
whole.
* Further preparation to turn git-submodule.sh into a builtin
continues.
* Apply Coccinelle rule to turn raw memmove() into MOVE_ARRAY() cpp
macro, which would improve maintainability and readability.
* Teach "make all" to build gitweb as well.
* Tweak tests so that they still work when the "git init" template
did not create .git/info directory.
* Add Coccinelle rules to detect the pattern of initializing and then
finalizing a structure without using it in between at all, which
happens after code restructuring and the compilers fail to
recognize as an unused variable.
* The code to convert between GPG trust level strings and internal
constants we use to represent them have been cleaned up.
* Support for libnettle as SHA256 implementation has been added.
* The way "git multi-pack" uses parse-options API has been improved.
* A Coccinelle rule (in contrib/) to encourage use of COPY_ARRAY
macro has been improved.
* API tweak to make it easier to run fuzz testing on commit-graph parser.
* Omit fsync-related trace2 entries when their values are all zero.
* The codepath to write multi-pack index has been taught to release a
large chunk of memory that holds an array of objects in the packs,
as soon as it is done with the array, to reduce memory consumption.
* Add a level of redirection to array allocation API in xdiff part,
to make it easier to share with the libgit2 project.
* "git fetch" client logs the partial clone filter used in the trace2
output.
* The "bundle URI" design gets documented.
* The common ancestor negotiation exchange during a "git fetch"
session now leaves trace log.
* Test portability improvements.
(merge 4d1d843be7 mt/rot13-in-c later to maint).
* The "subcommand" mode is introduced to parse-options API and update
the command line parser of Git commands with subcommands.
* The pack bitmap file gained a bitmap-lookup table to speed up
locating the necessary bitmap for a given commit.
* The assembly version of SHA-1 implementation for PPC has been
removed.
* The server side that responds to "git fetch" and "git clone"
request has been optimized by allowing it to send objects in its
object store without recomputing and validating the object names.
* Annotate function parameters that are not used (but cannot be
removed for structural reasons), to prepare us to later compile
with -Wunused warning turned on.
* Share the text used to explain configuration variables used by "git
" in "git help " with the text from "git help config".
* "git mv A B" in a sparsely populated working tree can be asked to
move a path from a directory that is "in cone" to another directory
that is "out of cone". Handling of such a case has been improved.
* The chainlint script for our tests has been revamped.
Fixes since v2.37
-----------------
* Rewrite of "git add -i" in C that appeared in Git 2.25 didn't
correctly record a removed file to the index, which was fixed.
* Certain diff options are currently ignored when combined-diff is
shown; mark them as incompatible with the feature.
* Adjust technical/bitmap-format to be formatted by AsciiDoc, and
add some missing information to the documentation.
* Fixes for tests when the source directory has unusual characters in
its path, e.g. whitespaces, double-quotes, etc.
* "git mktree --missing" lazily fetched objects that are missing from
the local object store, which was totally unnecessary for the purpose
of creating the tree object(s) from its input.
* Give _() markings to fatal/warning/usage: labels that are shown in
front of these messages.
* References to commands-to-be-typed-literally in "git rebase"
documentation mark-up have been corrected.
* In a non-bare repository, the behavior of Git when the
core.worktree configuration variable points at a directory that has
a repository as its subdirectory, regressed in Git 2.27 days.
* Recent update to vimdiff layout code has been made more robust
against different end-user vim settings.
* Plug various memory leaks, both in the main code and in test-tool
commands.
* Fixes a long-standing corner case bug around directory renames in
the merge-ort strategy.
* The resolve-undo information in the index was not protected against
GC, which has been corrected.
* A corner case bug where lazily fetching objects from a promisor
remote resulted in infinite recursion has been corrected.
* "git clone" from a repository with some ref whose HEAD is unborn
did not set the HEAD in the resulting repository correctly, which
has been corrected.
* An earlier attempt to plug leaks placed a clean-up label to jump to
at a bogus place, which as been corrected.
* Variable quoting fix in the vimdiff driver of "git mergetool"
* "git shortlog -n" relied on the underlying qsort() to be stable,
which shouldn't have. Fixed.
* A fix for a regression in test framework.
* mkstemp() emulation on Windows has been improved.
* Add missing documentation for "include" and "includeIf" features in
"git config" file format, which incidentally teaches the command
line completion to include them in its offerings.
* Avoid "white/black-list" in documentation and code comments.
* Workaround for a compiler warning against use of die() in
osx-keychain (in contrib/).
* Workaround for a false positive compiler warning.
* "git p4" working on UTF-16 files on Windows did not implement
CRLF-to-LF conversion correctly, which has been corrected.
* "git p4" did not handle non-ASCII client name well, which has been
corrected.
* "rerere-train" script (in contrib/) used to honor commit.gpgSign
while recreating the throw-away merges.
* "git checkout" miscounted the paths it updated, which has been
corrected.
* Fix for a bug that makes write-tree to fail to write out a
non-existent index as a tree, introduced in 2.37.
* There was a bug in the codepath to upgrade generation information
in commit-graph from v1 to v2 format, which has been corrected.
* Gitweb had legacy URL shortener that is specific to the way
projects hosted on kernel.org used to (but no longer) work, which
has been removed.
* Fix build procedure for Windows that uses CMake so that it can pick
up the shell interpreter from local installation location.
* Conditionally allow building Python interpreter on Windows
* Fix to lstat() emulation on Windows.
* Older gcc with -Wall complains about the universal zero initializer
"struct s = { 0 };" idiom, which makes developers' lives
inconvenient (as -Werror is enabled by DEVELOPER=YesPlease). The
build procedure has been tweaked to help these compilers.
* Plug memory leaks in the failure code path in the "merge-ort" merge
strategy backend.
* "git symbolic-ref symref non..sen..se" is now diagnosed as an error.
* A follow-up fix to a fix for a regression in 2.36 around hooks.
* Avoid repeatedly running getconf to ask libc version in the test
suite, and instead just as it once per script.
* Platform-specific code that determines if a directory is OK to use
as a repository has been taught to report more details, especially
on Windows.
* "vimdiff3" regression fix.
* "git fsck" reads mode from tree objects but canonicalizes the mode
before passing it to the logic to check object sanity, which has
hid broken tree objects from the checking logic. This has been
corrected, but to help existing projects with broken tree objects
that they cannot fix retroactively, the severity of anomalies this
code detects has been demoted to "info" for now.
* Fixes to sparse index compatibility work for "reset" and "checkout"
commands.
* An earlier optimization discarded a tree-object buffer that is
still in use, which has been corrected.
* Fix deadlocks between main Git process and subprocess spawned via
the pipe_command() API, that can kill "git add -p" that was
reimplemented in C recently.
* The sequencer machinery translated messages left in the reflog by
mistake, which has been corrected.
* xcalloc(), imitating calloc(), takes "number of elements of the
array", and "size of a single element", in this order. A call that
does not follow this ordering has been corrected.
* The preload-index codepath made copies of pathspec to give to
multiple threads, which were left leaked.
* Update the version of Ubuntu used for GitHub Actions CI from 18.04
to 22.04.
* The auto-stashed local changes created by "git merge --autostash"
was mixed into a conflicted state left in the working tree, which
has been corrected.
* Multi-pack index got corrupted when preferred pack changed from one
pack to another in a certain way, which has been corrected.
(merge 99e4d084ff tb/midx-with-changing-preferred-pack-fix later to maint).
* The clean-up of temporary files created via mks_tempfile_dt() was
racy and attempted to unlink() the leading directory when signals
are involved, which has been corrected.
(merge babe2e0559 rs/tempfile-cleanup-race-fix later to maint).
* FreeBSD portability fix for "git maintenance" that spawns "crontab"
to schedule tasks.
(merge ee69e7884e bc/gc-crontab-fix later to maint).
* Those who use diff-so-fancy as the diff-filter noticed a regression
or two in the code that parses the diff output in the built-in
version of "add -p", which has been corrected.
(merge 0a101676e5 js/add-p-diff-parsing-fix later to maint).
* Segfault fix-up to an earlier fix to the topic to teach "git reset"
and "git checkout" work better in a sparse checkout.
(merge 037f8ea6d9 vd/sparse-reset-checkout-fixes later to maint).
* "git diff --no-index A B" managed its the pathnames of its two
input files rather haphazardly, sometimes leaking them. The
command line argument processing has been straightened out to clean
it up.
(merge 2b43dd0eb5 rs/diff-no-index-cleanup later to maint).
* "git rev-list --verify-objects" ought to inspect the contents of
objects and notice corrupted ones, but it didn't when the commit
graph is in use, which has been corrected.
(merge b27ccae34b jk/rev-list-verify-objects-fix later to maint).
* More fixes to "add -p"
(merge 64ec8efb83 js/builtin-add-p-portability-fix later to maint).
* The parser in the script interface to parse-options in "git
rev-parse" has been updated to diagnose a bogus input correctly.
(merge f20b9c36d0 ow/rev-parse-parseopt-fix later to maint).
* The code that manages list-object-filter structure, used in partial
clones, leaked the instances, which has been plugged.
(merge 66eede4a37 jk/plug-list-object-filter-leaks later to maint).
* Fix another UI regression in the reimplemented "add -p".
(merge f6f0ee247f rs/add-p-worktree-mode-prompt-fix later to maint).
* "git fetch" over protocol v2 sent an incorrect ref prefix request
to the server and made "git pull" with configured fetch refspec
that does not cover the remote branch to merge with fail, which has
been corrected.
(merge 49ca2fba39 jk/proto-v2-ref-prefix-fix later to maint).
* A result from opendir() was leaking in the commit-graph expiration
codepath, which has been plugged.
(merge 12f1ae5324 ml/commit-graph-expire-dir-leak-fix later to maint).
* Just like we have coding guidelines, we now have guidelines for
reviewers.
(merge e01b851923 vd/doc-reviewing-guidelines later to maint).
* Other code cleanup, docfix, build fix, etc.
(merge 77b9e85c0f vd/fix-perf-tests later to maint).
(merge 0682bc43f5 jk/test-crontab-fixes later to maint).
(merge b46dd1726c cc/doc-trailer-whitespace-rules later to maint).
----------------------------------------------------------------
Changes since v2.37.0 are as follows:
Abhradeep Chakraborty (9):
bitmap-format.txt: feed the file to asciidoc to generate html
bitmap-format.txt: fix some formatting issues
bitmap-format.txt: add information for trailing checksum
Documentation/technical: describe bitmap lookup table extension
bitmap: move `get commit positions` code to `bitmap_writer_finish`
pack-bitmap-write.c: write lookup table extension
pack-bitmap-write: learn pack.writeBitmapLookupTable and add tests
pack-bitmap: prepare to read lookup table extension
bitmap-lookup-table: add performance tests for lookup table
Adam Dinwoodie (1):
t1800: correct test to handle Cygwin
Alex Henrie (5):
gc: don't translate literal commands
builtin/diagnose.c: don't translate the two mode values
pack-bitmap: improve grammar of "xor chain" error message
l10n: fr: don't say that merge is "the default strategy"
l10n: es: update translation
Alexander Shopov (3):
l10n: bg.po: Updated Bulgarian translation (5482t)
l10n: bg.po: Updated Bulgarian translation (5484t)
l10n: bg.po: Updated Bulgarian translation (5484t)
Anthony Delannoy (1):
preload-index: fix memleak
Bagas Sanjaya (3):
l10n: po-id for 2.38 (round 1)
l10n: po-id for 2.38 (round 2)
l10n: po-id for 2.38 (round 3)
Calvin Wan (1):
submodule merge: update conflict error message
Carlo Marcelo Arenas Belón (2):
setup: tighten ownership checks post CVE-2022-24765
cmake: support local installations of git
Carlos López (1):
grep: add --max-count command line option
Celeste Liu (1):
contrib/rerere-train: avoid useless gpg sign in training
Christian Couder (1):
Documentation: clarify whitespace rules for trailers
Cleber Rosa (1):
setup: fix function name in a BUG() message
Derrick Stolee (51):
branch: add branch_checked_out() helper
branch: check for bisects and rebases
fetch: use new branch_checked_out() and add tests
branch: use branch_checked_out() when deleting refs
branch: fix branch_checked_out() leaks
t5510: replace 'origin' with URL more carefully
vscode: improve tab size and wrapping
git-rebase.txt: use back-ticks consistently
pack-bitmap-write: use const for hashes
midx: extract bitmap write setup
midx: reduce memory pressure while writing bitmaps
daemon: clarify directory arguments
git-cvsserver: clarify directory list
git.txt: remove redundant language
t: avoid "whitelist"
transport.c: avoid "whitelist"
t2407: test bisect and rebase as black-boxes
t2407: test branches currently using apply backend
branch: consider refs under 'update-refs'
rebase-interactive: update 'merge' description
sequencer: define array with enum values
sequencer: add update-ref command
rebase: add --update-refs option
rebase: update refs from 'update-ref' commands
sequencer: rewrite update-refs as user edits todo list
rebase: add rebase.updateRefs config option
sequencer: ignore HEAD ref under --update-refs
sequencer: notify user of --update-refs activity
compat/win32: correct for incorrect compiler warning
refs: allow "HEAD" as decoration filter
t4207: modernize test
t4207: test coloring of grafted decorations
refs: add array of ref namespaces
refs: use ref_namespaces for replace refs base
log-tree: use ref_namespaces instead of if/else-if
log: add default decoration filter
log: add --clear-decorations option
log: create log.initialDecorationSet=all
maintenance: stop writing log.excludeDecoration
fetch: use ref_namespaces during prefetch
docs: document bundle URI standard
bundle-uri: add example bundle organization
remote-curl: add 'get' capability
bundle-uri: create basic file-copy logic
clone: add --bundle-uri option
bundle-uri: add support for http(s):// and file://
clone: --bundle-uri cannot be combined with --depth
t6019: modernize tests with helper
clone: warn on failure to repo_init()
ci: update 'static-analysis' to Ubuntu 22.04
pack-bitmap: remove trace2 region from hot path
Dimitriy Ryazantcev (1):
i18n: mark message helpers prefix for translation
Elijah Conners (1):
reftable: use a pointer for pq_entry param
Elijah Newren (43):
merge-tree: rename merge_trees() to trivial_merge_trees()
merge-tree: move logic for existing merge into new function
merge-tree: add option parsing and initial shell for real merge function
merge-tree: implement real merges
merge-ort: split out a separate display_update_messages() function
merge-tree: support including merge messages in output
merge-ort: provide a merge_get_conflicted_files() helper function
merge-ort: remove command-line-centric submodule message from merge-ort
merge-tree: provide a list of which files have conflicts
merge-tree: provide easy access to `ls-files -u` style info
merge-ort: store more specific conflict information
merge-ort: optionally produce machine-readable output
merge-tree: allow `ls-files -u` style info to be NUL terminated
merge-tree: add a --allow-unrelated-histories flag
git-merge-tree.txt: add a section on potentional usage mistakes
t6429: fix use of non-existent function
t6423: add tests of dual directory rename plus add/add conflict
merge-ort: small cleanups of check_for_directory_rename
merge-ort: make a separate function for freeing struct collisions
merge-ort: shuffle the computation and cleanup of potential collisions
merge-ort: fix issue with dual rename and add/add conflict
merge-ort-wrappers: make printed message match the one from recursive
merge-resolve: abort if index does not match HEAD
merge: abort if index does not match HEAD for trivial merges
merge: do not abort early if one strategy fails to handle the merge
merge: fix save_state() to work when there are stat-dirty files
merge: make restore_state() restore staged state too
merge: ensure we can actually restore pre-merge state
merge: do not exit restore_state() prematurely
merge-ort: remove translator lego in new "submodule conflict suggestion"
merge-ort: avoid surprise with new sub_flag variable
merge-ort: provide helpful submodule update message when possible
merge-ort: remove code obsoleted by other changes
rev-list-options.txt: fix simple typo
revision: allow --ancestry-path to take an argument
merge: only apply autostash when appropriate
merge: cleanup confusing logic for handling successful merges
merge: small code readability improvement
t4301: add more interesting merge-tree testcases
t64xx: convert 'test_create_repo' to 'git init'
diff: have submodule_format logic avoid additional diff headers
diff: fix filtering of additional headers under --remerge-diff
diff: fix filtering of merge commits under --remerge-diff
Emir SARI (3):
l10n: tr: Update translations for v2.38.0 round #1
l10n: tr: v2.38.0 round 2
l10n: tr: v2.38.0 3rd round
Eric DeCosta (1):
fsmonitor: option to allow fsmonitor to run against network-mounted repos
Eric Sunshine (25):
t2407: fix broken &&-chains in compound statement
t1092: fix buggy sparse "blame" test
t: detect and signal failure within loop
t4301: account for behavior differences between sed implementations
t4301: fix broken &&-chains and add missing loop termination
t4301: emit blank line in more idiomatic fashion
t: add skeleton chainlint.pl
chainlint.pl: add POSIX shell lexical analyzer
chainlint.pl: add POSIX shell parser
chainlint.pl: add parser to validate tests
chainlint.pl: add parser to identify test definitions
chainlint.pl: validate test scripts in parallel
chainlint.pl: don't require `return|exit|continue` to end with `&&`
t/Makefile: apply chainlint.pl to existing self-tests
chainlint.pl: don't require `&` background command to end with `&&`
chainlint.pl: don't flag broken &&-chain if `$?` handled explicitly
chainlint.pl: don't flag broken &&-chain if failure indicated explicitly
chainlint.pl: complain about loops lacking explicit failure handling
chainlint.pl: allow `|| echo` to signal failure upstream of a pipe
t/chainlint: add more chainlint.pl self-tests
test-lib: retire "lint harder" optimization hack
test-lib: replace chainlint.sed with chainlint.pl
t/Makefile: teach `make test` and `make prove` to run chainlint.pl
t: retire unused chainlint.sed
chainlint: colorize problem annotations and test delimiters
Fangyi Zhou (3):
help: fix doubled words in explanation for developer interfaces
l10n: zh_CN v2.38.0 rounds 1 & 2
l10n: zh_CN: 2.38.0 round 3
Felipe Contreras (7):
mergetools: vimdiff: fix comment
mergetools: vimdiff: make vimdiff3 actually work
mergetools: vimdiff: silence annoying messages
mergetools: vimdiff: fix for diffopt
mergetools: vimdiff: rework tab logic
mergetools: vimdiff: fix single window layouts
mergetools: vimdiff: simplify tabfirst
Fernando Ramos (1):
vimdiff: make layout engine more robust against user vim settings
Glen Choo (16):
submodule--helper: eliminate internal "--update" option
submodule--helper tests: add missing "display path" coverage
submodule--helper update: use display path helper
submodule--helper: don't recreate recursive prefix
submodule--helper: use correct display path helper
submodule--helper update: use --super-prefix
submodule--helper: remove display path helper
Documentation/git-config.txt: add SCOPES section
Documentation: define protected configuration
config: learn `git_protected_config()`
safe.directory: use git_protected_config()
setup.c: create `safe.bareRepository`
config.c: NULL check when reading protected config
Documentation/git-reflog: remove unneeded \ from \{
submodule--helper: add "const" to copy of "update_data"
submodule--helper: refactor "errmsg_str" to be a "struct strbuf"
Goss Geppert (2):
dir: traverse into repository
dir: minor refactoring / clean-up
Han Xin (6):
unpack-objects: low memory footprint for get_data() in dry_run mode
object-file.c: refactor write_loose_object() to several steps
object-file.c: add "stream_loose_object()" to handle large object
unpack-objects: use stream_loose_object() to unpack large objects
commit-graph.c: no lazy fetch in lookup_commit_in_graph()
t5330: remove run_with_limited_processses()
Hubert Bossot (1):
l10n: fr: The word 'branche' is only feminine
Jacob Keller (1):
remote: handle negative refspecs in git remote show
Jacob Stopak (3):
Documentation: fix various repeat word typos
Documentation: clean up a few misspelled word typos
Documentation: clean up various typos in technical docs
Jaydeep Das (1):
gpg-interface: add function for converting trust level to string
Jean-Noël Avila (3):
l10n: fr: v2.38 round 1
l10n: fr: v2.38.0 round 2
l10n: fr: v2.38.0 round 3
Jeff King (64):
is_promisor_object(): walk promisor packs in pack-order
fetch: stop passing around unused worktrees variable
branch: drop unused worktrees variable
revisions.txt: escape "..." to avoid asciidoc horizontal ellipsis
clone: drop extra newline from warning message
clone: propagate empty remote HEAD even with other branches
clone: use remote branch if it matches default HEAD
clone: move unborn head creation to update_head()
ref-filter: disable save_commit_buffer while traversing
diff-files: move misplaced cleanup label
write_midx_bitmap(): drop unused refs_snapshot parameter
config.mak.dev: squelch -Wno-missing-braces for older gcc
tree-walk: add a mechanism for getting non-canonicalized modes
fsck: actually detect bad file modes in trees
fsck: downgrade tree badFilemode to "info"
is_promisor_object(): fix use-after-free of tree buffer
compat: add function to enable nonblocking pipes
git-compat-util: make MAX_IO_SIZE define globally available
pipe_command(): avoid xwrite() for writing to pipe
pipe_command(): handle ENOSPC when writing to a pipe
pipe_command(): mark stdin descriptor as non-blocking
git-compat-util: add UNUSED macro
refs: mark unused each_ref_fn parameters
refs: mark unused reflog callback parameters
refs: mark unused virtual method parameters
transport: mark bundle transport_options as unused
streaming: mark unused virtual method parameters
config: mark unused callback parameters
hashmap: mark unused callback parameters
mark unused read_tree_recursive() callback parameters
run-command: mark unused async callback parameters
is_path_owned_by_current_uid(): mark "report" parameter as unused
xdiff: drop unused mmfile parameters from xdl_do_histogram_diff()
log-tree: drop unused commit param in remerge_diff()
match_pathname(): drop unused "flags" parameter
verify_one_sparse(): drop unused parameters
reftable: drop unused parameter from reader_seek_linear()
reflog: assert PARSE_OPT_NONEG in parse-options callbacks
xdiff: drop unused mmfile parameters from xdl_do_patience_diff()
pass subcommand "prefix" arguments to parse_options()
maintenance: add parse-options boilerplate for subcommands
remote: run "remote rm" argv through parse_options()
pack-bitmap-write: drop unused pack_idx_entry parameters
tempfile: drop active flag
tempfile: update comment describing state transitions
test-crontab: minor memory and error handling fixes
lookup_commit_in_graph(): use prepare_commit_graph() to check for graph
rev-list: disable commit graph with --verify-objects
parse_object(): allow skipping hash check
upload-pack: skip parse-object re-hashing of "want" objects
parse_object(): check commit-graph when skip_hash set
t1060: check partial clone of misnamed blob
list_objects_filter_copy(): deep-copy sparse_oid_name field
transport: deep-copy object-filter struct for fetch-pack
transport: free filter options in disconnect_git()
list_objects_filter_options: plug leak of filter_spec strings
prepare_repo_settings(): plug leak of config values
fetch: stop checking for NULL transport->remote in do_fetch()
fetch: add branch.*.merge to default ref-prefix extension
list-objects-filter: don't memset after releasing filter struct
list-objects-filter: handle null default filter spec
list-objects-filter: add and use initializers
list-objects-filter: convert filter_spec to a strbuf
list-objects-filter: initialize sub-filter structs
Johannes Schindelin (38):
merge-ort: store messages in a list, not in a single strbuf
merge-ort: make `path_messages` a strmap to a string_list
Git 2.30.5
Git 2.31.4
Git 2.32.3
Git 2.33.4
Git 2.34.4
Git 2.35.4
Git 2.36.2
add --interactive: allow `update` to stage deleted files
tests: fix incorrect --write-junit-xml code
mergetool(vimdiff): allow paths to contain spaces again
shortlog: use a stable sort
t5351: avoid relying on `core.fsyncMethod = batch` to be supported
t5351: avoid using `test_cmp` for binary data
windows: include the Python bits when building Git for Windows
mingw: remove unneeded `NO_GETTEXT` directive
mingw: remove unneeded `NO_CURL` directive
lstat(mingw): correctly detect ENOTDIR scenarios
merge-ort: clean up after failed merge
merge-ort: do leave trace2 region even if checkout fails
setup: fix some formatting
setup: prepare for more detailed "dubious ownership" messages
mingw: provide details about unsafe directories' ownership
mingw: be more informative when ownership check fails on FAT32
mingw: handle a file owned by the Administrators group correctly
scalar unregister: stop FSMonitor daemon
range-diff: reorder argument handling
range-diff: consistently validate the arguments
range-diff: optionally accept pathspecs
add -p: avoid ambiguous signed/unsigned comparison
t3701: test the built-in `add -i` regardless of NO_PERL
t6132(NO_PERL): do not run the scripted `add -p`
add -p: detect more mismatches between plain vs colored diffs
add -p: gracefully handle unparseable hunk headers in colored diffs
add -p: ignore dirty submodules
git help: special-case `scalar`
scalar: implement the `help` subcommand
Jonathan Tan (1):
fetch-pack: write effective filter to trace2
Jordi Mas (3):
l10n: Update Catalan translation
l10n: Update Catalan translation
l10n: Update Catalan translation
Josh Steadmon (1):
fetch-pack: add tracing for negotiation rounds
Julien Rouhaud (1):
gitweb: remove title shortening heuristics
Junio C Hamano (45):
revision: mark blobs needed for resolve-undo as reachable
A regression fix for 2.37
Git 2.37.1
builtin/mv.c: use the MOVE_ARRAY() macro instead of memmove()
The first batch after Git 2.37
fsck: do not dereference NULL while checking resolve-undo data
The second batch
The third batch
The fourth batch
The fifth batch
builtin/remote.c: use the right kind of STRING_LIST_INIT
The sixth batch
The seventh batch
Downmerge a handful of fixes for 2.37.x maintenance track
The eighth batch
The ninth batch
doc: consolidate --rerere-autoupdate description
doc: clarify rerere-autoupdate
Downmerge a bit more for 2.37.x
The tenth batch
The eleventh batch
Git 2.37.2
The twelfth batch
The thirteenth batch
The fourteenth batch
t5329: notice a failure within a loop
The fifteenth batch
A handful more topics from the 'master' front for 2.37.3
pretty: separate out the logic to decide the use of in-body from
format-patch: allow forcing the use of in-body From: header
format-patch: learn format.forceInBodyFrom configuration variable
The sixteenth batch
Git 2.37.3
The seventeenth batch
The eighteenth batch
The nineteenth batch
The twentieth batch
Merge a handful of topics from the 'master' front
Prepare for 2.38-rc0
Git 2.38-rc0
A bit more of remaining topics before -rc1
Final batch before -rc1
Git 2.38-rc1
Git 2.38-rc2
Git 2.38
Justin Donnelly (1):
git-prompt: show presence of unresolved conflicts at command prompt
Kilian Kilger (2):
git-p4: fix bug with encoding of p4 client name
git-p4: refactoring of p4CmdList()
Kyle Zhao (1):
send-pack.c: add config push.useBitmaps
Lessley Dennington (1):
osx-keychain: fix compiler warning
Li Linchao (3):
ls-files: update test style
remote-curl: send Accept-Language header to server
rev-list: support human-readable output for `--disk-usage`
Linus Torvalds (1):
symbolic-ref: refuse to set syntactically invalid target
Manuel Boni (1):
config.txt: document include, includeIf
Martin Ågren (4):
config/core.txt: fix minor issues for `core.sparseCheckoutCone`
t4200: drop irrelevant code
read-cache: make `do_read_index()` always set up `istate->repo`
cmd-list.perl: fix identifying man sections
Matheus Tavares (7):
checkout: document bug where delayed checkout counts entries twice
checkout: show bug about failed entries being included in final report
checkout: fix two bugs on the final count of updated entries
pkt-line.h: move comment closer to the associated code
t0021: avoid grepping for a Perl-specific string at filter output
t0021: implementation the rot13-filter.pl script in C
tests: use the new C rot13-filter helper to avoid PERL prereq
Matthew John Cheetham (1):
scalar: enable built-in FSMonitor on `register`
Miaoqian Lin (1):
commit-graph: Fix missing closedir in expire_commit_graphs
Michael J Gruber (3):
sequencer: do not translate reflog messages
sequencer: do not translate parameters to error_resolve_conflict()
sequencer: do not translate command names
Moritz Baumann (3):
git-p4: fix CR LF handling for utf16 files
git-p4: fix typo in P4Submit.applyCommit()
git-p4: fix error handling in P4Unshelve.renameBranch()
Peter Krefting (2):
l10n: sv.po: Update Swedish translation (5482t0f0u)
l10n: sv.po: Update Swedish translation (5484t0f0u)
Philip Oakley (1):
doc add: renormalize is not idempotent for CRCRLF
Philippe Blain (3):
diff-format.txt: dst can be 0* SHA-1 when path is deleted, too
diff-format.txt: correct misleading wording
diff-index.txt: update raw output format in examples
Phillip Wood (5):
xdiff: introduce XDL_ALLOC_ARRAY()
xdiff: introduce xdl_calloc
xdiff: introduce XDL_CALLOC_ARRAY()
xdiff: introduce XDL_ALLOC_GROW()
tests: cache glibc version check
Ralf Thielow (2):
l10n: de.po: update German translation
l10n: de.po: update German translation
René Scharfe (28):
archive: update format documentation
archive: rename archiver data field to filter_command
archive-tar: factor out write_block()
archive-tar: add internal gzip implementation
archive-tar: use OS_CODE 3 (Unix) for internal gzip
archive-tar: use internal gzip by default
combine-diff: abort if --ignore-matching-lines is given
combine-diff: abort if --output is given
cocci: avoid normalization rules for memcpy
mingw: avoid mktemp() in mkstemp() implementation
mergesort: unify ranks loops
mergesort: tighten merge loop
mergesort: add macros for typed sort of linked lists
test-mergesort: use DEFINE_LIST_SORT_DEBUG
test-mergesort: use DEFINE_LIST_SORT
blame: use DEFINE_LIST_SORT
commit: use DEFINE_LIST_SORT
fetch-pack: use DEFINE_LIST_SORT
packfile: use DEFINE_LIST_SORT
mergesort: remove llist_mergesort()
nonblock: support Windows
tempfile: avoid directory cleanup race
test-mergesort: read sort input all at once
test-mergesort: use mem_pool for sort input
diff-no-index: release strbuf on queue error
diff-no-index: release prefixed filenames
diff-no-index: simplify argv index calculation
add -p: fix worktree patch mode prompts
Richard Oliver (1):
mktree: do not check type of remote objects
SZEDER Gábor (30):
Makefile: build 'gitweb' in the default target
multi-pack-index: simplify handling of unknown --options
index-format.txt: remove outdated list of supported extensions
git.c: update NO_PARSEOPT markings
t3301-notes.sh: check that default operation mode doesn't take arguments
t5505-remote.sh: check the behavior without a subcommand
t0040-parse-options: test parse_options() with various 'parse_opt_flags'
api-parse-options.txt: fix description of OPT_CMDMODE
parse-options: PARSE_OPT_KEEP_UNKNOWN only applies to --options
parse-options: clarify the limitations of PARSE_OPT_NODASH
parse-options: drop leading space from '--git-completion-helper' output
parse-options: add support for parsing subcommands
builtin/bundle.c: let parse-options parse subcommands
builtin/commit-graph.c: let parse-options parse subcommands
builtin/gc.c: let parse-options parse 'git maintenance's subcommands
builtin/hook.c: let parse-options parse subcommands
builtin/multi-pack-index.c: let parse-options parse subcommands
builtin/notes.c: let parse-options parse subcommands
builtin/reflog.c: let parse-options parse subcommands
builtin/remote.c: let parse-options parse subcommands
builtin/sparse-checkout.c: let parse-options parse subcommands
builtin/stash.c: let parse-options parse subcommands
builtin/worktree.c: let parse-options parse subcommands
promisor-remote: fix xcalloc() argument order
t0040-parse-options: remove leftover debugging
test-parse-options.c: don't use for loop initial declaration
test-parse-options.c: fix style of comparison with zero
notes: simplify default operation mode arguments check
notes, remote: show unknown subcommands between `'
t/Makefile: remove 'test-results' on 'make clean'
Shaoxuan Yuan (22):
t7002: add tests for moving out-of-cone file/directory
t1092: mv directory from out-of-cone to in-cone
mv: update sparsity after moving from out-of-cone to in-cone
mv: decouple if/else-if checks using goto
mv: check if out-of-cone file exists in index with SKIP_WORKTREE bit
mv: check if exists in index to handle overwriting
mv: use flags mode for update_mode
mv: add check_dir_in_index() and solve general dir check issue
t1092: add tests for `git-rm`
pathspec.h: move pathspec_needs_expanded_index() from reset.c to here
rm: expand the index only when necessary
rm: integrate with sparse-index
t7002: add tests for moving from in-cone to out-of-cone
mv: rename check_dir_in_index() to empty_dir_has_sparse_contents()
mv: free the with_slash in check_dir_in_index()
mv: check if is a SKIP_WORKTREE_DIR
mv: remove BOTH from enum update_mode
mv: from in-cone to out-of-cone
mv: cleanup empty WORKING_DIRECTORY
advice.h: add advise_on_moving_dirty_path()
mv: check overwrite for in-to-out move
builtin/mv.c: fix possible segfault in add_slash()
Siddharth Asthana (4):
revision: improve commit_rewrite_person()
ident: move commit_rewrite_person() to ident.c
ident: rename commit_rewrite_person() to apply_mailmap_to_header()
cat-file: add mailmap support
Tao Klerks (1):
rev-parse: documentation adjustment - mention remote tracking with @{u}
Taylor Blau (14):
pack-objects.h: remove outdated pahole results
commit-graph: pass repo_settings instead of repository
t5318: demonstrate commit-graph generation v2 corruption
commit-graph: introduce `repo_find_commit_pos_in_graph()`
commit-graph: fix corrupt upgrade from generation v1 to v2
t1006: extract --batch-command inputs to variables
builtin/cat-file.c: support NUL-delimited input with `-z`
t5326: demonstrate potential bitmap corruption
t/lib-bitmap.sh: avoid silencing stderr
midx.c: extract `struct midx_fanout`
midx.c: extract `midx_fanout_add_midx_fanout()`
midx.c: extract `midx_fanout_add_pack_fanout()`
midx.c: include preferred pack correctly with existing MIDX
midx.c: avoid adding preferred objects twice
Teng Long (8):
pack-bitmap.c: fix formatting of error messages
pack-bitmap.c: mark more strings for translations
pack-bitmap.c: rename "idx_name" to "bitmap_name"
pack-bitmap.c: do not ignore error when opening a bitmap file
pack-bitmap.c: using error() instead of silently returning -1
pack-bitmap.c: continue looping when first MIDX bitmap is found
api-trace2.txt: print config key-value pair
tr2: shows scope unconditionally in addition to key-value pair
Todd Zullinger (2):
docs: fix a few recently broken links
api docs: link to html version of api-trace2
Victoria Dye (37):
scalar: reword command documentation to clarify purpose
scalar: convert README.md into a technical design doc
checkout: fix nested sparse directory diff in sparse index
oneway_diff: handle removed sparse directories
cache.h: create 'index_name_pos_sparse()'
unpack-trees: unpack new trees as sparse directories
scalar-diagnose: use "$GIT_UNZIP" in test
scalar-diagnose: avoid 32-bit overflow of size_t
scalar-diagnose: add directory to archiver more gently
scalar-diagnose: move 'get_disk_info()' to 'compat/'
scalar-diagnose: move functionality to common location
diagnose.c: add option to configure archive contents
builtin/diagnose.c: create 'git diagnose' builtin
builtin/diagnose.c: add '--mode' option
builtin/bugreport.c: create '--diagnose' option
scalar-diagnose: use 'git diagnose --mode=all'
scalar: update technical doc roadmap
scalar: constrain enlistment search
scalar-unregister: handle error codes greater than 0
scalar-[un]register: clearly indicate source of error
scalar-delete: do not 'die()' in 'delete_enlistment()'
scalar: move config setting logic into its own function
scalar: update technical doc roadmap with FSMonitor support
p0004: fix prereq declaration
p0006: fix 'read-tree' argument ordering
unpack-trees: fix sparse directory recursion check
scalar: fix command documentation section header
scalar: include in standard Git build & installation
scalar: add to 'git help -a' command list
scalar-clone: add test coverage
t/perf: add Scalar performance tests
t/perf: add 'GIT_PERF_USE_SCALAR' run option
Documentation/technical: include Scalar technical doc
diagnose.c: refactor to safely use 'd_type'
Documentation: add ReviewingGuidelines
diagnose: add to command-list.txt
version: fix builtin linking & documentation
Yi-Jyun Pan (1):
l10n: zh_TW.po: Git 2.38.0, round 3
ZheNing Hu (2):
ls-files: introduce "--format" option
ls-files: fix black space in error message
brian m. carlson (2):
sha256: add support for Nettle
gc: use temporary file for editing crontab
Ævar Arnfjörð Bjarmason (153):
t0008: don't rely on default ".git/info/exclude"
tests: don't depend on template-created .git/branches
tests: don't assume a .git/info for .git/info/grafts
tests: don't assume a .git/info for .git/info/attributes
tests: don't assume a .git/info for .git/info/refs
tests: don't assume a .git/info for .git/info/exclude
tests: don't assume a .git/info for .git/info/sparse-checkout
object-file.c: factor out deflate part of write_loose_object()
core doc: modernize core.bigFileThreshold documentation
git-submodule.sh: remove unused sanitize_submodule_env()
git-submodule.sh: remove unused $prefix variable
git-submodule.sh: make the "$cached" variable a boolean
git-submodule.sh: remove unused top-level "--branch" argument
submodule--helper: have --require-init imply --init
submodule update: remove "-v" option
submodule--helper: rename "absorb-git-dirs" to "absorbgitdirs"
submodule--helper: report "submodule" as our name in some "-h" output
submodule--helper: understand --checkout, --merge and --rebase synonyms
git-submodule.sh: use "$quiet", not "$GIT_QUIET"
git-sh-setup.sh: remove "say" function, change last users
gitweb/Makefile: define all .PHONY prerequisites inline
gitweb/Makefile: add a $(GITWEB_ALL) variable
gitweb/Makefile: clear up and de-duplicate the gitweb.{css,js} vars
gitweb/Makefile: prepare to merge into top-level Makefile
gitweb: remove "test" and "test-installed" targets
gitweb/Makefile: include in top-level Makefile
gitweb/Makefile: add a "NO_GITWEB" parameter
tests: add missing double quotes to included library paths
test-lib.sh: fix prepend_var() quoting issue
config tests: fix harmless but broken "rm -r" cleanup
submodule--helper: remove unused SUPPORT_SUPER_PREFIX flags
check-ref-format: fix trivial memory leak
clone: fix memory leak in wanted_peer_refs()
submodule.c: free() memory from xgetcwd()
revert: free "struct replay_opts" members
cat-file: fix a memory leak in --batch-command mode
merge-file: refactor for subsequent memory leak fix
merge-file: fix memory leaks on error path
checkout: avoid "struct unpack_trees_options" leak
gc: fix a memory leak
cat-file: fix a common "struct object_context" memory leak
pull: fix a "struct oid_array" memory leak
test-tool test-hash: fix a memory leak
test-tool path-utils: fix a memory leak
test-tool {dump,scrap}-cache-tree: fix memory leaks
test-tool urlmatch-normalization: fix a memory leak
test-tool regex: call regfree(), fix memory leaks
test-tool json-writer: fix memory leaks
test-tool bloom: fix memory leaks
test-tool ref-store: fix a memory leak
test-tool delta: fix a memory leak
Makefile: remove mandatory "spatch" arguments from SPATCH_FLAGS
Makefile & .gitignore: ignore & clean "git.res", not "*.res"
cocci: add a "coccicheck-test" target and test *.cocci rules
cocci: have "coccicheck{,-pending}" depend on "coccicheck-test"
cocci: add and apply a rule to find "unused" strbufs
cocci: generalize "unused" rule to cover more than "strbuf"
trace2: only include "fsync" events if we git_fsync()
test-lib: use $1, not $@ in test_known_broken_{ok,failure}_
test-lib: don't set GIT_EXIT_OK before calling test_atexit_handler
test-lib: fix GIT_EXIT_OK logic errors, use BAIL_OUT
test-lib: add a --invert-exit-code switch
t/README: reword the "GIT_TEST_PASSING_SANITIZE_LEAK" description
test-lib: add a SANITIZE=leak logging mode
t/Makefile: don't remove test-results in "clean-except-prove-cache"
tests: move copy/pasted PERL + Test::More checks to a lib-perl.sh
test-lib: simplify by removing test_external
test-lib: add a GIT_TEST_PASSING_SANITIZE_LEAK=check mode
test-lib: have the "check" mode for SANITIZE=leak consider leak logs
leak tests: don't skip some tests under SANITIZE=leak
leak tests: mark passing SANITIZE=leak tests as leak-free
upload-pack: fix a memory leak in create_pack_file()
CI: use "GIT_TEST_SANITIZE_LEAK_LOG=true" in linux-leaks
bisect.c: add missing "goto" for release_revisions()
test-fast-rebase helper: use release_revisions() (again)
log: fix a memory leak in "git show ..."
log: refactor "rev.pending" code in cmd_show()
bisect.c: partially fix bisect_rev_setup() memory leak
revisions API: don't leak memory on argv elements that need free()-ing
help.c: refactor drop_prefix() to use a "switch" statement"
help.c: remove common category behavior from drop_prefix() behavior
git help doc: use "" instead of ""
git docs: add a category for user-facing file, repo and command UX
git docs: add a category for file formats, protocols and interfaces
docs: move commit-graph format docs to man section 5
docs: move protocol-related docs to man section 5
docs: move index format docs to man section 5
docs: move signature docs to man section 5
docs: move pack format docs to man section 5
docs: move cruft pack docs to gitformat-pack
docs: move http-protocol docs to man section 5
hook API: don't segfault on strbuf_addf() to NULL "out"
Makefile + hash.h: remove PPC_SHA1 implementation
Makefile: use $(OBJECTS) instead of $(C_OBJ)
git-compat-util.h: use "UNUSED", not "UNUSED(var)"
git-compat-util.h: use "deprecated" for UNUSED variables
submodule tests: test usage behavior
submodule tests: test for "add "
submodule--helper: remove unused "name" helper
submodule--helper: remove unused "list" helper
test-tool submodule-config: remove unused "--url" handling
submodule--helper: move "is-active" to a test-tool
submodule--helper: move "check-name" to a test-tool
submodule--helper: move "resolve-relative-url-test" to a test-tool
submodule--helper style: don't separate declared variables with \n\n
submodule--helper style: add \n\n after variable declarations
submodule--helper: replace memset() with { 0 }-initialization
submodule--helper: use xstrfmt() in clone_submodule()
submodule--helper: move "sb" in clone_submodule() to its own scope
submodule--helper: add "const" to passed "module_clone_data"
submodule--helper: add "const" to passed "struct update_data"
submodule--helper: don't redundantly check "else if (res)"
submodule--helper: rename "int res" to "int ret"
submodule--helper: return "ret", not "1" from update_submodule()
submodule--helper: add missing braces to "else" arm
submodule--helper: don't call submodule_strategy_to_string() in BUG()
submodule API: don't handle SM_..{UNSPECIFIED,COMMAND} in to_string()
submodule--helper: use "code" in run_update_command()
submodule--helper: don't exit() on failure, return
submodule--helper: libify determine_submodule_update_strategy()
submodule--helper: libify "must_die_on_failure" code paths
submodule--helper update: don't override 'checkout' exit code
submodule--helper: libify "must_die_on_failure" code paths (for die)
submodule--helper: check repo{_submodule,}_init() return values
submodule--helper: libify more "die" paths for module_update()
submodule--helper: libify even more "die" paths for module_update()
submodule--helper: fix bad config API usage
submodule--helper: fix a leak in "clone_submodule"
submodule--helper: fix trivial get_default_remote_submodule() leak
submodule--helper: fix most "struct pathspec" memory leaks
submodule--helper: "struct pathspec" memory leak in module_update()
submodule--helper: don't leak {run,capture}_command() cp.dir argument
submodule--helper: add and use *_release() functions
submodule--helper: fix "errmsg_str" memory leak
submodule--helper: fix "sm_path" and other "module_cb_list" leaks
submodule--helper: fix a leak with repo_clear()
submodule--helper: fix a memory leak in get_default_remote_submodule()
submodule--helper: fix "reference" leak
submodule--helper: fix obscure leak in module_add()
submodule--helper: fix a leak in module_add()
submodule--helper: fix a memory leak in print_status()
submodule--helper: free some "displaypath" in "struct update_data"
submodule--helper: free rest of "displaypath" in "struct update_data"
submodule--helper: fix a configure_added_submodule() leak
docs: add and use include template for config/* includes
grep docs: de-duplicate configuration sections
send-email docs: de-duplicate configuration sections
apply docs: de-duplicate configuration sections
notes docs: de-duplicate and combine configuration sections
difftool docs: de-duplicate configuration sections
log docs: de-duplicate configuration sections
docs: add CONFIGURATION sections that map to a built-in
docs: add CONFIGURATION sections that fuzzy map to built-ins
Øystein Walle (1):
rev-parse --parseopt: detect missing opt-spec
[Less]
|
Posted
almost 3 years
ago
by
Christian Couder
Hi everyone,
The 91st edition of Git Rev News is now published:
https://git.github.io/rev_news/2022/09/30/edition-91/
Thanks a lot to Peff (Jeff King), Bruno Brito and Luca Milanesio who
helped this month!
Enjoy,
Christian, Jakub, Markus and
... [More]
Kaartic.
PS: An issue for the next edition is already opened and contributions
are welcome:
https://github.com/git/git.github.io/issues/602
[Less]
|