来源:Git官网
发布日期:2019-12-25
阅读次数:1015
评论:0
更新标题
[ANNOUNCE] Git v2.25.0-rc0
更新详情
From: Junio C Hamano
To: git@vger.kernel.org
Cc: Linux Kernel ,
git-packagers@googlegroups.com
Subject: [ANNOUNCE] Git v2.25.0-rc0
Date: Wed, 25 Dec 2019 13:44:54 -0800
Message-ID: (raw)
An early preview release Git v2.25.0-rc0 is now available for
testing at the usual places. It is comprised of 531 non-merge
commits since v2.24.0, contributed by 61 people, 24 of which are
new faces.
The tarballs are found at:
https://www.kernel.org/pub/software/scm/git/testing/
The following public repositories all have a copy of the
'v2.25.0-rc0' tag and the 'master' branch that the tag points at:
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.24.0 are as follows.
Welcome to the Git development community!
Colin Stolley, Doan Tran Cong Danh, Dominic Jäger, Erik Chen,
Hariom Verma, Heba Waly, James Coglan, James Shubin, Josh
Holland, Łukasz Niemier, Manish Goregaokar, Matthew Rogers,
Mihail Atanassov, Miriam Rubio, Nathan Stocks, Naveen Nathan,
Nika Layzell, Philippe Blain, Prarit Bhargava, r.burenkov,
Ruud van Asseldonk, ryenus, Slavica Đukić, and Utsav Shah.
Returning contributors who helped this release are as follows.
Thanks for your continued support.
Alban Gruin, Alexandr Miloslavskiy, Andreas Schwab, Andrei Rybak,
brian m. carlson, Daniel Ferreira, Denton Liu, Derrick Stolee,
Dimitriy Ryazantcev, Ed Maste, Elia Pinto, Elijah Newren, Emily
Shaffer, Garima Singh, Hans Jerry Illikainen, Jean-Noël Avila,
Jeff Hostetler, Jeff King, Johannes Schindelin, Jonathan Nieder,
Jonathan Tan, Junio C Hamano, Kevin Willford, Martin Ågren,
Mike Hommey, Philip Oakley, Phillip Wood, Pratyush Yadav,
Ralf Thielow, René Scharfe, Robin H. Johnson, Rohit Ashiwal,
SZEDER Gábor, Tanushree Tumane, Thomas Gummerer, Todd Zullinger,
and William Baker.
----------------------------------------------------------------
Git 2.25 Release Notes (draft)
==============================
Updates since v2.24
-------------------
Backward compatibility notes
UI, Workflows & Features
* A tutorial on object enumeration has been added.
* The branch description ("git branch --edit-description") has been
used to fill the body of the cover letters by the format-patch
command; this has been enhanced so that the subject can also be
filled.
* "git rebase --preserve-merges" has been marked as deprecated; this
release stops advertising it in the "git rebase -h" output.
* The code to generate multi-pack index learned to show (or not to
show) progress indicators.
* "git apply --3way" learned to honor merge.conflictStyle
configuration variable, like merges would.
* The custom format for "git log --format=" learned the l/L
placeholder that is similar to e/E that fills in the e-mail
address, but only the local part on the left side of '@'.
* Documentation pages for "git shortlog" now list commit limiting
options explicitly.
* The patterns to detect function boundary for Elixir language has
been added.
* The completion script (in contrib/) learned that the "--onto"
option of "git rebase" can take its argument as the value of the
option.
* The userdiff machinery has been taught that "async def" is another
way to begin a "function" in Python.
* "git range-diff" learned to take the "--notes=" and the
"--no-notes" options to control the commit notes included in the
log message that gets compared.
* "git rev-parse --show-toplevel" run outside of any working tree did
not error out, which has been corrected.
* A few commands learned to take the pathspec from the standard input
or a named file, instead of taking it as the command line
arguments, with the "--pathspec-from-file" option.
* "git rebase -i" learned a few options that are known by "git
rebase" proper.
* "git submodule" learned a subcommand "set-url".
* "git log" family learned "--pretty=reference" that gives the name
of a commit in the format that is often used to refer to it in log
messages.
* The interaction between "git clone --recurse-submodules" and
alternate object store was ill-designed. The documentation and
code have been taught to make more clear recommendations when the
users see failures.
* Management of sparsely checked-out working tree has gained a
dedicated "sparse-checkout" command.
Performance, Internal Implementation, Development Support etc.
* Debugging support for lazy cloning has been a bit improved.
* Move the definition of a set of bitmask constants from 0ctal
literal to (1U versus .
name-hash.c: remove duplicate word in comment
t6024: modernize style
Fix spelling errors in code comments
Fix spelling errors in comments of testcases
Fix spelling errors in names of tests
Fix spelling errors in messages shown to users
Fix spelling errors in test commands
sha1dc: fix trivial comment spelling error
multimail: fix a few simple spelling errors
Fix spelling errors in no-longer-updated-from-upstream modules
t3011: demonstrate directory traversal failures
Revert "dir.c: make 'git-status --ignored' work within leading directories"
dir: remove stray quote character in comment
dir: exit before wildcard fall-through if there is no wildcard
dir: break part of read_directory_recursive() out for reuse
t3434: mark successful test as such
dir: fix checks on common prefix directory
dir: synchronize treat_leading_path() and read_directory_recursive()
dir: consolidate similar code in treat_directory()
Emily Shaffer (4):
documentation: add tutorial for object walking
myfirstcontrib: add 'psuh' to command-list.txt
myfirstcontrib: add dependency installation step
myfirstcontrib: hint to find gitgitgadget allower
Erik Chen (1):
fetch: add trace2 instrumentation
Garima Singh (2):
test-path-utils: offer to run a protectNTFS/protectHFS benchmark
tests: add a helper to stress test argument quoting
Hans Jerry Illikainen (4):
gpg-interface: refactor the free-and-xmemdupz pattern
gpg-interface: limit search for primary key fingerprint
gpg-interface: prefer check_signature() for GPG verification
grep: don't return an expression from pcre2_free()
Hariom Verma (2):
builtin/blame.c: constants into bit shift format
git-compat-util.h: drop the `PRIuMAX` and other fallback definitions
Heba Waly (22):
config: move documentation to config.h
documentation: remove empty doc files
diff: move doc to diff.h and diffcore.h
dir: move doc to dir.h
graph: move doc to graph.h and graph.c
merge: move doc to ll-merge.h
sha1-array: move doc to sha1-array.h
remote: move doc to remote.h and refspec.h
refs: move doc to refs.h
attr: move doc to attr.h
revision: move doc to revision.h
pathspec: move doc to pathspec.h
sigchain: move doc to sigchain.h
cache: move doc to cache.h
argv-array: move doc to argv-array.h
credential: move doc to credential.h
parse-options: add link to doc file in parse-options.h
run-command: move doc to run-command.h
trace: move doc to trace.h
tree-walk: move doc to tree-walk.h
submodule-config: move doc to submodule-config.h
trace2: move doc to trace2.h
James Coglan (13):
graph: automatically track display width of graph lines
graph: handle line padding in `graph_next_line()`
graph: reuse `find_new_column_by_commit()`
graph: reduce duplication in `graph_insert_into_new_columns()`
graph: remove `mapping_idx` and `graph_update_width()`
graph: extract logic for moving to GRAPH_PRE_COMMIT state
graph: example of graph output that can be simplified
graph: tidy up display of left-skewed merges
graph: commit and post-merge lines for left-skewed merges
graph: rename `new_mapping` to `old_mapping`
graph: smooth appearance of collapsing edges on commit lines
graph: flatten edges that fuse with their right neighbor
graph: fix coloring of octopus dashes
James Shubin (1):
completion: tab-complete "git svn --recursive"
Jean-Noël Avila (2):
doc: remove non pure ASCII characters
doc: indent multi-line items in list
Jeff Hostetler (1):
trace2: add region in clear_ce_flags
Jeff King (44):
parse_commit_buffer(): treat lookup_commit() failure as parse error
parse_commit_buffer(): treat lookup_tree() failure as parse error
parse_tag_buffer(): treat NULL tag pointer as parse error
commit, tag: don't set parsed bit for parse failures
fsck: stop checking commit->tree value
fsck: stop checking commit->parent counts
fsck: stop checking tag->tagged
fsck: require an actual buffer for non-blobs
fsck: unify object-name code
fsck_describe_object(): build on our get_object_name() primitive
fsck: use oids rather than objects for object_name API
fsck: don't require object structs for display functions
fsck: only provide oid/type in fsck_error callback
fsck: only require an oid for skiplist functions
fsck: don't require an object struct for report()
fsck: accept an oid instead of a "struct blob" for fsck_blob()
fsck: drop blob struct from fsck_finish()
fsck: don't require an object struct for fsck_ident()
fsck: don't require an object struct in verify_headers()
fsck: rename vague "oid" local variables
fsck: accept an oid instead of a "struct tag" for fsck_tag()
fsck: accept an oid instead of a "struct commit" for fsck_commit()
fsck: accept an oid instead of a "struct tree" for fsck_tree()
hex: drop sha1_to_hex_r()
pack-objects: avoid pointless oe_map_new_pack() calls
hex: drop sha1_to_hex()
send-pack: check remote ref status on pack-objects failure
t9502: pass along all arguments in xss helper
t/gitweb-lib.sh: drop confusing quotes
t/gitweb-lib.sh: set $REQUEST_URI
gitweb: escape URLs generated by href()
rev-parse: make --show-toplevel without a worktree an error
perf-lib: use a single filename for all measurement types
t/perf: don't depend on Git.pm
send-pack: use OBJECT_INFO_QUICK to check negative objects
doc: recommend lore.kernel.org over public-inbox.org
doc: replace public-inbox links with lore.kernel.org
t9300: drop some useless uses of cat
t9300: create marks files for double-import-marks test
fast-import: tighten parsing of boolean command line options
fast-import: stop creating leading directories for import-marks
fast-import: delay creating leading directories for export-marks
fast-import: disallow "feature export-marks" by default
fast-import: disallow "feature import-marks" by default
Johannes Schindelin (93):
t1400: wrap setup code in test case
git_path(): handle `.lock` files correctly
vreportf(): avoid relying on stdio buffering
update-index: optionally leave skip-worktree entries alone
stash: handle staged changes in skip-worktree files correctly
fetch: add the command-line option `--write-commit-graph`
fetch: avoid locking issues between fetch.jobs/fetch.writeCommitGraph
remote-curl: unbreak http.extraHeader with custom allocators
Start to implement a built-in version of `git add --interactive`
built-in add -i: implement the main loop
built-in add -i: show unique prefixes of the commands
built-in add -i: support `?` (prompt help)
rebase-merges: move labels' whitespace mangling into `label_oid()`
git svn: stop using `rebase --preserve-merges`
mingw: demonstrate that all file handles are inherited by child processes
mingw: work around incorrect standard handles
mingw: spawned processes need to inherit only standard handles
mingw: restrict file handle inheritance only on Windows 7 and later
mingw: do set `errno` correctly when trying to restrict handle inheritance
add-interactive: make sure to release `rev.prune_data`
built-in add -i: allow filtering the modified files list
built-in add -i: prepare for multi-selection commands
built-in add -i: implement the `update` command
built-in add -i: re-implement `revert` in C
built-in add -i: re-implement `add-untracked` in C
built-in add -i: implement the `patch` command
built-in add -i: re-implement the `diff` command
built-in add -i: offer the `quit` command
pkt-line: fix a typo
mingw: forbid translating ERROR_SUCCESS to an errno value
clone --recurse-submodules: prevent name squatting on Windows
mingw: disallow backslash characters in tree objects' file names
path.c: document the purpose of `is_ntfs_dotgit()`
is_ntfs_dotgit(): only verify the leading segment
path: safeguard `.git` against NTFS Alternate Streams Accesses
is_ntfs_dotgit(): speed it up
mingw: fix quoting of arguments
path: also guard `.gitmodules` against NTFS Alternate Data Streams
protect_ntfs: turn on NTFS protection by default
Disallow dubiously-nested submodule git directories
quote-stress-test: accept arguments to test via the command-line
t6130/t9350: prepare for stringent Win32 path validation
quote-stress-test: allow skipping some trials
unpack-trees: let merged_entry() pass through do_add_entry()'s errors
mingw: refuse to access paths with illegal characters
quote-stress-test: offer to test quoting arguments for MSYS2 sh
mingw: refuse to access paths with trailing spaces or periods
mingw: handle `subst`-ed "DOS drives"
Git 2.14.6
Git 2.15.4
test-drop-caches: use `has_dos_drive_prefix()`
Git 2.16.6
Git 2.17.3
Git 2.18.2
Git 2.19.3
t7415: adjust test for dubiously-nested submodule gitdirs for v2.20.x
Git 2.20.2
mingw: detect when MSYS2's sh is to be spawned more robustly
mingw: use MSYS2 quoting even when spawning shell scripts
mingw: fix quoting of empty arguments for `sh`
t7415: drop v2.20.x-specific work-around
mingw: sh arguments need quoting in more circumstances
Git 2.21.1
Git 2.22.2
Git 2.23.1
Git 2.24.1
t3701: add a test for advanced split-hunk editing
t3701: avoid depending on the TTY prerequisite
t3701: add a test for the different `add -p` prompts
t3701: verify the shown messages when nothing can be added
t3701: verify that the diff.algorithm config setting is handled
git add -p: use non-zero exit code when the diff generation failed
apply --allow-overlap: fix a corner case
t3404: fix indentation
built-in add -i: start implementing the `patch` functionality in C
built-in add -i: wire up the new C code for the `patch` command
built-in add -p: show colored hunks by default
built-in add -p: adjust hunk headers as needed
built-in add -p: color the prompt and the help text
built-in add -p: offer a helpful error message when hunk navigation failed
built-in add -p: support multi-file diffs
built-in add -p: handle deleted empty files
built-in app -p: allow selecting a mode change as a "hunk"
built-in add -p: show different prompts for mode changes and deletions
built-in add -p: implement the hunk splitting feature
built-in add -p: coalesce hunks after splitting them
strbuf: add a helper function to call the editor "on an strbuf"
built-in add -p: implement hunk editing
built-in add -p: implement the 'g' ("goto") command
built-in add -p: implement the '/' ("search regex") command
built-in add -p: implement the 'q' ("quit") command
built-in add -p: only show the applicable parts of the help text
built-in add -p: show helpful hint when nothing can be staged
Jonathan Nieder (3):
submodule: reject submodule.update = !command in .gitmodules
fsck: reject submodule.update = !command in .gitmodules
submodule: defend against submodule.update = !command in .gitmodules
Jonathan Tan (6):
fetch-pack: write fetched refs to .promisor
fetch: remove fetch_if_missing=0
clone: remove fetch_if_missing=0
promisor-remote: remove fetch_if_missing=0
Doc: explain submodule.alternateErrorStrategy
submodule--helper: advise on fatal alternate error
Josh Holland (1):
userdiff: support Python async functions
Junio C Hamano (13):
doc: am --show-current-patch gives an entire e-mail message
The first batch post 2.24 cycle
fsmonitor: do not compare bitmap size with size of split index
ci(osx): update homebrew-cask repository with less noise
rebase -i: finishing touches to --reset-author-date
The second batch
The third batch
The fourth batch
The fifth batch
Makefile: drop GEN_HDRS
The sixth batch
dir.c: use st_add3() for allocation size
Git 2.25-rc0
Kevin Willford (1):
fsmonitor: fix watchman integration
Manish Goregaokar (2):
doc: document 'git submodule status --cached'
submodule: fix 'submodule status' when called from a subdirectory
Martin Ågren (1):
t7004: check existence of correct tag
Matthew Rogers (1):
rebase -r: let `label` generate safer labels
Mihail Atanassov (1):
Documentation/git-bisect.txt: add --no-ff to merge command
Mike Hommey (2):
revision: clear the topo-walk flags in reset_revision_walk
revision: free topo_walk_info before creating a new one in init_topo_walk
Miriam Rubio (1):
clone: rename static function `dir_exists()`.
Nathan Stocks (1):
t: fix typo in test descriptions
Naveen Nathan (1):
doc: improve readability of --rebase-merges in git-rebase
Nika Layzell (1):
reset: parse rev as tree-ish in patch mode
Philip Oakley (1):
Doc: Bundle file usage
Philippe Blain (4):
help: add gitsubmodules to the list of guides
worktree: teach "add" to ignore submodule.recurse config
doc: mention that 'git submodule update' fetches missing commits
gitmodules: link to gitsubmodules guide
Phillip Wood (7):
t3404: remove unnecessary subshell
t3404: set $EDITOR in subshell
t3404: remove uneeded calls to set_fake_editor
sequencer.h fix placement of #endif
move run_commit_hook() to libgit and use it there
sequencer: run post-commit hook
sequencer: fix empty commit check when amending
Prarit Bhargava (3):
t6006: use test-lib.sh definitions
t4203: use test-lib.sh definitions
pretty: add "%aL" etc. to show local-part of email addresses
Pratyush Yadav (1):
git-shortlog.txt: include commit limiting options
Ralf Thielow (1):
fetch.c: fix typo in a warning message
René Scharfe (32):
trace2: add dots directly to strbuf in perf_fmt_prepare()
utf8: use skip_iprefix() in same_utf_encoding()
convert: use skip_iprefix() in validate_encoding()
mingw: use COPY_ARRAY for copying array
parse-options: avoid arithmetic on pointer that's potentially NULL
pretty: provide short date format
fetch: use skip_prefix() instead of starts_with()
fmt-merge-msg: use skip_prefix() instead of starts_with()
shell: use skip_prefix() instead of starts_with()
push: use skip_prefix() instead of starts_with()
name-rev: use skip_prefix() instead of starts_with()
run-command: use prepare_git_cmd() in prepare_cmd()
t1512: use test_line_count
t1410: use test_line_count
t1400: use test_must_be_empty
test: use test_must_be_empty F instead of test -z $(cat F)
test: use test_must_be_empty F instead of test_cmp empty F
t9300: don't create unused file
t7811: don't create unused file
xdiff: unignore changes in function context
name-rev: use strbuf_strip_suffix() in get_rev_name()
commit: use strbuf_add() to add a length-limited string
patch-id: use oid_to_hex() to print multiple object IDs
archive-zip: use enum for compression method
t4256: don't create unused file
t7004: don't create unused file
refs: pass NULL to refs_read_ref_full() because object ID is not needed
remote: pass NULL to read_ref_full() because object ID is not needed
t3501: don't create unused file
t5580: don't create unused file
t6030: don't create unused file
t4015: improve coverage of function context test
Robin H. Johnson (3):
bundle: framework for options before bundle file
bundle-create: progress output control
bundle-verify: add --quiet
Rohit Ashiwal (6):
rebase -i: add --ignore-whitespace flag
sequencer: allow callers of read_author_script() to ignore fields
rebase -i: support --committer-date-is-author-date
sequencer: rename amend_author to author_to_rename
rebase -i: support --ignore-date
rebase: add --reset-author-date
Ruud van Asseldonk (1):
t5150: skip request-pull test if Perl is disabled
SZEDER Gábor (29):
Documentation: mention more worktree-specific exceptions
path.c: clarify trie_find()'s in-code comment
path.c: mark 'logs/HEAD' in 'common_list' as file
path.c: clarify two field names in 'struct common_dir'
path.c: don't call the match function without value in trie_find()
builtin/commit-graph.c: remove subcommand-less usage string
builtin/blame.c: remove '--indent-heuristic' from usage string
test-lib: don't check prereqs of test cases that won't be run anyway
t6120-describe: correct test repo history graph in comment
builtin/unpack-objects.c: show throughput progress
tests: add 'test_bool_env' to catch non-bool GIT_TEST_* values
t5608-clone-2gb.sh: turn GIT_TEST_CLONE_2GB into a bool
sequencer: don't re-read todo for revert and cherry-pick
test-lib-functions: suppress a 'git rev-parse' error in 'test_commit_bulk'
ci: build Git with GCC 9 in the 'osx-gcc' build job
t9300-fast-import: store the PID in a variable instead of pidfile
t9300-fast-import: don't hang if background fast-import exits too early
t6120-describe: modernize the 'check_describe' helper
name-rev: avoid unnecessary cast in name_ref()
name-rev: use sizeof(*ptr) instead of sizeof(type) in allocation
t6120: add a test to cover inner conditions in 'git name-rev's name_rev()
name-rev: extract creating/updating a 'struct name_rev' into a helper
name-rev: pull out deref handling from the recursion
name-rev: restructure parsing commits and applying date cutoff
name-rev: restructure creating/updating 'struct rev_name' instances
name-rev: drop name_rev()'s 'generation' and 'distance' parameters
name-rev: use 'name->tip_name' instead of 'tip_name'
name-rev: eliminate recursion in name_rev()
name-rev: cleanup name_ref()
Slavica Đukić (3):
built-in add -i: color the header in the `status` command
built-in add -i: use color in the main loop
built-in add -i: implement the `help` command
Tanushree Tumane (2):
bisect--helper: avoid use-after-free
bisect--helper: convert `*_warning` char pointers to char arrays.
Thomas Gummerer (1):
stash: make sure we have a valid index before writing it
Todd Zullinger (1):
t7812: expect failure for grep -i with invalid UTF-8 data
Utsav Shah (1):
unpack-trees: skip stat on fsmonitor-valid files
William Baker (6):
midx: add MIDX_PROGRESS flag
midx: add progress to write_midx_file
midx: add progress to expire_midx_packs
midx: honor the MIDX_PROGRESS flag in verify_midx_file
midx: honor the MIDX_PROGRESS flag in midx_repack
multi-pack-index: add [--[no-]progress] option.
brian m. carlson (16):
t/oid-info: allow looking up hash algorithm name
t/oid-info: add empty tree and empty blob values
rev-parse: add a --show-object-format option
t1305: avoid comparing extensions
t3429: remove SHA1 annotation
t4010: abstract away SHA-1-specific constants
t4011: abstract away SHA-1-specific constants
t4015: abstract away SHA-1-specific constants
t4027: make hash-size independent
t4034: abstract away SHA-1-specific constants
t4038: abstract away SHA-1 specific constants
t4039: abstract away SHA-1-specific constants
t4044: update test to work with SHA-256
t4045: make hash-size independent
t4048: abstract away SHA-1-specific constants
t9001: avoid including non-trailing NUL bytes in variables
r.burenkov (1):
git-p4: honor lfs.storage configuration variable
ryenus (1):
fix-typo: consecutive-word duplications
Łukasz Niemier (1):
userdiff: add Elixir to supported userdiff languages
软件描述
Git(读音为/gɪt/。)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。 [1] Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
评论