[ANNOUNCE] Git v2.31.1
The latest maintenance release Git v2.31.1 is now available at the usual places. Nothing extraordinary. Just to fix known issues in v2.31 and backport some clean-ups already made for the next feature release. The tarballs are found at: https://www.kernel.org/pub/software/scm/git/ The following public repositories all have a copy of the 'v2.31.1' tag and the 'maint' 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 Git 2.31.1 Release Notes Fixes since v2.31 - * The fsmonitor interface read from its input without making sure there is something to read from. This bug is new in 2.31 timeframe. * The data structure used by fsmonitor interface was not properly duplicated during an in-core merge, leading to use-after-free etc. * "git bisect" reimplemented more in C during 2.30 timeframe did not take an annotated tag as a good/bad endpoint well. This regression has been corrected. * Fix macros that can silently inject unintended null-statements. * CALLOC_ARRAY() macro replaces many uses of xcalloc(). * Update insn in Makefile comments to run fuzz-all target. * Fix a corner case bug in "git mv" on case insensitive systems, which was introduced in 2.29 timeframe. Also contains various documentation updates and code clean-ups. Changes since v2.31.0 are as follows: Andrzej Hunt (2): Makefile: update 'make fuzz-all' docs to reflect modern clang fsmonitor: avoid global-buffer-overflow READ when checking trivial response Jeff King (1): bisect: peel annotated tags to commits Johannes Schindelin (2): fsmonitor: fix memory corruption in some corner cases fsmonitor: do not forget to release the token in `discard_index()` Jonathan Tan (1): t5606: run clone branch name test with protocol v2 Junio C Hamano (3): xcalloc: use CALLOC_ARRAY() when applicable cocci: allow xcalloc(1, size) Git 2.31.1 Kyle Meyer (1): config.txt: add missing period René Scharfe (6): fix xcalloc() argument order git-compat-util.h: drop trailing semicolon from macro definition use CALLOC_ARRAY vcs-svn: remove header files as well block-sha1: drop trailing semicolon from macro definition mem-pool: drop trailing semicolon from macro definition Torsten Bögershausen (1): git mv foo FOO ; git mv foo bar gave an assert
[ANNOUNCE] Git v2.31.0
The latest feature release Git v2.31.0 is now available at the usual places. It is comprised of 679 non-merge commits since v2.30.0, contributed by 85 people, 23 of which are new faces [*]. The tarballs are found at: https://www.kernel.org/pub/software/scm/git/ The following public repositories all have a copy of the 'v2.31.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.30.0 are as follows. Welcome to the Git development community! Aleksey Kliger, Andreas Bühmann, Andrew Klotz, Andrzej Hunt, Antonio Russo, Arnaud Morin, Bagas Sanjaya, Christian Walther, Clement Moyroud, Daniel Levin, Daniel Troger, Harold Kim, Jacob Vosmaer, LeSeulArtichaut, Mikhail Klyushin, Neeraj Singh, Sangeeta Jain, Seth House, Shubham Verma, Utku Gultopu, Vasyl Vavrychuk, Vojtěch Knyttl, and ZheNing Hu. Returning contributors who helped this release are as follows. Thanks for your continued support. Abhishek Kumar, Adam Dinwoodie, Ævar Arnfjörð Bjarmason, Alexander Shopov, Alex Henrie, Arusekk, brian m. carlson, Christian Couder, Christopher Diaz Riveros, Dana Dahlstrom, Daniel Santos, Denton Liu, Derrick Stolee, Dimitriy Ryazantcev, Elijah Newren, Emir Sarı, Eric Sunshine, Eric Wong, Felipe Contreras, Han-Wen Nienhuys, Hariom Verma, Heba Waly, Jean-Noël Avila, Jeff Hostetler, Jeff King, Jiang Xin, Joey Salazar, Johannes Schindelin, Johannes Sixt, Jonathan Nieder, Jonathan Tan, Jordi Mas, Junio C Hamano, Kevin Daudt, Kevin Willford, Lars Schneider, Martin Ågren, Martin von Zweigbergk, Matheus Tavares, Matthias Rüster, Michael Haggerty, Patrick Steinhardt, Paul Jolly, Peter Kaestle, Peter Krefting, Phil Hord, Philippe Blain, Phillip Szelat, Phillip Wood, Pranit Bauva, Pratyush Yadav, Rafael Silva, Ralf Thielow, René Scharfe, Ross Light, Sergey Organov, SZEDER Gábor, Taylor Blau, Thomas Ackermann, Torsten Bögershausen, Trần Ngọc Quân, and Yi-Jyun Pan. [*] We are counting not just the authorship contribution but issue reporting, testing and reviewing that are recorded in the commit trailers. Git 2.31 Release Notes == Updates since v2.30 --- Backward incompatible and other important changes * The "pack-redundant" command, which has been left stale with almost unusable performance issues, now warns loudly when it gets used, as we no longer want to recommend its use (instead just "repack -d" instead). * The development community has adopted Contributor Covenant v2.0 to update from v1.4 that we have been using. * The support for deprecated PCRE1 library has been dropped. * Fixes for CVE-2021-21300 in Git 2.30.2 (and earlier) is included. UI, Workflows & Features * The "--format=%(trailers)" mechanism gets enhanced to make it easier to design output for machine consumption. * When a user does not tell "git pull" to use rebase or merge, the command gives a loud message telling a user to choose between rebase or merge but creates a merge anyway, forcing users who would want to rebase to redo the operation. Fix an early part of this problem by tightening the condition to give the message---there is no reason to stop or force the user to choose between rebase or merge if the history fast-forwards. * The configuration variable 'core.abbrev' can be set to 'no' to force no abbreviation regardless of the hash algorithm. * "git rev-parse" can be explicitly told to give output as absolute or relative path with the `--path-format=(absolute|relative)` option. * Bash completion (in contrib/) update to make it easier for end-users to add completion for their custom "git" subcommands. * "git maintenance" learned to drive scheduled maintenance on platforms whose native scheduling methods are not 'cron'. * After expiring a reflog and making a single commit, the reflog for the branch would record a single entry that knows both @{0} and @{1}, but we failed to answer "what commit were we on?", i.e. @{1} * "git bundle" learns "--stdin" option to read its refs from the standard input. Also, it now does not lose refs whey they point at the same object. * "git log" learned a new "--diff-merges=" option. * "git ls-files" can and does show multiple entries when the index is unmerged, which is a source for confusion unless -s/-u option is in use. A new option --deduplicate has been introduced. * `git worktree list` now annotates worktrees as prunable, shows locked and prunable attributes in --porcelain mode, and gained a -
[ANNOUNCE] Git v2.31.0-rc2
A release candidate Git v2.31.0-rc2 is now available for testing at the usual places. It is comprised of 655 non-merge commits since v2.30.0, contributed by 68 people, 22 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.31.0-rc2' 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.30.0 are as follows. Welcome to the Git development community! Aleksey Kliger, Andreas Bühmann, Andrew Klotz, Andrzej Hunt, Antonio Russo, Arnaud Morin, Christian Walther, Clement Moyroud, Daniel Levin, Daniel Troger, Harold Kim, Jacob Vosmaer, LeSeulArtichaut, Mikhail Klyushin, Neeraj Singh, Sangeeta Jain, Seth House, Shubham Verma, Utku Gultopu, Vasyl Vavrychuk, Vojtěch Knyttl, and ZheNing Hu. Returning contributors who helped this release are as follows. Thanks for your continued support. Abhishek Kumar, Adam Dinwoodie, Ævar Arnfjörð Bjarmason, Alex Henrie, brian m. carlson, Christian Couder, Denton Liu, Derrick Stolee, Elijah Newren, Eric Sunshine, Eric Wong, Felipe Contreras, Han-Wen Nienhuys, Hariom Verma, Heba Waly, Jeff Hostetler, Jeff King, Jiang Xin, Joey Salazar, Johannes Schindelin, Johannes Sixt, Jonathan Tan, Junio C Hamano, Kevin Daudt, Kevin Willford, Lars Schneider, Martin Ågren, Martin von Zweigbergk, Matheus Tavares, Michael Haggerty, Patrick Steinhardt, Paul Jolly, Peter Kaestle, Phil Hord, Philippe Blain, Phillip Wood, Pranit Bauva, Pratyush Yadav, Rafael Silva, René Scharfe, Ross Light, Sergey Organov, SZEDER Gábor, Taylor Blau, Thomas Ackermann, and Torsten Bögershausen. [*] We are counting not just the authorship contribution but issue reporting, testing and reviewing that are recorded in the commit trailers. Git 2.31 Release Notes (draft) == Updates since v2.30 --- Backward incompatible and other important changes * The "pack-redundant" command, which has been left stale with almost unusable performance issues, now warns loudly when it gets used, as we no longer want to recommend its use (instead just "repack -d" instead). * The development community has adopted Contributor Covenant v2.0 to update from v1.4 that we have been using. * The support for deprecated PCRE1 library has been dropped. * Fixes for CVE-2021-21300 in Git 2.30.2 (and earlier) is included. UI, Workflows & Features * The "--format=%(trailers)" mechanism gets enhanced to make it easier to design output for machine consumption. * When a user does not tell "git pull" to use rebase or merge, the command gives a loud message telling a user to choose between rebase or merge but creates a merge anyway, forcing users who would want to rebase to redo the operation. Fix an early part of this problem by tightening the condition to give the message---there is no reason to stop or force the user to choose between rebase or merge if the history fast-forwards. * The configuration variable 'core.abbrev' can be set to 'no' to force no abbreviation regardless of the hash algorithm. * "git rev-parse" can be explicitly told to give output as absolute or relative path with the `--path-format=(absolute|relative)` option. * Bash completion (in contrib/) update to make it easier for end-users to add completion for their custom "git" subcommands. * "git maintenance" learned to drive scheduled maintenance on platforms whose native scheduling methods are not 'cron'. * After expiring a reflog and making a single commit, the reflog for the branch would record a single entry that knows both @{0} and @{1}, but we failed to answer "what commit were we on?", i.e. @{1} * "git bundle" learns "--stdin" option to read its refs from the standard input. Also, it now does not lose refs whey they point at the same object. * "git log" learned a new "--diff-merges=" option. * "git ls-files" can and does show multiple entries when the index is unmerged, which is a source for confusion unless -s/-u option is in use. A new option --deduplicate has been introduced. * `git worktree list` now annotates worktrees as prunable, shows locked and prunable attributes in --porcelain mode, and gained a --verbose option. * "git clone" tries to locally check out the branch pointed at by HEAD of the remote repository after it is done, but the protocol did not convey the information necessary to do so when copying an empty repository. The protocol v2 learned how
[ANNOUNCE] Git v2.30.2 and below for CVE-2021-21300
The latest maintenance release Git v2.30.2, together with releases for older maintenance tracks v2.17.6, v2.18.5, v2.19.6, v2.20.5, v2.21.4, v2.22.5, v2.23.4, v2.24.4, v2.25.5, v2.26.3, v2.27.1, v2.28.1 and v2.29.3, is now available at the usual places. These maintenance releases are to addresses the security issues CVE-2021-21300. Please update. The credit for these releases all goes to Matheus Tavares and Johannes Schindelin. I didn't have to do anything but tagging their result, cutting releases, and sending out this announcement. The tarballs are found at: https://www.kernel.org/pub/software/scm/git/ The following public repositories all have a copy of the 'v2.30.2' tag and the 'maint' 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 Git v2.30.2 Release Notes = This release merges up the fixes that appear in v2.17.6, v2.18.5, v2.19.6, v2.20.5, v2.21.4, v2.22.5, v2.23.4, v2.24.4, v2.25.5, v2.26.3, v2.27.1, v2.28.1 and v2.29.3 to address the security issue CVE-2021-21300; see the release notes for these versions for details. Git v2.17.6 Release Notes = This release addresses the security issues CVE-2021-21300. Fixes since v2.17.5 --- * CVE-2021-21300: On case-insensitive file systems with support for symbolic links, if Git is configured globally to apply delay-capable clean/smudge filters (such as Git LFS), Git could be fooled into running remote code during a clone. Credit for finding and fixing this vulnerability goes to Matheus Tavares, helped by Johannes Schindelin.
Re: A note on the 5.12-rc1 tag
Josh Triplett writes: >> It is trivial for you to fetch the refs/notes/do-not--checkout notes >> tree from me and merge it into your refs/notes/do-not--checkout >> notes tree, I would think; "git notes merge" may have room for >> improvement, but essentially it would just want a union of two >> sets, no? > > My primary concern about notes is that they require manual > action/configuration in order to share. I was looking for a solution > that would automatically protect anyone who pulled from linux.git > (directly or indirectly), without them having to specifically take a > separate step to sync this information. If "without any configuration" is a hard requirement, then by definition you'd need to live with what you get from "git clone" and "git pull" alone, so be it the notes or any other mechanism, there currently is nothing that lets you do the "skip this part while bisection".
Re: A note on the 5.12-rc1 tag
Christian Couder writes: >> (git notes would be nice for this, but they're hard to share reliably; >> the above mechanism to accumulate entries from a file in the repo seems >> simpler. I can imagine other possibilities.) > > If the notes are created automatically from the `/.git-bisect-skip` > files and stored in `refs/notes/skip`, then they might not need to be > shared. If people already share notes, they would just need to stop > sharing those in `refs/notes/skip`. Ehh, doesn't Josh _want_ to share them, though? I do not know if a single "refs/notes/bisect-skip" notes would do, or you'd need one notes tree per the kind of bisection (iow, people may be chasing different set of bugs, and the commits that need to be skipped while chasing one bug may be OK to test while chasing another one), but I would imagine that for this particular use case of marking "these commits are dangerous to check out and build on", it does not depend on what you are bisecting to find at all, so sharing would be a sensible thing to do. It is trivial for you to fetch the refs/notes/do-not--checkout notes tree from me and merge it into your refs/notes/do-not--checkout notes tree, I would think; "git notes merge" may have room for improvement, but essentially it would just want a union of two sets, no?
Re: [ANNOUNCE] Git v2.31.0-rc1
Eric Sunshine writes: > On Wed, Mar 3, 2021 at 7:23 PM Junio C Hamano wrote: >> Pratyush Yadav (1): >> git-gui: remove lines starting with the comment character > > Is there some way that this can be removed from v2.31.0 before final > release? It badly breaks git-gui on macOS[1,2] to the point of making > it unusable (Tcl throws errors at launch time and when trying to > commit, and committing is 100% broken). Thanks. I could revert the merge with the problematic changes to git-gui, i.e. 0917373 (Merge https://github.com/prati0100/git-gui, 2021-03-01), but if possible, I'd rather merge a revert made on the git-gui side. If b1056f60 (Merge branch 'py/commit-comments', 2021-02-22) is the tip of git-gui repository, and b9a43869 (git-gui: remove lines starting with the comment character, 2021-02-03) is what breaks, perhaps $ git checkout b1056f60^2 && git revert b9a43869 && git checkout b1056f60 && git merge @{-1} would be what we want to have at the tip of git-gui until the breakage gets sorted out. Pratyush?
[ANNOUNCE] Git v2.31.0-rc1
A release candidate Git v2.31.0-rc1 is now available for testing at the usual places. It is comprised of 631 non-merge commits since v2.30.0, contributed by 67 people, 21 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.31.0-rc1' 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.30.0 are as follows. Welcome to the Git development community! Andreas Bühmann, Andrew Klotz, Andrzej Hunt, Antonio Russo, Arnaud Morin, Christian Walther, Clement Moyroud, Daniel Levin, Daniel Troger, Harold Kim, Jacob Vosmaer, LeSeulArtichaut, Mikhail Klyushin, Neeraj Singh, Sangeeta Jain, Seth House, Shubham Verma, Utku Gultopu, Vasyl Vavrychuk, Vojtěch Knyttl, and ZheNing Hu. Returning contributors who helped this release are as follows. Thanks for your continued support. Abhishek Kumar, Adam Dinwoodie, Ævar Arnfjörð Bjarmason, Alex Henrie, brian m. carlson, Christian Couder, Denton Liu, Derrick Stolee, Elijah Newren, Eric Sunshine, Eric Wong, Felipe Contreras, Han-Wen Nienhuys, Hariom Verma, Heba Waly, Jeff Hostetler, Jeff King, Jiang Xin, Joey Salazar, Johannes Schindelin, Johannes Sixt, Jonathan Tan, Junio C Hamano, Kevin Daudt, Kevin Willford, Lars Schneider, Martin Ågren, Martin von Zweigbergk, Matheus Tavares, Michael Haggerty, Patrick Steinhardt, Paul Jolly, Peter Kaestle, Phil Hord, Philippe Blain, Phillip Wood, Pranit Bauva, Pratyush Yadav, Rafael Silva, René Scharfe, Ross Light, Sergey Organov, SZEDER Gábor, Taylor Blau, Thomas Ackermann, and Torsten Bögershausen. [*] We are counting not just the authorship contribution but issue reporting, testing and reviewing that are recorded in the commit trailers. Git 2.31 Release Notes (draft) == Updates since v2.30 --- Backward incompatible and other important changes * The "pack-redundant" command, which has been left stale with almost unusable performance issues, now warns loudly when it gets used, as we no longer want to recommend its use (instead just "repack -d" instead). * The development community has adopted Contributor Covenant v2.0 to update from v1.4 that we have been using. * The support for deprecated PCRE1 library has been dropped. UI, Workflows & Features * The "--format=%(trailers)" mechanism gets enhanced to make it easier to design output for machine consumption. * When a user does not tell "git pull" to use rebase or merge, the command gives a loud message telling a user to choose between rebase or merge but creates a merge anyway, forcing users who would want to rebase to redo the operation. Fix an early part of this problem by tightening the condition to give the message---there is no reason to stop or force the user to choose between rebase or merge if the history fast-forwards. * The configuration variable 'core.abbrev' can be set to 'no' to force no abbreviation regardless of the hash algorithm. * "git rev-parse" can be explicitly told to give output as absolute or relative path with the `--path-format=(absolute|relative)` option. * Bash completion (in contrib/) update to make it easier for end-users to add completion for their custom "git" subcommands. * "git maintenance" learned to drive scheduled maintenance on platforms whose native scheduling methods are not 'cron'. * After expiring a reflog and making a single commit, the reflog for the branch would record a single entry that knows both @{0} and @{1}, but we failed to answer "what commit were we on?", i.e. @{1} * "git bundle" learns "--stdin" option to read its refs from the standard input. Also, it now does not lose refs whey they point at the same object. * "git log" learned a new "--diff-merges=" option. * "git ls-files" can and does show multiple entries when the index is unmerged, which is a source for confusion unless -s/-u option is in use. A new option --deduplicate has been introduced. * `git worktree list` now annotates worktrees as prunable, shows locked and prunable attributes in --porcelain mode, and gained a --verbose option. * "git clone" tries to locally check out the branch pointed at by HEAD of the remote repository after it is done, but the protocol did not convey the information necessary to do so when copying an empty repository. The protocol v2 learned how to do so. * There are other ways than ".." for a single token to denote a "commit
[ANNOUNCE] Git v2.31.0-rc0
An early preview release Git v2.31.0-rc0 is now available for testing at the usual places. It is comprised of 568 non-merge commits since v2.30.0, contributed by 58 people, 18 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.31.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.30.0 are as follows. Welcome to the Git development community! Andreas Bühmann, Andrew Klotz, Andrzej Hunt, Antonio Russo, Arnaud Morin, Christian Walther, Clement Moyroud, Daniel Levin, Daniel Troger, Harold Kim, Jacob Vosmaer, LeSeulArtichaut, Sangeeta Jain, Seth House, Utku Gultopu, Vasyl Vavrychuk, Vojtěch Knyttl, and ZheNing Hu. Returning contributors who helped this release are as follows. Thanks for your continued support. Abhishek Kumar, Adam Dinwoodie, Ævar Arnfjörð Bjarmason, Alex Henrie, brian m. carlson, Christian Couder, Denton Liu, Derrick Stolee, Elijah Newren, Eric Sunshine, Eric Wong, Felipe Contreras, Jeff King, Jiang Xin, Joey Salazar, Johannes Schindelin, Johannes Sixt, Jonathan Tan, Junio C Hamano, Kevin Daudt, Lars Schneider, Martin Ågren, Martin von Zweigbergk, Matheus Tavares, Michael Haggerty, Patrick Steinhardt, Paul Jolly, Peter Kaestle, Phil Hord, Philippe Blain, Phillip Wood, Pranit Bauva, Rafael Silva, René Scharfe, Ross Light, Sergey Organov, SZEDER Gábor, Taylor Blau, Thomas Ackermann, and Torsten Bögershausen. [*] We are counting not just the authorship contribution but mention for issue reporting, testing and reviewing in the commits added during this cycle are all counted. Git 2.31 Release Notes (draft) == Updates since v2.30 --- Backward incompatible and other important changes * The "pack-redundant" command, which has been left stale with almost unusable performance issues, now warns loudly when it gets used, as we no longer want to recommend its use (instead just "repack -d" instead). * The development community has adopted Contributor Covenant v2.0 to update from v1.4 that we have been using. * The support for deprecated PCRE1 library has been dropped. UI, Workflows & Features * The "--format=%(trailers)" mechanism gets enhanced to make it easier to design output for machine consumption. * When a user does not tell "git pull" to use rebase or merge, the command gives a loud message telling a user to choose between rebase or merge but creates a merge anyway, forcing users who would want to rebase to redo the operation. Fix an early part of this problem by tightening the condition to give the message---there is no reason to stop or force the user to choose between rebase or merge if the history fast-forwards. * The configuration variable 'core.abbrev' can be set to 'no' to force no abbreviation regardless of the hash algorithm. * "git rev-parse" can be explicitly told to give output as absolute or relative path with the `--path-format=(absolute|relative)` option. * Bash completion (in contrib/) update to make it easier for end-users to add completion for their custom "git" subcommands. * "git maintenance" learned to drive scheduled maintenance on platforms whose native scheduling methods are not 'cron'. * After expiring a reflog and making a single commit, the reflog for the branch would record a single entry that knows both @{0} and @{1}, but we failed to answer "what commit were we on?", i.e. @{1} * "git bundle" learns "--stdin" option to read its refs from the standard input. Also, it now does not lose refs whey they point at the same object. * "git log" learned a new "--diff-merges=" option. * "git ls-files" can and does show multiple entries when the index is unmerged, which is a source for confusion unless -s/-u option is in use. A new option --deduplicate has been introduced. * `git worktree list` now annotates worktrees as prunable, shows locked and prunable attributes in --porcelain mode, and gained a --verbose option. * "git clone" tries to locally check out the branch pointed at by HEAD of the remote repository after it is done, but the protocol did not convey the information necessary to do so when copying an empty repository. The protocol v2 learned how to do so. * There are other ways than ".." for a single token to denote a "commit range", namely "^!" and "^-", but "git range-diff" did not under
[ANNOUNCE] Git v2.30.1
The latest maintenance release Git v2.30.1 is now available at the usual places. This is to propagate obvious fixes that have accumulated on the 'master' front down to the 2.30.x series. The tarballs are found at: https://www.kernel.org/pub/software/scm/git/ The following public repositories all have a copy of the 'v2.30.1' tag and the 'maint' 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 Git v2.30.1 Release Notes = This release is primarily to merge fixes accumulated on the 'master' front to prepare for 2.31 release that are still relevant to 2.30.x maintenance track. Fixes since v2.30 - * "git fetch --recurse-submodules" failed to update a submodule when it has an uninitialized (hence of no interest to the user) sub-submodule, which has been corrected. * Command line error of "git rebase" are diagnosed earlier. * "git stash" did not work well in a sparsely checked out working tree. * Some tests expect that "ls -l" output has either '-' or 'x' for group executable bit, but setgid bit can be inherited from parent directory and make these fields 'S' or 's' instead, causing test failures. * "git for-each-repo --config= " should not run for any repository when the configuration variable is not defined even once. * "git mergetool --tool-help" was broken in 2.29 and failed to list all the available tools. * Fix for procedure to building CI test environment for mac. * Newline characters in the host and path part of git:// URL are now forbidden. * When more than one commit with the same patch ID appears on one side, "git log --cherry-pick A...B" did not exclude them all when a commit with the same patch ID appears on the other side. Now it does. * Documentation for "git fsck" lost stale bits that has become incorrect. * Doc for packfile URI feature has been clarified. * The implementation of "git branch --sort" wrt the detached HEAD display has always been hacky, which has been cleaned up. * Our setting of GitHub CI test jobs were a bit too eager to give up once there is even one failure found. Tweak the knob to allow other jobs keep running even when we see a failure, so that we can find more failures in a single run. Also contains minor documentation updates and code clean-ups. Changes since v2.30.0 are as follows: Adam Dinwoodie (1): t4129: fix setfacl-related permissions failure Antonio Russo (1): t6016: move to lib-log-graph.sh framework Daniel Levin (1): git-p4: fix syncing file types with pattern Derrick Stolee (1): for-each-repo: do nothing on empty config Elijah Newren (3): t7012: add a testcase demonstrating stash apply bugs in sparse checkouts stash: remove unnecessary process forking stash: fix stash application in sparse-checkouts Felipe Contreras (1): test: bisect-porcelain: fix location of files Jeff King (5): git_connect_git(): forbid newlines in host and path fsck: reject .gitmodules git:// urls with newlines t5516: loosen "not our ref" error check patch-ids: handle duplicate hashmap entries p5303: avoid sed GNU-ism Johannes Schindelin (1): SKIP_DASHED_BUILT_INS: respect `config.mak` Johannes Sixt (1): annotate-tests: quote variable expansions containing path names Jonathan Tan (1): Doc: clarify contents of packfile sent as URI Junio C Hamano (5): parse-options: format argh like error messages SubmittingPatches: tighten wording on "sign-off" procedure ci/install-depends: attempt to fix "brew cask" stuff Prepare for 2.30.1 Git 2.30.1 Martin Ågren (9): t1300: remove duplicate test for `--file ../foo` t1300: remove duplicate test for `--file no-such-file` t1300: don't needlessly work with `core.foo` configs pack-format.txt: document sizes at start of delta data builtin/gc: don't peek into `struct lock_file` commit-graph: don't peek into `struct lock_file` midx: don't peek into `struct lock_file` refs/files-backend: don't peek into `struct lock_file` read-cache: try not to peek into `struct {lock_,temp}file` Matheus Tavares (1): t4129: don't fail if setgid is set in the test directory Peter Kaestle (1): submodules: fix of regression on fetching of non-init subsub-repo Philippe Blain (3): gitmodules.txt: fix 'GIT_WORK_TREE' variable name mergetool--lib: fix '--tool-help' to correctly show available tools ci: do not cancel all jobs of a matrix if one fails René Scharfe (1):
[ANNOUNCE] Git v2.30.0
The latest feature release Git v2.30.0 is now available at the usual places. It comprises 495 non-merge commits since v2.29.0, contributed by 83 people, 29 of which are new faces. The tarballs are found at: https://www.kernel.org/pub/software/scm/git/ The following public repositories all have a copy of the 'v2.30.0' 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 patches weren't in v2.29.0 are as follows. Welcome to the Git development community! Alexey, Amanda Shafack, Arusekk, Baptiste Fontaine, Bradley M. Kuhn, Caleb Tillman, Charvi Mendiratta, Daniel Duvall, Daniel Gurney, Dennis Ameling, Javier Spagnoletti, Jinoh Kang, Joey Salazar, Konrad Borowski, m4sk1n, Marlon Rac Cambasis, Martin Schön, Michał Kępień, Nate Avers, Nipunn Koorapati, Rafael Silva, Robert Karszniewicz, Samuel Čavoj, Sean Barag, Sibo Dong, Simão Afonso, Sohom Datta, Thomas Koutcher, and Victor Engmark. Returning contributors who helped this release are as follows. Thanks for your continued support. Adam Spiers, Ævar Arnfjörð Bjarmason, Alexander Shopov, Alex Vandiver, Arnout Engelen, brian m. carlson, Christian Couder, Chris. Webster, David Aguilar, Denton Liu, Derrick Stolee, Dimitriy Ryazantcev, Đoàn Trần Công Danh, Drew DeVault, Elijah Newren, Emily Shaffer, Emir Sarı, Eric Sunshine, Felipe Contreras, Han-Wen Nienhuys, Jean-Noël Avila, Jeff Hostetler, Jeff King, Jiang Xin, Johannes Berg, Johannes Schindelin, Jonathan Tan, Jordi Mas, Josh Steadmon, Junio C Hamano, Kyle Meyer, Martin Ågren, Matheus Tavares, Matthias Rüster, Nicolas Morey-Chaisemartin, Patrick Steinhardt, Peter Kaestle, Peter Krefting, Philippe Blain, Phillip Wood, Pranit Bauva, Pratyush Yadav, Ramsay Jones, Randall S. Becker, René Scharfe, Sergey Organov, Serg Tereshchenko, Srinidhi Kaushik, Stefan Haller, Štěpán Němec, SZEDER Gábor, Taylor Blau, Trần Ngọc Quân, and Yi-Jyun Pan. Git 2.30 Release Notes == Updates since v2.29 --- UI, Workflows & Features * Userdiff for PHP update. * Userdiff for Rust update. * Userdiff for CSS update. * The command line completion script (in contrib/) learned that "git stash show" takes the options "git diff" takes. * "git worktree list" now shows if each worktree is locked. This possibly may open us to show other kinds of states in the future. * "git maintenance", an extended big brother of "git gc", continues to evolve. * "git push --force-with-lease[=]" can easily be misused to lose commits unless the user takes good care of their own "git fetch". A new option "--force-if-includes" attempts to ensure that what is being force-pushed was created after examining the commit at the tip of the remote ref that is about to be force-replaced. * "git clone" learned clone.defaultremotename configuration variable to customize what nickname to use to call the remote the repository was cloned from. * "git checkout" learned to use checkout.guess configuration variable and enable/disable its "--[no-]guess" option accordingly. * "git resurrect" script (in contrib/) learned that the object names may be longer than 40-hex depending on the hash function in use. * "git diff A...B" learned "git diff --merge-base A B", which is a longer short-hand to say the same thing. * A sample 'push-to-checkout' hook, that performs the same as what the built-in default action does, has been added. * "git diff" family of commands learned the "-I" option to ignore hunks whose changed lines all match the given pattern. * The userdiff pattern learned to identify the function definition in POSIX shells and bash. * "git checkout-index" did not consistently signal an error with its exit status, but now it does. * A commit and tag object may have CR at the end of each and every line (you can create such an object with hash-object or using --cleanup=verbatim to decline the default clean-up action), but it would make it impossible to have a blank line to separate the title from the body of the message. We are now more lenient and accept a line with lone CR on it as a blank line, too. * Exit codes from "git remote add" etc. were not usable by scripted callers, but now they are. * "git archive" now allows compression level higher than "-9" when generating tar.gz output. * Zsh autocompletion (in contrib/) update. * The maximum length of output filenames "git format-patch" creates has become configurable (used to be capped at 64
Re: [ANNOUNCE] Git v2.30.0-rc2
Thanks.
[ANNOUNCE] Git v2.30.0-rc2
could. (merge 506ec2fbda tb/idx-midx-race-fix later to maint). * "git apply" adjusted the permission bits of working-tree files and directories according core.sharedRepository setting by mistake and for a long time, which has been corrected. (merge eb3c027e17 mt/do-not-use-scld-in-working-tree later to maint). * "fetch-pack" could pass NULL pointer to unlink(2) when it sees an invalid filename; the error checking has been tightened to make this impossible. (merge 6031af387e rs/fetch-pack-invalid-lockfile later to maint). * "git maintenance run/start/stop" needed to be run in a repository to hold the lockfile they use, but didn't make sure they are actually in a repository, which has been corrected. * The glossary described a branch as an "active" line of development, which is misleading---a stale and non-moving branch is still a branch. (merge eef1ceabd8 so/glossary-branch-is-not-necessarily-active later to maint). * Newer versions of xsltproc can assign IDs in HTML documents it generates in a consistent manner. Use the feature to help format HTML version of the user manual reproducibly. (merge 3569e11d69 ae/doc-reproducible-html later to maint). * Tighten error checking in the codepath that responds to "git fetch". (merge d43a21bdbb jk/check-config-parsing-error-in-upload-pack later to maint). * "git pack-redandant" when there is only one packfile used to crash, which has been corrected. (merge 0696232390 jx/pack-redundant-on-single-pack later to maint). * Other code cleanup, docfix, build fix, etc. (merge 3e0a5dc9af cc/doc-filter-branch-typofix later to maint). (merge 32c83afc2c cw/ci-ghwf-check-ws-errors later to maint). (merge 5eb2ed691b rs/tighten-callers-of-deref-tag later to maint). (merge 6db29ab213 jk/fast-import-marks-cleanup later to maint). (merge e5cf6d3df4 nk/dir-c-comment-update later to maint). (merge 5710dcce74 jk/report-fn-typedef later to maint). (merge 9a82db1056 en/sequencer-rollback-lock-cleanup later to maint). (merge 4e1bee9a99 js/t7006-cleanup later to maint). (merge f5bcde6c58 es/tutorial-mention-asciidoc-early later to maint). (merge 714d491af0 so/format-patch-doc-on-default-diff-format later to maint). (merge 0795df4b9b rs/clear-commit-marks-in-repo later to maint). (merge 9542d56379 sd/prompt-local-variable later to maint). (merge 06d43fad18 rs/pack-write-hashwrite-simplify later to maint). (merge b7e20b4373 mc/typofix later to maint). (merge f6bcd9a8a4 js/test-whitespace-fixes later to maint). (merge 53b67a801b js/test-file-size later to maint). (merge 970909c2a7 rs/hashwrite-be64 later to maint). (merge 5a923bb1f0 ma/list-object-filter-opt-msgfix later to maint). (merge 1c3e412916 rs/archive-plug-leak-refname later to maint). (merge d44e5267ea rs/plug-diff-cache-leak later to maint). (merge 793c1464d3 ab/gc-keep-base-option later to maint). (merge b86339b12b mt/worktree-error-message-fix later to maint). (merge e01ae2a4a7 js/pull-rebase-use-advise later to maint). (merge e63d774242 sn/config-doc-typofix later to maint). (merge 08e9df2395 jk/multi-line-indent-style-fix later to maint). (merge e66590348a da/vs-build-iconv-fix later to maint). (merge 7fe07275be js/cmake-extra-built-ins-fix later to maint). (merge 633eebe142 jb/midx-doc-update later to maint). (merge 5885367e8f jh/index-v2-doc-on-fsmn later to maint). (merge 14639a4779 jc/compat-util-setitimer-fix later to maint). (merge 56f56ac50b ab/unreachable-break later to maint). (merge 731d578b4f rb/nonstop-config-mak-uname-update later to maint). (merge f4698738f9 es/perf-export-fix later to maint). (merge 773c694142 nk/refspecs-negative-fix later to maint). Changes since v2.30.0-rc1 are as follows: Jiang Xin (1): pack-redundant: fix crash when one packfile in repo Johannes Schindelin (12): t1400: use `main` as initial branch name t3200: finish transitioning to the initial branch name `main` t3201: finalize transitioning to using the branch name `main` t3203: complete the transition to using the branch name `main` t3205: finalize transitioning to using the branch name `main` t5505: finalize transitioning to using the branch name `main` t5510: use `main` as initial branch name t5703: use `main` as initial branch name t6302: use `main` as initial branch name t9902: use `main` as initial branch name tests: drop the `PREPARE_FOR_MAIN_BRANCH` prereq checkout -p: handle tree arguments correctly again Junio C Hamano (1): Git 2.30-rc2 Martin Ågren (3): git-maintenance.txt: add missing word gc: fix handling of crontab magic markers t7900-maintenance: test for magic markers Nipunn Koorapati (2): negative-refspec: fix segfault on : refspec negative-refspec: improve comment on query_matches_negative_refspec
[ANNOUNCE] Git v2.30.0-rc1
A release candidate Git v2.30.0-rc1 is now available for testing at the usual places. It is comprised of 455 non-merge commits since v2.29.0, contributed by 72 people, 26 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.30.0-rc1' 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.29.0 are as follows. Welcome to the Git development community! Alexey, Amanda Shafack, Bradley M. Kuhn, Caleb Tillman, Charvi Mendiratta, Daniel Duvall, Daniel Gurney, Dennis Ameling, Javier Spagnoletti, Jinoh Kang, Joey Salazar, Konrad Borowski, Marlon Rac Cambasis, Martin Schön, Michał Kępień, Nate Avers, Nipunn Koorapati, Rafael Silva, Robert Karszniewicz, Samuel Čavoj, Sean Barag, Sibo Dong, Simão Afonso, Sohom Datta, Thomas Koutcher, and Victor Engmark. Returning contributors who helped this release are as follows. Thanks for your continued support. Adam Spiers, Ævar Arnfjörð Bjarmason, Alex Vandiver, Arnout Engelen, brian m. carlson, Christian Couder, Chris. Webster, David Aguilar, Denton Liu, Derrick Stolee, Dimitriy Ryazantcev, Đoàn Trần Công Danh, Drew DeVault, Elijah Newren, Emily Shaffer, Eric Sunshine, Felipe Contreras, Han-Wen Nienhuys, Jeff Hostetler, Jeff King, Jiang Xin, Johannes Berg, Johannes Schindelin, Jonathan Tan, Josh Steadmon, Junio C Hamano, Kyle Meyer, Martin Ågren, Matheus Tavares, Nicolas Morey-Chaisemartin, Patrick Steinhardt, Peter Kaestle, Philippe Blain, Phillip Wood, Pranit Bauva, Pratyush Yadav, Ramsay Jones, Randall S. Becker, René Scharfe, Sergey Organov, Serg Tereshchenko, Srinidhi Kaushik, Stefan Haller, Štěpán Němec, SZEDER Gábor, and Taylor Blau. Git 2.30 Release Notes (draft) == Updates since v2.29 --- UI, Workflows & Features * Userdiff for PHP update. * Userdiff for Rust update. * Userdiff for CSS update. * The command line completion script (in contrib/) learned that "git stash show" takes the options "git diff" takes. * "git worktree list" now shows if each worktree is locked. This possibly may open us to show other kinds of states in the future. * "git maintenance", an extended big brother of "git gc", continues to evolve. * "git push --force-with-lease[=]" can easily be misused to lose commits unless the user takes good care of their own "git fetch". A new option "--force-if-includes" attempts to ensure that what is being force-pushed was created after examining the commit at the tip of the remote ref that is about to be force-replaced. * "git clone" learned clone.defaultremotename configuration variable to customize what nickname to use to call the remote the repository was cloned from. * "git checkout" learned to use checkout.guess configuration variable and enable/disable its "--[no-]guess" option accordingly. * "git resurrect" script (in contrib/) learned that the object names may be longer than 40-hex depending on the hash function in use. * "git diff A...B" learned "git diff --merge-base A B", which is a longer short-hand to say the same thing. * A sample 'push-to-checkout' hook, that performs the same as what the built-in default action does, has been added. * "git diff" family of commands learned the "-I" option to ignore hunks whose changed lines all match the given pattern. * The userdiff pattern learned to identify the function definition in POSIX shells and bash. * "git checkout-index" did not consistently signal an error with its exit status, but now it does. * A commit and tag object may have CR at the end of each and every line (you can create such an object with hash-object or using --cleanup=verbatim to decline the default clean-up action), but it would make it impossible to have a blank line to separate the title from the body of the message. We are now more lenient and accept a line with lone CR on it as a blank line, too. * Exit codes from "git remote add" etc. were not usable by scripted callers, but now they are. * "git archive" now allows compression level higher than "-9" when generating tar.gz output. * Zsh autocompletion (in contrib/) update. * The maximum length of output filenames "git format-patch" creates has become configurable (used to be capped at 64). * "git rev-parse" learned the "--end-of-options" to help scripts to safely take a param
[ANNOUNCE] Git v2.30.0-rc0
An early preview release Git v2.30.0-rc0 is now available for testing at the usual places. It is comprised of 413 non-merge commits since v2.29.0, contributed by 60 people, 25 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.30.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.29.0 are as follows. Welcome to the Git development community! Alexey, Amanda Shafack, Bradley M. Kuhn, Caleb Tillman, Charvi Mendiratta, Daniel Duvall, Daniel Gurney, Dennis Ameling, Javier Spagnoletti, Jinoh Kang, Joey Salazar, Konrad Borowski, Marlon Rac Cambasis, Michał Kępień, Nate Avers, Nipunn Koorapati, Rafael Silva, Robert Karszniewicz, Samuel Čavoj, Sean Barag, Sibo Dong, Simão Afonso, Sohom Datta, Thomas Koutcher, and Victor Engmark. Returning contributors who helped this release are as follows. Thanks for your continued support. Adam Spiers, Ævar Arnfjörð Bjarmason, Alex Vandiver, Arnout Engelen, brian m. carlson, Christian Couder, Chris. Webster, Denton Liu, Derrick Stolee, Drew DeVault, Elijah Newren, Emily Shaffer, Felipe Contreras, Han-Wen Nienhuys, Jeff King, Jiang Xin, Johannes Schindelin, Jonathan Tan, Josh Steadmon, Junio C Hamano, Kyle Meyer, Martin Ågren, Matheus Tavares, Nicolas Morey-Chaisemartin, Patrick Steinhardt, Peter Kaestle, Philippe Blain, Phillip Wood, Pranit Bauva, René Scharfe, Sergey Organov, Srinidhi Kaushik, Štěpán Němec, SZEDER Gábor, and Taylor Blau. Git 2.30 Release Notes (draft) == Updates since v2.29 --- UI, Workflows & Features * Userdiff for PHP update. * Userdiff for Rust update. * Userdiff for CSS update. * The command line completion script (in contrib/) learned that "git stash show" takes the options "git diff" takes. * "git worktree list" now shows if each worktree is locked. This possibly may open us to show other kinds of states in the future. * "git maintenance", an extended big brother of "git gc", continues to evolve. * "git push --force-with-lease[=]" can easily be misused to lose commits unless the user takes good care of their own "git fetch". A new option "--force-if-includes" attempts to ensure that what is being force-pushed was created after examining the commit at the tip of the remote ref that is about to be force-replaced. * "git clone" learned clone.defaultremotename configuration variable to customize what nickname to use to call the remote the repository was cloned from. * "git checkout" learned to use checkout.guess configuration variable and enable/disable its "--[no-]guess" option accordingly. * "git resurrect" script (in contrib/) learned that the object names may be longer than 40-hex depending on the hash function in use. * "git diff A...B" learned "git diff --merge-base A B", which is a longer short-hand to say the same thing. * A sample 'push-to-checkout' hook, that performs the same as what the built-in default action does, has been added. * "git diff" family of commands learned the "-I" option to ignore hunks whose changed lines all match the given pattern. * The userdiff pattern learned to identify the function definition in POSIX shells and bash. * "git checkout-index" did not consistently signal an error with its exit status, but now it does. * A commit and tag object may have CR at the end of each and every line (you can create such an object with hash-object or using --cleanup=verbatim to decline the default clean-up action), but it would make it impossible to have a blank line to separate the title from the body of the message. We are now more lenient and accept a line with lone CR on it as a blank line, too. * Exit codes from "git remote add" etc. were not usable by scripted callers, but now they are. * "git archive" now allows compression level higher than "-9" when generating tar.gz output. * Zsh autocompletion (in contrib/) update. * The maximum length of output filenames "git format-patch" creates has become configurable (used to be capped at 64). * "git rev-parse" learned the "--end-of-options" to help scripts to safely take a parameter that is supposed to be a revision, e.g. "git rev-parse --verify -q --end-of-options $rev". * The command line completion script (in contrib/) learned to expand commands th
[ANNOUNCE] Git v2.29.2
The latest maintenance release Git v2.29.2 is now available at the usual places. This is to fix the "--committer-date-is-author-date" feature of "rebase" that was completely broken in v2.29.0 release. The tarballs are found at: https://www.kernel.org/pub/software/scm/git/ The following public repositories all have a copy of the 'v2.29.2' tag and the 'maint' 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 Git v2.29.2 Release Notes = This release is primarily to fix brown-paper-bag breakages in the 2.29.0 release. Fixes since v2.29.1 --- * In 2.29, "--committer-date-is-author-date" option of "rebase" and "am" subcommands lost the e-mail address by mistake, which has been corrected. Changes since v2.29.1 are as follows: Christian Couder (1): filter-branch doc: fix filter-repo typo Jeff King (3): t3436: check --committer-date-is-author-date result more carefully am: fix broken email with --committer-date-is-author-date rebase: fix broken email with --committer-date-is-author-date Junio C Hamano (1): Git 2.29.2
[ANNOUNCE] Git v2.29.1
The latest maintenance release Git v2.29.1 is now available at the usual places. The change in this release affects only those who build from the source *and* install with a non-standard SKIP_DASHED_BUILT_INS option turned on. With the option turned on, Git 2.29 forgot to install a few programs in /usr/bin that made it unusable as the server side to accept pushes and fetches. To everybody else, this release is irrelevant and ignorable. We know about at least one other brown-paper-bag regression we are going to fix with another maintenance release, so it may be a better idea to wait for 2.29.2 for most people. The tarballs are found at: https://www.kernel.org/pub/software/scm/git/ The following public repositories all have a copy of the 'v2.29.1' tag and the 'maint' 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 Git v2.29.1 Release Notes = This is to fix the build procedure change in 2.29 where we failed to install a few programs that should be installed in /usr/bin (namely, receive-pack, upload-archive and upload-pack) when the non-default SKIP_DASHED_BUILT_INS installation option is in effect. A minor glitch in a non-default installation may usually not deserve a hotfix, but I think Git for Windows ship binaries built with this option, so let's make an exception. Changes since v2.29.0 are as follows: Johannes Schindelin (1): SKIP_DASHED_BUILT_INS: do not skip the bin/ programs Junio C Hamano (1): Git 2.29.1
[ANNOUNCE] Git v2.29.0
The latest feature release Git v2.29.0 is now available at the usual places. It is comprised of 627 non-merge commits since v2.28.0, contributed by 89 people, 24 of which are new faces. The tarballs are found at: https://www.kernel.org/pub/software/scm/git/ The following public repositories all have a copy of the 'v2.29.0' 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.28.0 are as follows. Welcome to the Git development community! Aaron Lipman, Adrian Moennich, Ákos Uzonyi, Antti Keränen, Christian Schlack, Conor Davis, Daniel Santos, Eric Huber, Evan Gates, Han Xin, Hugo Locurcio, Kyohei Kadota, Lin Sun, Nikita Leonov, Noam Yorav-Raphael, pudinha, Raymond E. Pasco, Ryan Zoeller, Samanta Navarro, Serg Tereshchenko, Sibi Siddharthan, Simon Legner, Steve Kemp, and Theodore Dubois. Returning contributors who helped this release are as follows. Thanks for your continued support. Ævar Arnfjörð Bjarmason, Alban Gruin, Alessandro Menti, Alexander Shopov, Alex Henrie, Alex Riesen, Andrei Rybak, Beat Bolli, Ben Wijen, brian m. carlson, Christian Couder, Chris Torek, Danny Lin, Denton Liu, Derrick Stolee, Đoàn Trần Công Danh, Drew DeVault, Edmundo Carmona Antoranz, Elijah Newren, Emily Shaffer, Emir Sarı, Eric Sunshine, Han-Wen Nienhuys, Hariom Verma, Jacob Keller, Jean-Noël Avila, Jeff Hostetler, Jeff King, Jiang Xin, Johannes Berg, Johannes Schindelin, Johannes Sixt, Jonathan Tan, Jordi Mas, Junio C Hamano, Kazuhiro Kato, Luke Diamand, Martin Ågren, Matheus Tavares, Matthew Rogers, Matthias Rüster, Michael Forney, Michal Privoznik, Miriam Rubio, Orgad Shaneh, Patrick Steinhardt, Paul Mackerras, Peter Krefting, Philippe Blain, Phillip Wood, Pranit Bauva, Prathamesh Chavan, Pratyush Yadav, René Scharfe, Rohit Ashiwal, Sergey Organov, Shourya Shukla, Stefan Dotterweich, Stefan Haller, SZEDER Gábor, Taylor Blau, Thomas Guyot-Sionnest, Trần Ngọc Quân, Yi-Jyun Pan, and Роман Донченко. Git 2.29 Release Notes == Updates since v2.28 --- UI, Workflows & Features * "git help log" has been enhanced by sharing more material from the documentation for the underlying "git rev-list" command. * "git for-each-ref --format=<>" learned %(contents:size). * "git merge" learned to selectively omit " into " at the end of the title of default merge message with merge.suppressDest configuration. * The component to respond to "git fetch" request is made more configurable to selectively allow or reject object filtering specification used for partial cloning. * Stop when "sendmail.*" configuration variables are defined, which could be a mistaken attempt to define "sendemail.*" variables. * The existing backends for "git mergetool" based on variants of vim have been refactored and then support for "nvim" has been added. * "git bisect" learns the "--first-parent" option to find the first breakage along the first-parent chain. * "git log --first-parent -p" showed patches only for single-parent commits on the first-parent chain; the "--first-parent" option has been made to imply "-m". Use "--no-diff-merges" to restore the previous behaviour to omit patches for merge commits. * The commit labels used to explain each side of conflicted hunks placed by the sequencer machinery have been made more readable by humans. * The "--batch-size" option of "git multi-pack-index repack" command is now used to specify that very small packfiles are collected into one until the total size roughly exceeds it. * The recent addition of SHA-256 support is marked as experimental in the documentation. * "git fetch" learned --no-write-fetch-head option to avoid writing the FETCH_HEAD file. * Command line completion (in contrib/) usually omits redundant, deprecated and/or dangerous options from its output; it learned to optionally include all of them. * The output from the "diff" family of the commands had abbreviated object names of blobs involved in the patch, but its length was not affected by the --abbrev option. Now it is. * "git worktree" gained a "repair" subcommand to help users recover after moving the worktrees or repository manually without telling Git. Also, "git init --separate-git-dir" no longer corrupts administrative data related to linked worktrees. * The "--format=" option to the "for-each-ref" command and friends learned a few more tri
[ANNOUNCE] Git v2.29.0-rc2
ss the protocol options to instances of the "git fetch" that talk to individual remotes, which has been corrected. (merge 4e735c1326 ar/fetch-ipversion-in-all later to maint). * The "unshelve" subcommand of "git p4" incorrectly used commit^N where it meant to say commit~N to name the Nth generation ancestor, which has been corrected. (merge 0acbf5997f ld/p4-unshelve-fix later to maint). * "git clone" that clones from SHA-1 repository, while GIT_DEFAULT_HASH set to use SHA-256 already, resulted in an unusable repository that half-claims to be SHA-256 repository with SHA-1 objects and refs. This has been corrected. * Adjust sample hooks for hash algorithm other than SHA-1. (merge d8d3d632f4 dl/zero-oid-in-hooks later to maint). * "git range-diff" showed incorrect diffstat, which has been corrected. * Earlier we taught "git pull" to warn when the user does not say the histories need to be merged, rebased or accepts only fast- forwarding, but the warning triggered for those who have set the pull.ff configuration variable. (merge 54200cef86 ah/pull later to maint). * Compilation fix around type punning. (merge 176380fd11 jk/drop-unaligned-loads later to maint). * "git blame --ignore-rev/--ignore-revs-file" failed to validate their input are valid revision, and failed to take into account that the user may want to give an annotated tag instead of a commit, which has been corrected. (merge 610e2b9240 jc/blame-ignore-fix later to maint). * "git bisect start X Y", when X and Y are not valid committish object names, should take X and Y as pathspec, but didn't. (merge 73c6de06af cc/bisect-start-fix later to maint). * The explanation of the "scissors line" has been clarified. (merge 287416dba6 eg/mailinfo-doc-scissors later to maint). * A race that leads to an access to a free'd data was corrected in the codepath that reads pack files. (merge bda959c476 mt/delta-base-cache-races later to maint). * in_merge_bases_many(), a way to see if a commit is reachable from any commit in a set of commits, was totally broken when the commit-graph feature was in use, which has been corrected. (merge 8791bf1841 ds/in-merge-bases-many-optim-bug later to maint). * "git submodule update --quiet" did not squelch underlying "rebase" and "pull" commands. (merge 3ad0401e9e td/submodule-update-quiet later to maint). * The lazy fetching done internally to make missing objects available in a partial clone incorrectly made permanent damage to the partial clone filter in the repository, which has been corrected. * "log -c --find-object=X" did not work well to find a merge that involves a change to an object X from only one parent. (merge 957876f17d jk/diff-cc-oidfind-fix later to maint). * Other code cleanup, docfix, build fix, etc. (merge 84544f2ea3 sk/typofixes later to maint). (merge b17f411ab5 ar/help-guides-doc later to maint). (merge 98c6871fad rs/grep-simpler-parse-object-or-die-call later to maint). (merge 861c4ce141 en/typofixes later to maint). (merge 60e47f6773 sg/ci-git-path-fix-with-pyenv later to maint). (merge e2bfa50ac3 jb/doc-packfile-name later to maint). (merge 918d8ff780 es/worktree-cleanup later to maint). (merge dc156bc31f ma/t1450-quotefix later to maint). (merge 56e743426b en/merge-recursive-comment-fixes later to maint). (merge 7d23ff818f rs/bisect-oid-to-hex-fix later to maint). (merge de20baf2c9 ny/notes-doc-sample-update later to maint). (merge f649aaaf82 so/rev-parser-errormessage-fix later to maint). (merge 6103d58b7f bc/sha-256-cvs-svn-updates later to maint). (merge ac900fddb7 ma/stop-progress-null-fix later to maint). (merge e767963ab6 rs/upload-pack-sigchain-fix later to maint). (merge a831908599 rs/preserve-merges-unused-code-removal later to maint). (merge 6dfefe70a9 jb/commit-graph-doc-fix later to maint). (merge 847b37271e pb/set-url-docfix later to maint). (merge 748f733d54 mt/checkout-entry-dead-code-removal later to maint). (merge ce820cbd58 dl/subtree-docs later to maint). (merge 55fe225dde jk/leakfix later to maint). (merge ee22a29215 so/pretty-abbrev-doc later to maint). (merge 3100fd5588 jc/post-checkout-doc later to maint). (merge 17bae89476 pb/doc-external-diff-env later to maint). (merge 27ed6ccc12 jk/worktree-check-clean-leakfix later to maint). (merge 1302badd16 ea/blame-use-oideq later to maint). (merge e6d5a11fed al/t3200-back-on-a-branch later to maint). (merge 324efcf6b6 pw/add-p-leakfix later to maint). (merge 1c6ffb546b jk/add-i-fixes later to maint). (merge e40e936551 cd/commit-graph-doc later to maint). (merge 0512eabd91 jc/sequencer-stopped-sha-simplify later to maint). (merge d01141de5a so/combine-diff-simplify later to maint). (merge 3be01e5ab1 sn/fast-import-doc later to maint). Changes since v2.29.0-rc1 are as follows: Junio C Hamano (1): Git 2.29-rc2
[ANNOUNCE] Git v2.29.0-rc1
A release candidate Git v2.29.0-rc1 is now available for testing at the usual places. It is comprised of 605 non-merge commits since v2.28.0, contributed by 77 people, 22 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.29.0-rc1' 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.28.0 are as follows. Welcome to the Git development community! Aaron Lipman, Adrian Moennich, Ákos Uzonyi, Antti Keränen, Christian Schlack, Conor Davis, Eric Huber, Evan Gates, Han Xin, Hugo Locurcio, Kyohei Kadota, Lin Sun, Nikita Leonov, Noam Yorav-Raphael, pudinha, Raymond E. Pasco, Ryan Zoeller, Samanta Navarro, Sibi Siddharthan, Simon Legner, Steve Kemp, and Theodore Dubois. Returning contributors who helped this release are as follows. Thanks for your continued support. Ævar Arnfjörð Bjarmason, Alban Gruin, Alex Henrie, Alex Riesen, Andrei Rybak, Beat Bolli, Ben Wijen, brian m. carlson, Christian Couder, Chris Torek, Danny Lin, Denton Liu, Derrick Stolee, Đoàn Trần Công Danh, Drew DeVault, Edmundo Carmona Antoranz, Elijah Newren, Emily Shaffer, Eric Sunshine, Han-Wen Nienhuys, Hariom Verma, Jacob Keller, Jean-Noël Avila, Jeff Hostetler, Jeff King, Jiang Xin, Johannes Berg, Johannes Schindelin, Johannes Sixt, Jonathan Tan, Junio C Hamano, Kazuhiro Kato, Luke Diamand, Martin Ågren, Matheus Tavares, Matthew Rogers, Michael Forney, Michal Privoznik, Miriam Rubio, Orgad Shaneh, Patrick Steinhardt, Paul Mackerras, Philippe Blain, Phillip Wood, Pranit Bauva, Prathamesh Chavan, René Scharfe, Rohit Ashiwal, Sergey Organov, Shourya Shukla, Stefan Dotterweich, SZEDER Gábor, Taylor Blau, Thomas Guyot-Sionnest, and Роман Донченко. Git 2.29 Release Notes (draft) == Updates since v2.28 --- UI, Workflows & Features * "git help log" has been enhanced by sharing more material from the documentation for the underlying "git rev-list" command. * "git for-each-ref --format=<>" learned %(contents:size). * "git merge" learned to selectively omit " into " at the end of the title of default merge message with merge.suppressDest configuration. * The component to respond to "git fetch" request is made more configurable to selectively allow or reject object filtering specification used for partial cloning. * Stop when "sendmail.*" configuration variables are defined, which could be a mistaken attempt to define "sendemail.*" variables. * The existing backends for "git mergetool" based on variants of vim have been refactored and then support for "nvim" has been added. * "git bisect" learns the "--first-parent" option to find the first breakage along the first-parent chain. * "git log --first-parent -p" showed patches only for single-parent commits on the first-parent chain; the "--first-parent" option has been made to imply "-m". Use "--no-diff-merges" to restore the previous behaviour to omit patches for merge commits. * The commit labels used to explain each side of conflicted hunks placed by the sequencer machinery have been made more readable by humans. * The "--batch-size" option of "git multi-pack-index repack" command is now used to specify that very small packfiles are collected into one until the total size roughly exceeds it. * The recent addition of SHA-256 support is marked as experimental in the documentation. * "git fetch" learned --no-write-fetch-head option to avoid writing the FETCH_HEAD file. * Command line completion (in contrib/) usually omits redundant, deprecated and/or dangerous options from its output; it learned to optionally include all of them. * The output from the "diff" family of the commands had abbreviated object names of blobs involved in the patch, but its length was not affected by the --abbrev option. Now it is. * "git worktree" gained a "repair" subcommand to help users recover after moving the worktrees or repository manually without telling Git. Also, "git init --separate-git-dir" no longer corrupts administrative data related to linked worktrees. * The "--format=" option to the "for-each-ref" command and friends learned a few more tricks, e.g. the ":short" suffix that applies to "objectname" now also can be used for "parent", "tree", etc.
Re: [ANNOUNCE] Git v2.29.0-rc0
Martin Ågren writes: > Minor comments follow. > ... > s/used // (without 'g' flag!) Thanks.
[ANNOUNCE] Git v2.29.0-rc0
An early preview release Git v2.29.0-rc0 is now available for testing at the usual places. It is comprised of 588 non-merge commits since v2.28.0, contributed by 76 people, 22 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.29.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.28.0 are as follows. Welcome to the Git development community! Aaron Lipman, Adrian Moennich, Ákos Uzonyi, Antti Keränen, Christian Schlack, Conor Davis, Eric Huber, Evan Gates, Han Xin, Hugo Locurcio, Kyohei Kadota, Lin Sun, Nikita Leonov, Noam Yorav-Raphael, pudinha, Raymond E. Pasco, Ryan Zoeller, Samanta Navarro, Sibi Siddharthan, Simon Legner, Steve Kemp, and Theodore Dubois. Returning contributors who helped this release are as follows. Thanks for your continued support. Ævar Arnfjörð Bjarmason, Alban Gruin, Alex Henrie, Alex Riesen, Andrei Rybak, Beat Bolli, Ben Wijen, brian m. carlson, Christian Couder, Chris Torek, Danny Lin, Denton Liu, Derrick Stolee, Đoàn Trần Công Danh, Drew DeVault, Edmundo Carmona Antoranz, Elijah Newren, Emily Shaffer, Eric Sunshine, Han-Wen Nienhuys, Hariom Verma, Jacob Keller, Jeff Hostetler, Jeff King, Jiang Xin, Johannes Berg, Johannes Schindelin, Johannes Sixt, Jonathan Tan, Junio C Hamano, Kazuhiro Kato, Luke Diamand, Martin Ågren, Matheus Tavares, Matthew Rogers, Michael Forney, Michal Privoznik, Miriam Rubio, Orgad Shaneh, Patrick Steinhardt, Paul Mackerras, Philippe Blain, Phillip Wood, Pranit Bauva, Prathamesh Chavan, René Scharfe, Rohit Ashiwal, Sergey Organov, Shourya Shukla, Stefan Dotterweich, SZEDER Gábor, Taylor Blau, Thomas Guyot-Sionnest, and Роман Донченко. Git 2.29 Release Notes (draft) == Updates since v2.28 --- UI, Workflows & Features * "git help log" has been enhanced by sharing more material from the documentation for the underlying "git rev-list" command. * "git for-each-ref --format=<>" learned %(contents:size). * "git merge" learned to selectively omit " into " at the end of the title of default merge message with merge.suppressDest configuration. * The component to respond to "git fetch" request is made more configurable to selectively allow or reject object filtering specification used for partial cloning. * Stop when "sendmail.*" configuration variables are defined, which could be a mistaken attempt to define "sendemail.*" variables. * The existing backends for "git mergetool" based on variants of vim have been refactored and then support for "nvim" has been added. * "git bisect" learns the "--first-parent" option to find the first breakage along the first-parent chain. * "git log --first-parent -p" showed patches only for single-parent commits on the first-parent chain; the "--first-parent" option has been made to imply "-m". Use "--no-diff-merges" to restore the previous behaviour to omit patches for merge commits. * The commit labels used to explain each side of conflicted hunks placed by the sequencer machinery have been made more readable by humans. * The "--batch-size" option of "git multi-pack-index repack" command is now used to specify that very small packfiles are collected into one until the total size roughly exceeds it. * The recent addition of SHA-256 support is marked as experimental in the documentation. * "git fetch" learned --no-write-fetch-head option to avoid writing the FETCH_HEAD file. * Command line completion (in contrib/) usually omits redundant, deprecated and/or dangerous options from its output; it learned to optionally include all of them. * The output from the "diff" family of the commands had abbreviated object names of blobs involved in the patch, but its length was not affected by the --abbrev option. Now it is. * "git worktree" gained a "repair" subcommand to help users recover after moving the worktrees or repository manually without telling Git. Also, "git init --separate-git-dir" no longer corrupts administrative data related to linked worktrees. * The "--format=" option to the "for-each-ref" command and friends learned a few more tricks, e.g. the ":short" suffix that applies to "objectname" now also can be used for "parent", "tree", etc. * "git wor
[ANNOUNCE] Git v2.28.0
The latest feature release Git v2.28.0 is now available at the usual places. It is comprised of 317 non-merge commits since v2.27.0, contributed by 58 people, 13 of which are new faces. It is smaller than the releases in our recent past, mostly due to the development cycle was near the shorter end of the spectrum (our cycles last 8-12 weeks and this was a rare 8-week cycle). The tarballs are found at: https://www.kernel.org/pub/software/scm/git/ The following public repositories all have a copy of the 'v2.28.0' 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.27.0 are as follows. Welcome to the Git development community! Andrew Ng, Bojun Chen, Chris Torek, David J. Malan, Don Goodman-Wilson, Jiuyang Xie, Luc Van Oostenryck, Marco Trevisan (Treviño), Mikhail Terekhov, Miroslav Koškár, Rafael Aquini, Srinidhi Kaushik, and Trygve Aaberge. Returning contributors who helped this release are as follows. Thanks for your continued support. Abhishek Kumar, Alessandro Menti, Ben Keene, brian m. carlson, Carlo Marcelo Arenas Belón, Christian Couder, Christopher Diaz Riveros, Denton Liu, Derrick Stolee, Đoàn Trần Công Danh, Elijah Newren, Emily Shaffer, Emir Sarı, Eric Sunshine, Han-Wen Nienhuys, Jacob Keller, Jean-Noël Avila, Jeff King, Jiang Xin, Johannes Schindelin, John Lin, Jonathan Nieder, Jonathan Tan, Jordi Mas, Josh Steadmon, Junio C Hamano, Laurent Arnoud, Martin Ågren, Matheus Tavares, Matthias Rüster, Paolo Bonzini, Patrick Steinhardt, Peter Krefting, Pratyush Yadav, Ralf Thielow, Ramsay Jones, Randall S. Becker, René Scharfe, Shourya Shukla, SZEDER Gábor, Taylor Blau, Trần Ngọc Quân, Ville Skyttä, Xin Li, and Yi-Jyun Pan. Git 2.28 Release Notes == Updates since v2.27 --- Backward compatibility notes * "fetch.writeCommitGraph" is deemed to be still a bit too risky and is no longer part of the "feature.experimental" set. UI, Workflows & Features * The commands in the "diff" family learned to honor "diff.relative" configuration variable. * The check in "git fsck" to ensure that the tree objects are sorted still had corner cases it missed unsorted entries. * The interface to redact sensitive information in the trace output has been simplified. * The command line completion (in contrib/) learned to complete options that the "git switch" command takes. * "git diff" used to take arguments in random and nonsense range notation, e.g. "git diff A..B C", "git diff A..B C...D", etc., which has been cleaned up. * "git diff-files" has been taught to say paths that are marked as intent-to-add are new files, not modified from an empty blob. * "git status" learned to report the status of sparse checkout. * "git difftool" has trouble dealing with paths added to the index with the intent-to-add bit. * "git fast-export --anonymize" learned to take customized mapping to allow its users to tweak its output more usable for debugging. * The command line completion support (in contrib/) used to be prepared to work with "set -u" but recent changes got a bit more sloppy. This has been corrected. * "git gui" now allows opening work trees from the start-up dialog. Performance, Internal Implementation, Development Support etc. * Code optimization for a common case. (merge 8777616e4d an/merge-single-strategy-optim later to maint). * We've adopted a convention that any on-stack structure can be initialized to have zero values in all fields with "= { 0 }", even when the first field happens to be a pointer, but sparse complained that a null pointer should be spelled NULL for a long time. Start using -Wno-universal-initializer option to squelch it (the latest sparse has it on by default). * "git log -L..." now takes advantage of the "which paths are touched by this commit?" info stored in the commit-graph system. * As FreeBSD is not the only platform whose regexp library reports a REG_ILLSEQ error when fed invalid UTF-8, add logic to detect that automatically and skip the affected tests. * "git bugreport" learns to report what shell is in use. * Support for GIT_CURL_VERBOSE has been rewritten in terms of GIT_TRACE_CURL. * Preliminary clean-ups around refs API, plus file format specification documentation for the reftable backend. * Workaround breakage in MSVC build, where "curl-config --cflags" gives settings appropriate for GCC build. * Code clean-up of "git clean" resulted
[ANNOUNCE] Git v2.28.0-rc2
A release candidate Git v2.28.0-rc2 is now available for testing at the usual places. It is comprised of 301 non-merge commits since v2.27.0, contributed by 46 people, 12 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.28.0-rc2' 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.27.0 are as follows. Welcome to the Git development community! Andrew Ng, Chris Torek, David J. Malan, Don Goodman-Wilson, Jiuyang Xie, Luc Van Oostenryck, Marco Trevisan (Treviño), Mikhail Terekhov, Miroslav Koškár, Rafael Aquini, Srinidhi Kaushik, and Trygve Aaberge. Returning contributors who helped this release are as follows. Thanks for your continued support. Abhishek Kumar, Ben Keene, brian m. carlson, Carlo Marcelo Arenas Belón, Christian Couder, Denton Liu, Derrick Stolee, Đoàn Trần Công Danh, Elijah Newren, Emily Shaffer, Eric Sunshine, Han-Wen Nienhuys, Jacob Keller, Jeff King, Johannes Schindelin, John Lin, Jonathan Nieder, Jonathan Tan, Josh Steadmon, Junio C Hamano, Laurent Arnoud, Martin Ågren, Matheus Tavares, Paolo Bonzini, Patrick Steinhardt, Pratyush Yadav, Ramsay Jones, Randall S. Becker, René Scharfe, Shourya Shukla, SZEDER Gábor, Taylor Blau, Ville Skyttä, and Xin Li. Git 2.28 Release Notes (draft) == Updates since v2.27 --- Backward compatibility notes * "fetch.writeCommitGraph" is deemed to be still a bit too risky and is no longer part of the "feature.experimental" set. UI, Workflows & Features * The commands in the "diff" family learned to honor "diff.relative" configuration variable. * The check in "git fsck" to ensure that the tree objects are sorted still had corner cases it missed unsorted entries. * The interface to redact sensitive information in the trace output has been simplified. * The command line completion (in contrib/) learned to complete options that the "git switch" command takes. * "git diff" used to take arguments in random and nonsense range notation, e.g. "git diff A..B C", "git diff A..B C...D", etc., which has been cleaned up. * "git diff-files" has been taught to say paths that are marked as intent-to-add are new files, not modified from an empty blob. * "git status" learned to report the status of sparse checkout. * "git difftool" has trouble dealing with paths added to the index with the intent-to-add bit. * "git fast-export --anonymize" learned to take customized mapping to allow its users to tweak its output more usable for debugging. * The command line completion support (in contrib/) used to be prepared to work with "set -u" but recent changes got a bit more sloppy. This has been corrected. * "git gui" now allows opening work trees from the start-up dialog. Performance, Internal Implementation, Development Support etc. * Code optimization for a common case. (merge 8777616e4d an/merge-single-strategy-optim later to maint). * We've adopted a convention that any on-stack structure can be initialized to have zero values in all fields with "= { 0 }", even when the first field happens to be a pointer, but sparse complained that a null pointer should be spelled NULL for a long time. Start using -Wno-universal-initializer option to squelch it (the latest sparse has it on by default). * "git log -L..." now takes advantage of the "which paths are touched by this commit?" info stored in the commit-graph system. * As FreeBSD is not the only platform whose regexp library reports a REG_ILLSEQ error when fed invalid UTF-8, add logic to detect that automatically and skip the affected tests. * "git bugreport" learns to report what shell is in use. * Support for GIT_CURL_VERBOSE has been rewritten in terms of GIT_TRACE_CURL. * Preliminary clean-ups around refs API, plus file format specification documentation for the reftable backend. * Workaround breakage in MSVC build, where "curl-config --cflags" gives settings appropriate for GCC build. * Code clean-up of "git clean" resulted in a fix of recent performance regression. * Code clean-up in the codepath that serves "git fetch" continues. * "git merge-base --is-ancestor" is taught to take advantage of the commit graph. * Rewrite of parts of the scripted "git submodule" Porcelain command continues; this time it is "git sub
[ANNOUNCE] Git v2.28.0-rc1
A release candidate Git v2.28.0-rc1 is now available for testing at the usual places. It is comprised of 295 non-merge commits since v2.27.0, contributed by 43 people, 10 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.28.0-rc1' 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.27.0 are as follows. Welcome to the Git development community! Andrew Ng, Chris Torek, Don Goodman-Wilson, Jiuyang Xie, Luc Van Oostenryck, Marco Trevisan (Treviño), Miroslav Koškár, Rafael Aquini, Srinidhi Kaushik, and Trygve Aaberge. Returning contributors who helped this release are as follows. Thanks for your continued support. Abhishek Kumar, Ben Keene, brian m. carlson, Carlo Marcelo Arenas Belón, Christian Couder, Denton Liu, Derrick Stolee, Đoàn Trần Công Danh, Elijah Newren, Emily Shaffer, Eric Sunshine, Han-Wen Nienhuys, Jacob Keller, Jeff King, Johannes Schindelin, John Lin, Jonathan Nieder, Jonathan Tan, Josh Steadmon, Junio C Hamano, Laurent Arnoud, Martin Ågren, Matheus Tavares, Paolo Bonzini, Patrick Steinhardt, Ramsay Jones, Randall S. Becker, René Scharfe, Shourya Shukla, SZEDER Gábor, Taylor Blau, Ville Skyttä, and Xin Li. Git 2.28 Release Notes (draft) == Updates since v2.27 --- Backward compatibility notes * "fetch.writeCommitGraph" is deemed to be still a bit too risky and is no longer part of the "feature.experimental" set. UI, Workflows & Features * The commands in the "diff" family learned to honor "diff.relative" configuration variable. * The check in "git fsck" to ensure that the tree objects are sorted still had corner cases it missed unsorted entries. * The interface to redact sensitive information in the trace output has been simplified. * The command line completion (in contrib/) learned to complete options that the "git switch" command takes. * "git diff" used to take arguments in random and nonsense range notation, e.g. "git diff A..B C", "git diff A..B C...D", etc., which has been cleaned up. * "git diff-files" has been taught to say paths that are marked as intent-to-add are new files, not modified from an empty blob. * "git status" learned to report the status of sparse checkout. * "git difftool" has trouble dealing with paths added to the index with the intent-to-add bit. * "git fast-export --anonymize" learned to take customized mapping to allow its users to tweak its output more usable for debugging. * The command line completion support (in contrib/) used to be prepared to work with "set -u" but recent changes got a bit more sloppy. This has been corrected. Performance, Internal Implementation, Development Support etc. * Code optimization for a common case. (merge 8777616e4d an/merge-single-strategy-optim later to maint). * We've adopted a convention that any on-stack structure can be initialized to have zero values in all fields with "= { 0 }", even when the first field happens to be a pointer, but sparse complained that a null pointer should be spelled NULL for a long time. Start using -Wno-universal-initializer option to squelch it (the latest sparse has it on by default). * "git log -L..." now takes advantage of the "which paths are touched by this commit?" info stored in the commit-graph system. * As FreeBSD is not the only platform whose regexp library reports a REG_ILLSEQ error when fed invalid UTF-8, add logic to detect that automatically and skip the affected tests. * "git bugreport" learns to report what shell is in use. * Support for GIT_CURL_VERBOSE has been rewritten in terms of GIT_TRACE_CURL. * Preliminary clean-ups around refs API, plus file format specification documentation for the reftable backend. * Workaround breakage in MSVC build, where "curl-config --cflags" gives settings appropriate for GCC build. * Code clean-up of "git clean" resulted in a fix of recent performance regression. * Code clean-up in the codepath that serves "git fetch" continues. * "git merge-base --is-ancestor" is taught to take advantage of the commit graph. * Rewrite of parts of the scripted "git submodule" Porcelain command continues; this time it is "git submodule set-branch" subcommand's turn. * The "fetch/clone" protocol has been updated to allow the server to in
Re: [ANNOUNCE] Git v2.28.0-rc0
Derrick Stolee writes: > On 7/9/2020 5:40 PM, Junio C Hamano wrote: >> An early preview release Git v2.28.0-rc0 is now available for >> testing at the usual places. > > This might be part of your new process, or it might be an > oversight. It seems that GIT-VERSION-GEN did not update with > this RC, so the built version will still have a 2.27 start [1]. > > This differs from previous rc's [2]. Sorry, I screwed up. Thanks for a set of sharp eyes. I however think that there is no practical problem other than for those who "grep DEF_VER GIT-VERSION-GEN" and base their action on the result. If somebody is building from the tarball created by "make dist" (be it done by me and uploaded to k.org or done by somebody else from a clone of my repository), there would be the "version" file included in the tarball that would override the DEF_VER setting in GIT_VERION_GEN. If somebody is building from a clone of my repository, GIT_VERSION_GEN runs "git describe" to find out which version it is, without using DEF_VER. The only three unrealistic classes of users that may be affected are: - The ones that single-branch cloned from me _with_ --no-tags, so that "git describe" is run but cannot find what version it is. - The ones that _somehow_ cloned from me _without_ having any version of git that can run "git describe" in the repository. - The ones that receives a tarball that was created by running "make dist" in the directory that resulted from extracting the official tarball and then removed the ./version file included in the official tarball. For the people in the first two classes, GIT-VERSION-GEN would fail to use "git describe" to find which version it is building, and end up using DEF_VER. We can call the third kind a crippled/sabotaged tarball---without the involvement of the person who extracted the official tarball, munged the resulting directory and then made a different tarball by running "make dist" in it, the builders would not see DEF_VAR being wrong. Thanks anyway. I'll try to be more careful when tagging -rc1
[ANNOUNCE] Git v2.28.0-rc0
An early preview release Git v2.28.0-rc0 is now available for testing at the usual places. It is comprised of 284 non-merge commits since v2.27.0, contributed by 42 people, 9 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.28.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.27.0 are as follows. Welcome to the Git development community! Andrew Ng, Chris Torek, Don Goodman-Wilson, Jiuyang Xie, Luc Van Oostenryck, Marco Trevisan (Treviño), Miroslav Koškár, Rafael Aquini, and Srinidhi Kaushik. Returning contributors who helped this release are as follows. Thanks for your continued support. Abhishek Kumar, Ben Keene, brian m. carlson, Carlo Marcelo Arenas Belón, Christian Couder, Denton Liu, Derrick Stolee, Đoàn Trần Công Danh, Elijah Newren, Emily Shaffer, Eric Sunshine, Han-Wen Nienhuys, Jacob Keller, Jeff King, Johannes Schindelin, John Lin, Jonathan Nieder, Jonathan Tan, Josh Steadmon, Junio C Hamano, Laurent Arnoud, Martin Ågren, Matheus Tavares, Paolo Bonzini, Patrick Steinhardt, Ramsay Jones, Randall S. Becker, René Scharfe, Shourya Shukla, SZEDER Gábor, Taylor Blau, Ville Skyttä, and Xin Li. Git 2.28 Release Notes (draft) == Updates since v2.27 --- Backward compatibility notes * "fetch.writeCommitGraph" is deemed to be still a bit too risky and is no longer part of the "feature.experimental" set. * It used to be that setting extensions.* configuration variables alone, while leaving core.repositoryFormatVersion=0, made these settings effective, which was a wrong thing to do. In version 0, there was no special meaning in extensions.* configuration variables. This has been corrected. If you need these repository extensions to be effective, the core.repositoryFormatVersion variable needs to be updated to 1 after vetting these extensions.* variables are set correctly. UI, Workflows & Features * The commands in the "diff" family learned to honor "diff.relative" configuration variable. * The check in "git fsck" to ensure that the tree objects are sorted still had corner cases it missed unsorted entries. * The interface to redact sensitive information in the trace output has been simplified. * The command line completion (in contrib/) learned to complete options that the "git switch" command takes. * "git diff" used to take arguments in random and nonsense range notation, e.g. "git diff A..B C", "git diff A..B C...D", etc., which has been cleaned up. * "git diff-files" has been taught to say paths that are marked as intent-to-add are new files, not modified from an empty blob. * "git status" learned to report the status of sparse checkout. * "git difftool" has trouble dealing with paths added to the index with the intent-to-add bit. * "git fast-export --anonymize" learned to take customized mapping to allow its users to tweak its output more usable for debugging. * The command line completion support (in contrib/) used to be prepared to work with "set -u" but recent changes got a bit more sloppy. This has been corrected. Performance, Internal Implementation, Development Support etc. * Code optimization for a common case. (merge 8777616e4d an/merge-single-strategy-optim later to maint). * We've adopted a convention that any on-stack structure can be initialized to have zero values in all fields with "= { 0 }", even when the first field happens to be a pointer, but sparse complained that a null pointer should be spelled NULL for a long time. Start using -Wno-universal-initializer option to squelch it (the latest sparse has it on by default). * "git log -L..." now takes advantage of the "which paths are touched by this commit?" info stored in the commit-graph system. * As FreeBSD is not the only platform whose regexp library reports a REG_ILLSEQ error when fed invalid UTF-8, add logic to detect that automatically and skip the affected tests. * "git bugreport" learns to report what shell is in use. * Support for GIT_CURL_VERBOSE has been rewritten in terms of GIT_TRACE_CURL. * Preliminary clean-ups around refs API, plus file format specification documentation for the reftable backend. * Workaround breakage in MSVC build, where "curl-config --cflags" gives settings appropriate for GCC build. * Code clean-up of "git clean"
[ANNOUNCE] Git v2.27.0
The latest feature release Git v2.27.0 is now available at the usual places. It is comprised of 537 non-merge commits since v2.26.0, contributed by 71 people, 19 of which are new faces. The tarballs are found at: https://www.kernel.org/pub/software/scm/git/ The following public repositories all have a copy of the 'v2.27.0' 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.26.0 are as follows. Welcome to the Git development community! Andras Kucsma, Ansgar Röber, Ash Holland, Christopher Warrington, Emma Brooks, Jan Engelhardt, Jessica Clarke, Jorge Lopez Silva, Julien Moutinho, Li Xuejiang, luciano.ro...@booking.com, Matthias Aßhauer, Michael F. Schönitzer, Nathan Sanders, Son Luong Ngoc, Terry Moschou, Toon Claes, Vasil Dimov, and Yang Zhao. Returning contributors who helped this release are as follows. Thanks for your continued support. 마누엘, Abhishek Kumar, Alban Gruin, Alessandro Menti, Alexander Shopov, Alexandr Miloslavskiy, Alex Henrie, Andrei Rybak, Andrew Oakley, Ben Keene, brian m. carlson, Carlo Marcelo Arenas Belón, Christian Couder, Christopher Diaz Riveros, Damien Robert, Denton Liu, Derrick Stolee, Đoàn Trần Công Danh, Elijah Newren, Emily Shaffer, Emir Sarı, Eric Sunshine, Garima Singh, Greg Price, Hans Jerry Illikainen, Heba Waly, Ismael Luceno, Jean-Noël Avila, Jeff King, Jiang Xin, Johannes Schindelin, Jonathan Nieder, Jonathan Tan, Jordi Mas, Josh Steadmon, Junio C Hamano, Martin Ågren, Matheus Tavares, Matthias Rüster, Patrick Steinhardt, Peter Krefting, Philippe Blain, Phillip Wood, Pratyush Yadav, René Scharfe, Shourya Shukla, SZEDER Gábor, Taylor Blau, Thomas Gummerer, Todd Zullinger, Trần Ngọc Quân, and Yi-Jyun Pan. Git 2.27 Release Notes == Updates since v2.26 --- Backward compatibility notes * When "git describe C" finds that commit C is pointed by a signed or annotated tag, which records T as its tagname in the object, the command gives T as its answer. Even if the user renames or moves such a tag from its natural location in the "refs/tags/" hierarchy, "git describe C" would still give T as the answer, but in such a case "git show T^0" would no longer work as expected. There may be nothing at "refs/tags/T" or even worse there may be a different tag instead. Starting from this version, "git describe" will always use the "long" version, as if the "--long" option were given, when giving its output based on such a misplaced tag to work around the problem. * "git pull" issues a warning message until the pull.rebase configuration variable is explicitly given, which some existing users may find annoying---those who prefer not to rebase need to set the variable to false to squelch the warning. * The transport protocol version 2, which was promoted to the default in Git 2.26 release, turned out to have some remaining rough edges, so it has been demoted from the default. UI, Workflows & Features * A handful of options to configure SSL when talking to proxies have been added. * Smudge/clean conversion filters are now given more information (e.g. the object of the tree-ish in which the blob being converted appears, in addition to its path, which has already been given). * When "git describe C" finds an annotated tag with tagname A to be the best name to explain commit C, and the tag is stored in a "wrong" place in the refs/tags hierarchy, e.g. refs/tags/B, the command gave a warning message but used A (not B) to describe C. If C is exactly at the tag, the describe output would be "A", but "git rev-parse A^0" would not be equal as "git rev-parse C^0". The behavior of the command has been changed to use the "long" form i.e. A-0-gOBJECTNAME, which is correctly interpreted by rev-parse. * "git pull" learned to warn when no pull.rebase configuration exists, and neither --[no-]rebase nor --ff-only is given (which would result a merge). * "git p4" learned four new hooks and also "--no-verify" option to bypass them (and the existing "p4-pre-submit" hook). * "git pull" shares many options with underlying "git fetch", but some of them were not documented and some of those that would make sense to pass down were not passed down. * "git rebase" learned the "--no-gpg-sign" option to countermand commit.gpgSign the user may have. * The output from "git format-patch" uses RFC 2047 encoding for non-ASCII lett
Re: [ANNOUNCE] Git v2.27.0-rc2
Pratyush Yadav writes: > On 26/05/20 11:47AM, Junio C Hamano wrote: >> A release candidate Git v2.27.0-rc2 is now available for testing >> at the usual places. It is comprised of 509 non-merge commits >> since v2.26.0, contributed by 59 people, 17 of which are new faces. >> >> Changes since v2.26.0 are as follows: >> >> Ansgar Röber (1): >> Subject: git-gui: fix syntax error because of missing semicolon > > Looks like I messed up somewhere and left the "Subject: " in there. Its > too late to do anything about it now I guess... Yup, indeed you did ;-) But we all make mistakes and learn from the ones we or others make, so...
Re: [ANNOUNCE] Git v2.27.0-rc2
Kaartic Sivaraam writes: > Hi Junio, > > On 27-05-2020 00:17, Junio C Hamano wrote: >> Shourya Shukla (4): >>submodule--helper.c: Rename 'cb_foreach' to 'foreach_cb' >>gitfaq: files in .gitignore are tracked >>gitfaq: fetching and pulling a repository >>submodule: port subcommand 'set-url' from shell to C > > This is the only place where the `set-url` conversion from Shell to C > is mentioned. I wonder if it's enough or if it needs a little bit more > attention may be in the "Performance, Internal Implementation, > Development Support etc." as it is a conversion of a submodule > sub-command? I'm not sure if it is worth the bits. It may matter _only_ if/when new implementaiton of set-url hurts the end-users by being buggy ;-)
[ANNOUNCE] Git v2.27.0-rc2
A release candidate Git v2.27.0-rc2 is now available for testing at the usual places. It is comprised of 509 non-merge commits since v2.26.0, contributed by 59 people, 17 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.27.0-rc2' 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.26.0 are as follows. Welcome to the Git development community! Andras Kucsma, Ansgar Röber, Ash Holland, Christopher Warrington, Emma Brooks, Jessica Clarke, Jorge Lopez Silva, Julien Moutinho, Li Xuejiang, luciano.ro...@booking.com, Matthias Aßhauer, Michael F. Schönitzer, Nathan Sanders, Son Luong Ngoc, Terry Moschou, Vasil Dimov, and Yang Zhao. Returning contributors who helped this release are as follows. Thanks for your continued support. 마누엘, Abhishek Kumar, Alban Gruin, Alexandr Miloslavskiy, Alex Henrie, Andrei Rybak, Andrew Oakley, Ben Keene, brian m. carlson, Carlo Marcelo Arenas Belón, Christian Couder, Damien Robert, Denton Liu, Derrick Stolee, Đoàn Trần Công Danh, Elijah Newren, Emily Shaffer, Eric Sunshine, Garima Singh, Greg Price, Hans Jerry Illikainen, Heba Waly, Ismael Luceno, Jeff King, Jiang Xin, Johannes Schindelin, Jonathan Nieder, Jonathan Tan, Josh Steadmon, Junio C Hamano, Martin Ågren, Matheus Tavares, Patrick Steinhardt, Philippe Blain, Phillip Wood, Pratyush Yadav, René Scharfe, Shourya Shukla, SZEDER Gábor, Taylor Blau, Thomas Gummerer, and Todd Zullinger. Git 2.27 Release Notes (draft) == Updates since v2.26 --- Backward compatibility notes * When "git describe C" finds that commit C is pointed by a signed or annotated tag, which records T as its tagname in the object, the command gives T as its answer. Even if the user renames or moves such a tag from its natural location in the "refs/tags/" hierarchy, "git describe C" would still give T as the answer, but in such a case "git show T^0" would no longer work as expected. There may be nothing at "refs/tags/T" or even worse there may be a different tag instead. Starting from this version, "git describe" will always use the "long" version, as if the "--long" option were given, when giving its output based on such a misplaced tag to work around the problem. * "git pull" issues a warning message until the pull.rebase configuration variable is explicitly given, which some existing users may find annoying---those who prefer not to rebase need to set the variable to false to squelch the warning. * The transport protocol version 2, which was promoted to the default in Git 2.26 release, turned out to have some remaining rough edges, so it has been demoted from the default. UI, Workflows & Features * A handful of options to configure SSL when talking to proxies have been added. * Smudge/clean conversion filters are now given more information (e.g. the object of the tree-ish in which the blob being converted appears, in addition to its path, which has already been given). * When "git describe C" finds an annotated tag with tagname A to be the best name to explain commit C, and the tag is stored in a "wrong" place in the refs/tags hierarchy, e.g. refs/tags/B, the command gave a warning message but used A (not B) to describe C. If C is exactly at the tag, the describe output would be "A", but "git rev-parse A^0" would not be equal as "git rev-parse C^0". The behavior of the command has been changed to use the "long" form i.e. A-0-gOBJECTNAME, which is correctly interpreted by rev-parse. * "git pull" learned to warn when no pull.rebase configuration exists, and neither --[no-]rebase nor --ff-only is given (which would result a merge). * "git p4" learned four new hooks and also "--no-verify" option to bypass them (and the existing "p4-pre-submit" hook). * "git pull" shares many options with underlying "git fetch", but some of them were not documented and some of those that would make sense to pass down were not passed down. * "git rebase" learned the "--no-gpg-sign" option to countermand commit.gpgSign the user may have. * The output from "git format-patch" uses RFC 2047 encoding for non-ASCII letters on From: and Subject: headers, so that it can directly be fed to e-mail programs. A new option has been added to produce these headers in raw. * &q
Re* [ANNOUNCE] Git v2.27.0-rc1
Jeff King writes: > On Wed, May 20, 2020 at 12:17:11PM -0700, Junio C Hamano wrote: > >> Git 2.27 Release Notes (draft) >> == >> >> Updates since v2.26 >> --- >> >> Backward compatibility notes > > Is it worth mentioning here the reversion of v2 as the default protocol? > > It does end up (along with the actual code fix) in the "fixes from > v2.26" section: > >> * Those fetching over protocol v2 from linux-next and other kernel >>repositories are reporting that v2 often fetches way too much than >>needed. >>(merge 11c7f2a30b jn/demote-proto2-from-default later to maint). >> >> * The upload-pack protocol v2 gave up too early before finding a >>common ancestor, resulting in a wasteful fetch from a fork of a >>project. This has been corrected to match the behaviour of v0 >>protocol. >>(merge 2f0a093dd6 jt/v2-fetch-nego-fix later to maint). > > but that's somewhat buried. I dunno. It is not likely to introduce _new_ > compatibility issues, but perhaps folks looking into compatibility stuff > may want to know about the revert. The promotion in Git 2.26 was buried in the "performance & implementation details" section and not in the backward compatibility section, so it feels a bit funny to highlight the reversion. In any case, here is what I prepared (but not committed yet) -- >8 -- Subject: [PATCH] RelNotes: advertise the demotion of protocol v2 In the upcoming release, the transport protocol v2 is no longer the default; note it in the backward compatibility section. Suggested-by: Jeff King Signed-off-by: Junio C Hamano --- Documentation/RelNotes/2.27.0.txt | 4 1 file changed, 4 insertions(+) diff --git a/Documentation/RelNotes/2.27.0.txt b/Documentation/RelNotes/2.27.0.txt index 5fb8c0cf67..95a8d338ad 100644 --- a/Documentation/RelNotes/2.27.0.txt +++ b/Documentation/RelNotes/2.27.0.txt @@ -24,6 +24,10 @@ Backward compatibility notes users may find annoying---those who prefer not to rebase need to set the variable to false to squelch the warning. + * The transport protocol version 2, which was promoted to the default + in Git 2.26 release, turned out to have some remaining rough edges, + so it has been demoted from the default. + UI, Workflows & Features
Re: [ANNOUNCE] Git v2.27.0-rc1
Jeff King writes: > On Wed, May 20, 2020 at 12:17:11PM -0700, Junio C Hamano wrote: > >> Git 2.27 Release Notes (draft) >> == >> >> Updates since v2.26 >> --- >> >> Backward compatibility notes > > Is it worth mentioning here the reversion of v2 as the default protocol? Yeah, that is a good suggestion. The fix inside v2 is not worth reporting, but the change of the default is noteworthy enough to be at the top.
[ANNOUNCE] Git v2.27.0-rc1
A release candidate Git v2.27.0-rc1 is now available for testing at the usual places. It is comprised of 491 non-merge commits since v2.26.0, contributed by 55 people, 16 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.27.0-rc1' 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.26.0 are as follows. Welcome to the Git development community! Andras Kucsma, Ash Holland, Christopher Warrington, Emma Brooks, Jessica Clarke, Jorge Lopez Silva, Julien Moutinho, Li Xuejiang, luciano.ro...@booking.com, Matthias Aßhauer, Michael F. Schönitzer, Nathan Sanders, Son Luong Ngoc, Terry Moschou, Vasil Dimov, and Yang Zhao. Returning contributors who helped this release are as follows. Thanks for your continued support. 마누엘, Abhishek Kumar, Alban Gruin, Alexandr Miloslavskiy, Alex Henrie, Andrei Rybak, Andrew Oakley, Ben Keene, brian m. carlson, Carlo Marcelo Arenas Belón, Christian Couder, Damien Robert, Denton Liu, Derrick Stolee, Đoàn Trần Công Danh, Elijah Newren, Emily Shaffer, Eric Sunshine, Garima Singh, Hans Jerry Illikainen, Heba Waly, Jeff King, Jiang Xin, Johannes Schindelin, Jonathan Nieder, Jonathan Tan, Josh Steadmon, Junio C Hamano, Martin Ågren, Matheus Tavares, Patrick Steinhardt, Philippe Blain, Phillip Wood, René Scharfe, Shourya Shukla, SZEDER Gábor, Taylor Blau, Thomas Gummerer, and Todd Zullinger. Git 2.27 Release Notes (draft) == Updates since v2.26 --- Backward compatibility notes * When "git describe C" finds that commit C is pointed by a signed or annotated tag, which records T as its tagname in the object, the command gives T as its answer. Even if the user renames or moves such a tag from its natural location in the "refs/tags/" hierarchy, "git describe C" would still give T as the answer, but in such a case "git show T^0" would no longer work as expected. There may be nothing at "refs/tags/T" or even worse there may be a different tag instead. Starting from this version, "git describe" will always use the "long" version, as if the "--long" option were given, when giving its output based on such a misplaced tag to work around the problem. * "git pull" issues a warning message until the pull.rebase configuration variable is explicitly given, which some existing users may find annoying---those who prefer not to rebase need to set the variable to false to squelch the warning. UI, Workflows & Features * A handful of options to configure SSL when talking to proxies have been added. * Smudge/clean conversion filters are now given more information (e.g. the object of the tree-ish in which the blob being converted appears, in addition to its path, which has already been given). * When "git describe C" finds an annotated tag with tagname A to be the best name to explain commit C, and the tag is stored in a "wrong" place in the refs/tags hierarchy, e.g. refs/tags/B, the command gave a warning message but used A (not B) to describe C. If C is exactly at the tag, the describe output would be "A", but "git rev-parse A^0" would not be equal as "git rev-parse C^0". The behavior of the command has been changed to use the "long" form i.e. A-0-gOBJECTNAME, which is correctly interpreted by rev-parse. * "git pull" learned to warn when no pull.rebase configuration exists, and neither --[no-]rebase nor --ff-only is given (which would result a merge). * "git p4" learned four new hooks and also "--no-verify" option to bypass them (and the existing "p4-pre-submit" hook). * "git pull" shares many options with underlying "git fetch", but some of them were not documented and some of those that would make sense to pass down were not passed down. * "git rebase" learned the "--no-gpg-sign" option to countermand commit.gpgSign the user may have. * The output from "git format-patch" uses RFC 2047 encoding for non-ASCII letters on From: and Subject: headers, so that it can directly be fed to e-mail programs. A new option has been added to produce these headers in raw. * "git log" learned "--show-pulls" that helps pathspec limited history views; a merge commit that takes the whole change from a side branch, which is normally omitted from the output, is shown in addition to the commits th
[ANNOUNCE] Git v2.27.0-rc0
An early preview release Git v2.27.0-rc0 is now available for testing at the usual places. It is comprised of 479 non-merge commits since v2.26.0, contributed by 53 people, 16 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.27.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.26.0 are as follows. Welcome to the Git development community! Andras Kucsma, Ash Holland, Christopher Warrington, Emma Brooks, Jessica Clarke, Jorge Lopez Silva, Julien Moutinho, Li Xuejiang, luciano.ro...@booking.com, Matthias Aßhauer, Michael F. Schönitzer, Nathan Sanders, Son Luong Ngoc, Terry Moschou, Vasil Dimov, and Yang Zhao. Returning contributors who helped this release are as follows. Thanks for your continued support. 마누엘, Alban Gruin, Alexandr Miloslavskiy, Alex Henrie, Andrei Rybak, Andrew Oakley, Ben Keene, brian m. carlson, Carlo Marcelo Arenas Belón, Christian Couder, Damien Robert, Denton Liu, Derrick Stolee, Đoàn Trần Công Danh, Elijah Newren, Emily Shaffer, Eric Sunshine, Garima Singh, Hans Jerry Illikainen, Heba Waly, Jeff King, Jiang Xin, Johannes Schindelin, Jonathan Nieder, Jonathan Tan, Josh Steadmon, Junio C Hamano, Martin Ågren, Matheus Tavares, Patrick Steinhardt, Philippe Blain, Phillip Wood, René Scharfe, Shourya Shukla, SZEDER Gábor, Taylor Blau, and Thomas Gummerer. Git 2.27 Release Notes (draft) == Updates since v2.26 --- Backward compatibility notes * When "git describe C" finds that commit C is pointed by a signed or annotated tag, which records T as its tagname in the object, the command gives T as its answer. Even if the user renames or moves such a tag from its natural location in the "refs/tags/" hierarchy, "git describe C" would still give T as the answer, but in such a case "git show T^0" would no longer work as expected. There may be nothing at "refs/tags/T" or even worse there may be a different tag instead. Starting from this version, "git describe" will always use the "long" version, as if the "--long" option were given, when giving its output based on such a misplaced tag to work around the problem. * "git pull" issues a warning message until the pull.rebase configuration variable is explicitly given, which some existing users may find annoying---those who prefer not to rebase need to set the variable to false to squelch the warning. UI, Workflows & Features * A handful of options to configure SSL when talking to proxies have been added. * Smudge/clean conversion filters are now given more information (e.g. the object of the tree-ish in which the blob being converted appears, in addition to its path, which has already been given). * When "git describe C" finds an annotated tag with tagname A to be the best name to explain commit C, and the tag is stored in a "wrong" place in the refs/tags hierarchy, e.g. refs/tags/B, the command gave a warning message but used A (not B) to describe C. If C is exactly at the tag, the describe output would be "A", but "git rev-parse A^0" would not be equal as "git rev-parse C^0". The behavior of the command has been changed to use the "long" form i.e. A-0-gOBJECTNAME, which is correctly interpreted by rev-parse. * "git pull" learned to warn when no pull.rebase configuration exists, and neither --[no-]rebase nor --ff-only is given (which would result a merge). * "git p4" learned four new hooks and also "--no-verify" option to bypass them (and the existing "p4-pre-submit" hook). * "git pull" shares many options with underlying "git fetch", but some of them were not documented and some of those that would make sense to pass down were not passed down. * "git rebase" learned the "--no-gpg-sign" option to countermand commit.gpgSign the user may have. * The output from "git format-patch" uses RFC 2047 encoding for non-ASCII letters on From: and Subject: headers, so that it can directly be fed to e-mail programs. A new option has been added to produce these headers in raw. * "git log" learned "--show-pulls" that helps pathspec limited history views; a merge commit that takes the whole change from a side branch, which is normally omitted from the output, is shown in addition to the commits that introduce real change
[ANNOUNCE] Git v2.27.0-rc0
An early preview release Git v2.27.0-rc0 is now available for testing at the usual places. It is comprised of 479 non-merge commits since v2.26.0, contributed by 53 people, 16 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.27.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.26.0 are as follows. Welcome to the Git development community! Andras Kucsma, Ash Holland, Christopher Warrington, Emma Brooks, Jessica Clarke, Jorge Lopez Silva, Julien Moutinho, Li Xuejiang, luciano.ro...@booking.com, Matthias Aßhauer, Michael F. Schönitzer, Nathan Sanders, Son Luong Ngoc, Terry Moschou, Vasil Dimov, and Yang Zhao. Returning contributors who helped this release are as follows. Thanks for your continued support. 마누엘, Alban Gruin, Alexandr Miloslavskiy, Alex Henrie, Andrei Rybak, Andrew Oakley, Ben Keene, brian m. carlson, Carlo Marcelo Arenas Belón, Christian Couder, Damien Robert, Denton Liu, Derrick Stolee, Đoàn Trần Công Danh, Elijah Newren, Emily Shaffer, Eric Sunshine, Garima Singh, Hans Jerry Illikainen, Heba Waly, Jeff King, Jiang Xin, Johannes Schindelin, Jonathan Nieder, Jonathan Tan, Josh Steadmon, Junio C Hamano, Martin Ågren, Matheus Tavares, Patrick Steinhardt, Philippe Blain, Phillip Wood, René Scharfe, Shourya Shukla, SZEDER Gábor, Taylor Blau, and Thomas Gummerer. Git 2.27 Release Notes (draft) == Updates since v2.26 --- Backward compatibility notes * When "git describe C" finds that commit C is pointed by a signed or annotated tag, which records T as its tagname in the object, the command gives T as its answer. Even if the user renames or moves such a tag from its natural location in the "refs/tags/" hierarchy, "git describe C" would still give T as the answer, but in such a case "git show T^0" would no longer work as expected. There may be nothing at "refs/tags/T" or even worse there may be a different tag instead. Starting from this version, "git describe" will always use the "long" version, as if the "--long" option were given, when giving its output based on such a misplaced tag to work around the problem. * "git pull" issues a warning message until the pull.rebase configuration variable is explicitly given, which some existing users may find annoying---those who prefer not to rebase need to set the variable to false to squelch the warning. UI, Workflows & Features * A handful of options to configure SSL when talking to proxies have been added. * Smudge/clean conversion filters are now given more information (e.g. the object of the tree-ish in which the blob being converted appears, in addition to its path, which has already been given). * When "git describe C" finds an annotated tag with tagname A to be the best name to explain commit C, and the tag is stored in a "wrong" place in the refs/tags hierarchy, e.g. refs/tags/B, the command gave a warning message but used A (not B) to describe C. If C is exactly at the tag, the describe output would be "A", but "git rev-parse A^0" would not be equal as "git rev-parse C^0". The behavior of the command has been changed to use the "long" form i.e. A-0-gOBJECTNAME, which is correctly interpreted by rev-parse. * "git pull" learned to warn when no pull.rebase configuration exists, and neither --[no-]rebase nor --ff-only is given (which would result a merge). * "git p4" learned four new hooks and also "--no-verify" option to bypass them (and the existing "p4-pre-submit" hook). * "git pull" shares many options with underlying "git fetch", but some of them were not documented and some of those that would make sense to pass down were not passed down. * "git rebase" learned the "--no-gpg-sign" option to countermand commit.gpgSign the user may have. * The output from "git format-patch" uses RFC 2047 encoding for non-ASCII letters on From: and Subject: headers, so that it can directly be fed to e-mail programs. A new option has been added to produce these headers in raw. * "git log" learned "--show-pulls" that helps pathspec limited history views; a merge commit that takes the whole change from a side branch, which is normally omitted from the output, is shown in addition to the commits that introduce real change
[ANNOUNCE] Git v2.23.0
The latest feature release Git v2.23.0 is now available at the usual places. It is comprised of 505 non-merge commits since v2.22.0, contributed by 77 people, 26 of which are new faces. The tarballs are found at: https://www.kernel.org/pub/software/scm/git/ The following public repositories all have a copy of the 'v2.23.0' 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.22.0 are as follows. Welcome to the Git development community! Ariadne Conill, Barret Rhoden, Ben Avison, Carmine Zaccagnino, Daniel Ferreira, Doug Ilijev, Dr. Adam Nielsen, Jakub Wilk, John Lin, Mark Rushakoff, Matheus Tavares, Mazo, Andrey, Michael Osipov, Michael Platings, Miguel Ojeda, Mike Mueller, Morian Sonnet, Philipp Weißmann, Quentin Nerden, Robert Morgan, Simon Williams, Steven Roberts, Tigran Mkrtchyan, Varun Naik, Vishal Verma, and Xin Li. Returning contributors who helped this release are as follows. Thanks for your continued support. Ævar Arnfjörð Bjarmason, Alessandro Menti, Alexander Shopov, Beat Bolli, Boxuan Li, brian m. carlson, Carlo Marcelo Arenas Belón, Cesar Eduardo Barros, Chris Mayo, Christian Couder, Christopher Díaz Riveros, Denton Liu, Derrick Stolee, Dimitriy Ryazantcev, Edmundo Carmona Antoranz, Elijah Newren, Emily Shaffer, Eric Wong, Felipe Contreras, Jean-Noël Avila, Jeff Hostetler, Jeff King, Jiang Xin, Johannes Schindelin, Johannes Sixt, Jonathan Nieder, Jonathan Tan, Jordi Mas, Josh Steadmon, Junio C Hamano, Karsten Blees, Marc-André Lureau, Martin Ågren, Matthew DeVore, Matthias Rüster, Mike Hommey, Nguyễn Thái Ngọc Duy, Nickolai Belakovski, Paolo Bonzini, Peter Krefting, Philip Oakley, Phillip Wood, Ramsay Jones, René Scharfe, Rohit Ashiwal, Stephen Boyd, SZEDER Gábor, Taylor Blau, Thomas Gummerer, Trần Ngọc Quân, and William Chargin. Git 2.23 Release Notes == Updates since v2.22 --- Backward compatibility note * The "--base" option of "format-patch" computed the patch-ids for prerequisite patches in an unstable way, which has been updated to compute in a way that is compatible with "git patch-id --stable". * The "git log" command by default behaves as if the --mailmap option was given. UI, Workflows & Features * The "git fast-export/import" pair has been taught to handle commits with log messages in encoding other than UTF-8 better. * In recent versions of Git, per-worktree refs are exposed in refs/worktrees// hierarchy, which means that worktree names must be a valid refname component. The code now sanitizes the names given to worktrees, to make sure these refs are well-formed. * "git merge" learned "--quit" option that cleans up the in-progress merge while leaving the working tree and the index still in a mess. * "git format-patch" learns a configuration to set the default for its --notes= option. * The code to show args with potential typo that cannot be interpreted as a commit-ish has been improved. * "git clone --recurse-submodules" learned to set up the submodules to ignore commit object names recorded in the superproject gitlink and instead use the commits that happen to be at the tip of the remote-tracking branches from the get-go, by passing the new "--remote-submodules" option. * The pattern "git diff/grep" use to extract funcname and words boundary for Matlab has been extend to cover Octave, which is more or less equivalent. * "git help git" was hard to discover (well, at least for some people). * The pattern "git diff/grep" use to extract funcname and words boundary for Rust has been added. * "git status" can be told a non-standard default value for the "--[no-]ahead-behind" option with a new configuration variable status.aheadBehind. * "git fetch" and "git pull" reports when a fetch results in non-fast-forward updates to let the user notice unusual situation. The commands learned "--no-show-forced-updates" option to disable this safety feature. * Two new commands "git switch" and "git restore" are introduced to split "checking out a branch to work on advancing its history" and "checking out paths out of the index and/or a tree-ish to work on advancing the current history" out of the single "git checkout" command. * "git branch --list" learned to always output the detached HEAD as the first item (when the HEAD is detached, of course), regardless of the locale. * The conditional in
[ANNOUNCE] Git v2.22.1
n fsmonitor fix mark_fsmonitor_valid(): mark the index as changed if needed bundle verify: error out if called without an object database poll (mingw): allow compiling with GCC 8 and DEVELOPER=1 kwset: allow building with GCC 8 winansi: simplify loading the GetCurrentConsoleFontEx() function config: avoid calling `labs()` on too-large data type t3404: fix a typo t0001: fix on case-insensitive filesystems rebase --am: ignore rebase.rescheduleFailedExec diff: munmap() file contents before running external diff mingw: support spawning programs containing spaces in their names clean: show an error message when the path is too long Jonathan Tan (5): t5616: refactor packfile replacement index-pack: prefetch missing REF_DELTA bases t5616: use correct flag to check object is missing t5616: cover case of client having delta base t5551: test usage of chunked encoding explicitly Josh Steadmon (1): trace2: correct trace2 field name documentation Junio C Hamano (6): transport-helper: avoid var decl in for () loop control rm: resolving by removal is not a warning-worthy event CodingGuidelines: spell out post-C89 rules Flush fixes up to the third batch post 2.22.0 Merge fixes made on the 'master' front Git 2.22.1 Martin Ågren (1): RelNotes/2.21.1: typofix Matthew DeVore (3): list-objects-filter: correct usage of ALLOC_GROW url: do not read past end of buffer url: do not allow %00 to represent NUL in URLs Miguel Ojeda (1): clang-format: use git grep to generate the ForEachMacros list Mike Hommey (2): dup() the input fd for fast-import used for remote helpers Use xmmap_gently instead of xmmap in use_pack Mike Mueller (1): p4 unshelve: fix "Not a valid object name HEAD0" on Windows Morian Sonnet (1): submodule foreach: fix recursion of options Nguyễn Thái Ngọc Duy (3): init: make --template path relative to $CWD worktree add: be tolerant of corrupt worktrees completion: do not cache if --git-completion-helper fails Paolo Bonzini (2): request-pull: quote regex metacharacters in local ref request-pull: warn if the remote object is not the same as the local one Philip Oakley (2): doc branch: provide examples for listing remote tracking branches .mailmap: update email address of Philip Oakley Phillip Wood (5): rebase: fix a memory leak rebase: warn if state directory cannot be removed sequencer: return errors from sequencer_remove_state() rebase --abort/--quit: cleanup refs/rewritten add -p: fix checkout -p with pathological context Quentin Nerden (2): docs: git-clone: refer to long form of options docs: git-clone: list short form of options first René Scharfe (6): cleanup: fix possible overflow errors in binary search, part 2 coccinelle: use COPY_ARRAY for copying arrays use COPY_ARRAY for copying arrays config: use unsigned_mult_overflows to check for overflows config: don't multiply in parse_unit_factor() config: simplify parsing of unit factors Robert Morgan (1): gpg(docs): use correct --verify syntax SZEDER Gábor (11): t3404: modernize here doc style t3404: make the 'rebase.missingCommitsCheck=ignore' test more focused pager: add a helper function to clear the last line in the terminal t5551: use 'test_i18ngrep' to check translated output rebase: fix garbled progress display with '-x' progress: use term_clear_line() Document that 'git -C ""' works and doesn't change directory ci: don't update Homebrew ci: disable Homebrew's auto cleanup ci/lib.sh: update a comment about installed P4 and Git-LFS versions Documentation/git-fsck.txt: include fsck.* config variables Simon Williams (1): git-p4: allow unshelving of branched files Steven Roberts (1): gpg-interface: do not scan past the end of buffer Thomas Gummerer (1): stash: fix show referencing stash index Varun Naik (1): read-cache.c: do not die if mmap fails Vishal Verma (1): merge: refuse --commit with --squash Xin Li (1): clone: respect user supplied origin name when setting up partial clone Ævar Arnfjörð Bjarmason (1): hash-object doc: stop mentioning git-cvsimport
[ANNOUNCE] Git v2.23.0-rc1
A release candidate Git v2.23.0-rc1 is now available for testing at the usual places. It is comprised of 471 non-merge commits since v2.22.0, contributed by 63 people, 23 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.23.0-rc1' 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.22.0 are as follows. Welcome to the Git development community! Ariadne Conill, Barret Rhoden, Ben Avison, Daniel Ferreira, Doug Ilijev, Dr. Adam Nielsen, Jakub Wilk, John Lin, Matheus Tavares, Mazo, Andrey, Michael Osipov, Michael Platings, Miguel Ojeda, Mike Mueller, Morian Sonnet, Quentin Nerden, Robert Morgan, Simon Williams, Steven Roberts, Tigran Mkrtchyan, Varun Naik, Vishal Verma, and Xin Li. Returning contributors who helped this release are as follows. Thanks for your continued support. Ævar Arnfjörð Bjarmason, Beat Bolli, Boxuan Li, brian m. carlson, Carlo Marcelo Arenas Belón, Cesar Eduardo Barros, Chris Mayo, Christian Couder, Denton Liu, Derrick Stolee, Dimitriy Ryazantcev, Edmundo Carmona Antoranz, Elijah Newren, Emily Shaffer, Eric Wong, Felipe Contreras, Jeff Hostetler, Jeff King, Johannes Schindelin, Johannes Sixt, Jonathan Tan, Josh Steadmon, Junio C Hamano, Karsten Blees, Marc-André Lureau, Martin Ågren, Matthew DeVore, Mike Hommey, Nguyễn Thái Ngọc Duy, Nickolai Belakovski, Paolo Bonzini, Philip Oakley, Phillip Wood, Ramsay Jones, René Scharfe, Rohit Ashiwal, Stephen Boyd, SZEDER Gábor, Taylor Blau, and Thomas Gummerer. Git 2.23 Release Notes (draft) == Updates since v2.22 --- Backward compatibility note * The "--base" option of "format-patch" computed the patch-ids for prerequisite patches in an unstable way, which has been updated to compute in a way that is compatible with "git patch-id --stable". * The "git log" command by default behaves as if the --mailmap option was given. UI, Workflows & Features * The "git fast-export/import" pair has been taught to handle commits with log messages in encoding other than UTF-8 better. * In recent versions of Git, per-worktree refs are exposed in refs/worktrees// hierarchy, which means that worktree names must be a valid refname component. The code now sanitizes the names given to worktrees, to make sure these refs are well-formed. * "git merge" learned "--quit" option that cleans up the in-progress merge while leaving the working tree and the index still in a mess. * "git format-patch" learns a configuration to set the default for its --notes= option. * The code to show args with potential typo that cannot be interpreted as a commit-ish has been improved. * "git clone --recurse-submodules" learned to set up the submodules to ignore commit object names recorded in the superproject gitlink and instead use the commits that happen to be at the tip of the remote-tracking branches from the get-go, by passing the new "--remote-submodules" option. * The pattern "git diff/grep" use to extract funcname and words boundary for Matlab has been extend to cover Octave, which is more or less equivalent. * "git help git" was hard to discover (well, at least for some people). * The pattern "git diff/grep" use to extract funcname and words boundary for Rust has been added. * "git status" can be told a non-standard default value for the "--[no-]ahead-behind" option with a new configuration variable status.aheadBehind. * "git fetch" and "git pull" reports when a fetch results in non-fast-forward updates to let the user notice unusual situation. The commands learned "--no-show-forced-updates" option to disable this safety feature. * Two new commands "git switch" and "git restore" are introduced to split "checking out a branch to work on advancing its history" and "checking out paths out of the index and/or a tree-ish to work on advancing the current history" out of the single "git checkout" command. * "git branch --list" learned to always output the detached HEAD as the first item (when the HEAD is detached, of course), regardless of the locale. * The conditional inclusion mechanism learned to base the choice on the branch the HEAD currently is on. * "git rev-list --objects" learned the "--no-object-names" option to squelch the path to the object
[ANNOUNCE] Git v2.22.0
The latest feature release Git v2.22.0 is now available at the usual places. It is comprised of 745 non-merge commits since v2.21.0, contributed by 74 people, 18 of which are new faces. The tarballs are found at: https://www.kernel.org/pub/software/scm/git/ The following public repositories all have a copy of the 'v2.22.0' 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.21.0 are as follows. Welcome to the Git development community! Alexander Blesius, Baruch Siach, Boxuan Li, Cédric Malard, Chris Mayo, Chris. Webster, Clément Chigot, Corentin BOMPARD, Damien Robert, Dustin Spicuzza, Emily Shaffer, Michal Suchanek, Rohit Ashiwal, Sun Chao, Tanushree Tumane, Vadim Kochan, William Hubbs, and Yash Bhatambare. Returning contributors who helped this release are as follows. Thanks for your continued support. Ævar Arnfjörð Bjarmason, Alban Gruin, Alessandro Menti, Alexander Shopov, Anders Waldenborg, Andreas Heiduk, Andrei Rybak, Beat Bolli, Ben Peart, Brandon Richardson, brian m. carlson, Carlo Marcelo Arenas Belón, Christian Couder, Christopher Díaz Riveros, Daniels Umanovskis, David Aguilar, David Kastrup, Denton Liu, Derrick Stolee, Elijah Newren, Eric Sunshine, Eric Wong, Fangyi Zhou, İsmail Dönmez, Jean-Noël Avila, Jeff Hostetler, Jeff King, Jiang Xin, Joel Teichroeb, Joey Hess, Johannes Schindelin, Jonathan Tan, Jordi Mas, Josh Steadmon, Junio C Hamano, Kyle Meyer, Martin Ågren, Matthew Kraai, Matthias Rüster, Mike Hommey, Nguyễn Thái Ngọc Duy, Paul-Sebastian Ungureanu, Peter Krefting, Philip Oakley, Phillip Wood, Ralf Thielow, Ramsay Jones, René Scharfe, Robert P. J. Day, Sven Strickroth, SZEDER Gábor, Taylor Blau, Thomas Gummerer, Todd Zullinger, Torsten Bögershausen, and Trần Ngọc Quân. Git 2.22 Release Notes == Updates since v2.21 --- Backward compatibility note * The filter specification "--filter=sparse:path=" used to create a lazy/partial clone has been removed. Using a blob that is part of the project as sparse specification is still supported with the "--filter=sparse:oid=" option. UI, Workflows & Features * "git checkout --no-overlay" can be used to trigger a new mode of checking out paths out of the tree-ish, that allows paths that match the pathspec that are in the current index and working tree and are not in the tree-ish. * The %(trailers) formatter in "git log --format=..." now allows to optionally pick trailers selectively by keyword, show only values, etc. * Four new configuration variables {author,committer}.{name,email} have been introduced to override user.{name,email} in more specific cases. * Command-line completion (in contrib/) learned to tab-complete the "git submodule absorbgitdirs" subcommand. * "git branch" learned a new subcommand "--show-current". * Output from "diff --cc" did not show the original paths when the merge involved renames. A new option adds the paths in the original trees to the output. * The command line completion (in contrib/) has been taught to complete more subcommand parameters. * The final report from "git bisect" used to show the suspected culprit using a raw "diff-tree", with which there is no output for a merge commit. This has been updated to use a more modern and human readable output that still is concise enough. * "git rebase --rebase-merges" replaces its old "--preserve-merges" option; the latter is now marked as deprecated. * Error message given while cloning with --recurse-submodules has been updated. * The completion helper code now pays attention to repository-local configuration (when available), which allows --list-cmds to honour a repository specific setting of completion.commands, for example. * "git mergetool" learned to offer Sublime Merge (smerge) as one of its backends. * A new hook "post-index-change" is called when the on-disk index file changes, which can help e.g. a virtualized working tree implementation. * "git difftool" can now run outside a repository. * "git checkout -m " was about carrying the differences between HEAD and the working-tree files forward while checking out another branch, and ignored the differences between HEAD and the index. The command has been taught to abort when the index and the HEAD are different. * A progress indicator has been added to the "index-pack" step, which often makes users wait for completion during "git clone". * "git submodule" learns
[ANNOUNCE] Git v2.21.0
The latest feature release Git v2.21.0 is now available at the usual places. It is comprised of 500 non-merge commits since v2.20.0, contributed by 74 people, 20 of which are new faces. The tarballs are found at: https://www.kernel.org/pub/software/scm/git/ The following public repositories all have a copy of the 'v2.21.0' 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.20.0 are as follows. Welcome to the Git development community! Alessandro Menti, Arti Zirk, Brandon Richardson, Chayoung You, Denis Ovsienko, Emilio Cobos Álvarez, Erin Dahlgren, Fabien Villepinte, Force Charlie, Frank Dana, Issac Trotts, Katrin Leinweber, Laura Abbott, Patrick Hogg, Peter Osterlund, Shahzad Lone, Slavica Djukic, Yoichi Nakayama, Zhilei Han, and Tanushree Tumane. Returning contributors who helped this release are as follows. Thanks for your continued support. Ævar Arnfjörð Bjarmason, Alexander Shopov, Ben Peart, Brandon Williams, brian m. carlson, Carlo Marcelo Arenas Belón, Christian Couder, Christopher Díaz Riveros, David Turner, Derrick Stolee, Elijah Newren, Eric Sunshine, Eric Wong, Fangyi Zhou, Jean-Noël Avila, Jeff King, Jiang Xin, Jimmy Angelakos, Johannes Schindelin, Jonathan Nieder, Jonathan Tan, Jordi Mas, Josh Steadmon, Junio C Hamano, Kevin Daudt, Kim Gybels, Kyle Meyer, Linus Torvalds, Luke Diamand, Martin Ågren, Masaya Suzuki, Matthew DeVore, Matthieu Moy, Max Kirillov, Nguyễn Thái Ngọc Duy, Olga Telezhnaya, Orgad Shaneh, Peter Krefting, Phillip Wood, Pranit Bauva, Ralf Thielow, Ramsay Jones, Randall S. Becker, René Scharfe, Sebastian Staudt, Sergey Organov, Stefan Beller, Stephen P. Smith, Sven van Haastregt, SZEDER Gábor, Thomas Braun, Thomas Gummerer, Todd Zullinger, and Torsten Bögershausen. Git 2.21 Release Notes == Backward Compatibility Notes * Historically, the "-m" (mainline) option can only be used for "git cherry-pick" and "git revert" when working with a merge commit. This version of Git no longer warns or errors out when working with a single-parent commit, as long as the argument to the "-m" option is 1 (i.e. it has only one parent, and the request is to pick or revert relative to that first parent). Scripts that relied on the behaviour may get broken with this change. Updates since v2.20 --- UI, Workflows & Features * The "http.version" configuration variable can be used with recent enough versions of cURL library to force the version of HTTP used to talk when fetching and pushing. * Small fixes and features for fast-export and fast-import, mostly on the fast-export side has been made. * "git push $there $src:$dst" rejects when $dst is not a fully qualified refname and it is not clear what the end user meant. The codepath has been taught to give a clearer error message, and also guess where the push should go by taking the type of the pushed object into account (e.g. a tag object would want to go under refs/tags/). * "git checkout [] path..." learned to report the number of paths that have been checked out of the index or the tree-ish, which gives it the same degree of noisy-ness as the case in which the command checks out a branch. "git checkout -m " to undo conflict resolution gives a similar message. * "git quiltimport" learned "--keep-non-patch" option. * "git worktree remove" and "git worktree move" refused to work when there is a submodule involved. This has been loosened to ignore uninitialized submodules. * "git cherry-pick -m1" was forbidden when picking a non-merge commit, even though there _is_ parent number 1 for such a commit. This was done to avoid mistakes back when "cherry-pick" was about picking a single commit, but is no longer useful with "cherry-pick" that can pick a range of commits. Now the "-m$num" option is allowed when picking any commit, as long as $num names an existing parent of the commit. * Update "git multimail" from the upstream. * "git p4" update. * The "--format=" option of for-each-ref, branch and tag learned to show a few more traits of objects that can be learned by the object_info API. * "git rebase -i" learned to re-execute a command given with 'exec' to run after it failed the last time. * "git diff --color-moved-ws" updates. * Custom userformat "log --format" learned %S atom that stands for the tip the traversal reached the commit from,
[ANNOUNCE] Git v2.21.0-rc2
A release candidate Git v2.21.0-rc2 is now available for testing at the usual places. It is comprised of 474 non-merge commits since v2.20.0, contributed by 61 people, 16 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.21.0-rc2' 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.20.0 are as follows. Welcome to the Git development community! Arti Zirk, Brandon Richardson, Chayoung You, Denis Ovsienko, Emilio Cobos Álvarez, Erin Dahlgren, Force Charlie, Frank Dana, Issac Trotts, Katrin Leinweber, Laura Abbott, Patrick Hogg, Peter Osterlund, Shahzad Lone, Slavica Djukic, and Tanushree Tumane. Returning contributors who helped this release are as follows. Thanks for your continued support. Ævar Arnfjörð Bjarmason, Ben Peart, Brandon Williams, brian m. carlson, Carlo Marcelo Arenas Belón, Christian Couder, David Turner, Derrick Stolee, Elijah Newren, Eric Sunshine, Eric Wong, Jean-Noël Avila, Jeff King, Johannes Schindelin, Jonathan Nieder, Jonathan Tan, Josh Steadmon, Junio C Hamano, Kevin Daudt, Kim Gybels, Kyle Meyer, Linus Torvalds, Luke Diamand, Martin Ågren, Masaya Suzuki, Matthew DeVore, Matthieu Moy, Max Kirillov, Nguyễn Thái Ngọc Duy, Olga Telezhnaya, Orgad Shaneh, Phillip Wood, Pranit Bauva, Ramsay Jones, Randall S. Becker, René Scharfe, Sebastian Staudt, Sergey Organov, Stefan Beller, Stephen P. Smith, Sven van Haastregt, SZEDER Gábor, Thomas Braun, Thomas Gummerer, Todd Zullinger, and Torsten Bögershausen. Git 2.21 Release Notes (draft) == Backward Compatibility Notes * Historically, the "-m" (mainline) option can only be used for "git cherry-pick" and "git revert" when working with a merge commit. This version of Git no longer warns or errors out when working with a single-parent commit, as long as the argument to the "-m" option is 1 (i.e. it has only one parent, and the request is to pick or revert relative to that first parent). Scripts that relied on the behaviour may get broken with this change. Updates since v2.20 --- UI, Workflows & Features * The "http.version" configuration variable can be used with recent enough versions of cURL library to force the version of HTTP used to talk when fetching and pushing. * Small fixes and features for fast-export and fast-import, mostly on the fast-export side has been made. * "git push $there $src:$dst" rejects when $dst is not a fully qualified refname and it is not clear what the end user meant. The codepath has been taught to give a clearer error message, and also guess where the push should go by taking the type of the pushed object into account (e.g. a tag object would want to go under refs/tags/). * "git checkout [] path..." learned to report the number of paths that have been checked out of the index or the tree-ish, which gives it the same degree of noisy-ness as the case in which the command checks out a branch. "git checkout -m " to undo conflict resolution gives a similar message. * "git quiltimport" learned "--keep-non-patch" option. * "git worktree remove" and "git worktree move" refused to work when there is a submodule involved. This has been loosened to ignore uninitialized submodules. * "git cherry-pick -m1" was forbidden when picking a non-merge commit, even though there _is_ parent number 1 for such a commit. This was done to avoid mistakes back when "cherry-pick" was about picking a single commit, but is no longer useful with "cherry-pick" that can pick a range of commits. Now the "-m$num" option is allowed when picking any commit, as long as $num names an existing parent of the commit. * Update "git multimail" from the upstream. * "git p4" update. * The "--format=" option of for-each-ref, branch and tag learned to show a few more traits of objects that can be learned by the object_info API. * "git rebase -i" learned to re-execute a command given with 'exec' to run after it failed the last time. * "git diff --color-moved-ws" updates. * Custom userformat "log --format" learned %S atom that stands for the tip the traversal reached the commit from, i.e. --source. * "git instaweb" learned to drive http.server that comes with "batteries included" Python installation (both Python2 &
[ANNOUNCE] Git v2.21.0-rc1
A release candidate Git v2.21.0-rc1 is now available for testing at the usual places. It is comprised of 464 non-merge commits since v2.20.0, contributed by 60 people, 14 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.21.0-rc1' 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.20.0 are as follows. Welcome to the Git development community! Arti Zirk, Brandon Richardson, Chayoung You, Denis Ovsienko, Erin Dahlgren, Force Charlie, Frank Dana, Issac Trotts, Katrin Leinweber, Laura Abbott, Patrick Hogg, Peter Osterlund, Shahzad Lone, and Slavica Djukic. Returning contributors who helped this release are as follows. Thanks for your continued support. Ævar Arnfjörð Bjarmason, Ben Peart, Brandon Williams, brian m. carlson, Carlo Marcelo Arenas Belón, Christian Couder, David Turner, Derrick Stolee, Elijah Newren, Eric Sunshine, Eric Wong, Jean-Noël Avila, Jeff King, Johannes Schindelin, Jonathan Nieder, Jonathan Tan, Josh Steadmon, Junio C Hamano, Kevin Daudt, Kim Gybels, Kyle Meyer, Linus Torvalds, Luke Diamand, Martin Ågren, Masaya Suzuki, Matthew DeVore, Matthieu Moy, Max Kirillov, Nguyễn Thái Ngọc Duy, Olga Telezhnaya, Orgad Shaneh, Phillip Wood, Pranit Bauva, Ramsay Jones, Randall S. Becker, René Scharfe, Sebastian Staudt, Sergey Organov, Stefan Beller, Stephen P. Smith, Sven van Haastregt, SZEDER Gábor, Thomas Braun, Thomas Gummerer, Todd Zullinger, and Torsten Bögershausen. Git 2.21 Release Notes (draft) == Backward Compatibility Notes * Historically, the "-m" (mainline) option can only be used for "git cherry-pick" and "git revert" when working with a merge commit. This version of Git no longer warns or errors out when working with a single-parent commit, as long as the argument to the "-m" option is 1 (i.e. it has only one parent, and the request is to pick or revert relative to that first parent). Scripts that relied on the behaviour may get broken with this change. Updates since v2.20 --- UI, Workflows & Features * The "http.version" configuration variable can be used with recent enough versions of cURL library to force the version of HTTP used to talk when fetching and pushing. * Small fixes and features for fast-export and fast-import, mostly on the fast-export side has been made. * "git push $there $src:$dst" rejects when $dst is not a fully qualified refname and it is not clear what the end user meant. The codepath has been taught to give a clearer error message, and also guess where the push should go by taking the type of the pushed object into account (e.g. a tag object would want to go under refs/tags/). * "git checkout [] path..." learned to report the number of paths that have been checked out of the index or the tree-ish, which gives it the same degree of noisy-ness as the case in which the command checks out a branch. "git checkout -m " to undo conflict resolution gives a similar message. * "git quiltimport" learned "--keep-non-patch" option. * "git worktree remove" and "git worktree move" refused to work when there is a submodule involved. This has been loosened to ignore uninitialized submodules. * "git cherry-pick -m1" was forbidden when picking a non-merge commit, even though there _is_ parent number 1 for such a commit. This was done to avoid mistakes back when "cherry-pick" was about picking a single commit, but is no longer useful with "cherry-pick" that can pick a range of commits. Now the "-m$num" option is allowed when picking any commit, as long as $num names an existing parent of the commit. * Update "git multimail" from the upstream. * "git p4" update. * The "--format=" option of for-each-ref, branch and tag learned to show a few more traits of objects that can be learned by the object_info API. * "git rebase -i" learned to re-execute a command given with 'exec' to run after it failed the last time. * "git diff --color-moved-ws" updates. * Custom userformat "log --format" learned %S atom that stands for the tip the traversal reached the commit from, i.e. --source. * "git instaweb" learned to drive http.server that comes with "batteries included" Python installation (both Python2 & 3). * A new encoding UTF-16LE-BOM has b
Re: [Breakage] Git v2.21.0-rc0 - t5318 (NonStop)
Johannes Sixt writes: > If the data does not have to be a sequence of zero bytes, the > alternatives are: > > * `test-genrandom seed-string $size` for a sequence of reproducible > "random" bytes > > * `printf "%0*d" $size 0` for a sequence of '0' characters. > > In t5318, the zero bytes do matter, though. Also some consumers of these bytes may not be easy to read from a pipe.
[ANNOUNCE] Git v2.21.0-rc0
An early preview release Git v2.21.0-rc0 is now available for testing at the usual places. It is comprised of 426 non-merge commits since v2.20.0, contributed by 57 people, 13 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.21.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.20.0 are as follows. Welcome to the Git development community! Arti Zirk, Brandon Richardson, Chayoung You, Denis Ovsienko, Erin Dahlgren, Force Charlie, Frank Dana, Issac Trotts, Laura Abbott, Patrick Hogg, Peter Osterlund, Shahzad Lone, and Slavica Djukic. Returning contributors who helped this release are as follows. Thanks for your continued support. Ævar Arnfjörð Bjarmason, Ben Peart, Brandon Williams, brian m. carlson, Carlo Marcelo Arenas Belón, Christian Couder, David Turner, Derrick Stolee, Elijah Newren, Eric Sunshine, Eric Wong, Jean-Noël Avila, Jeff King, Johannes Schindelin, Jonathan Nieder, Jonathan Tan, Josh Steadmon, Junio C Hamano, Kim Gybels, Kyle Meyer, Linus Torvalds, Luke Diamand, Martin Ågren, Masaya Suzuki, Matthew DeVore, Matthieu Moy, Max Kirillov, Nguyễn Thái Ngọc Duy, Olga Telezhnaya, Orgad Shaneh, Phillip Wood, Pranit Bauva, Ramsay Jones, Randall S. Becker, René Scharfe, Sebastian Staudt, Sergey Organov, Stefan Beller, Stephen P. Smith, Sven van Haastregt, SZEDER Gábor, Thomas Braun, Thomas Gummerer, and Torsten Bögershausen. Git 2.21 Release Notes (draft) == Backward Compatibility Notes * Historically, the "-m" (mainline) option can only be used for "git cherry-pick" and "git revert" when working with a merge commit. This version of Git no longer warns or errors out when working with a single-parent commit, as long as the argument to the "-m" option is 1 (i.e. it has only one parent, and the request is to pick or revert relative to that first parent). Scripts that relied on the behaviour may get broken with this change. Updates since v2.20 --- UI, Workflows & Features * The "http.version" configuration variable can be used with recent enough versions of cURL library to force the version of HTTP used to talk when fetching and pushing. * Small fixes and features for fast-export and fast-import, mostly on the fast-export side has been made. * "git push $there $src:$dst" rejects when $dst is not a fully qualified refname and not clear what the end user meant. The codepath has been taught to give a clearer error message, and also guess where the push should go by taking the type of the pushed object into account (e.g. a tag object would want to go under refs/tags/). * "git checkout [] path..." learned to report the number of paths that have been checked out of the index or the tree-ish, which gives it the same degree of noisy-ness as the case in which the command checks out a branch. * "git quiltimport" learned "--keep-non-patch" option. * "git worktree remove" and "git worktree move" refused to work when there is a submodule involved. This has been loosened to ignore uninitialized submodules. * "git cherry-pick -m1" was forbidden when picking a non-merge commit, even though there _is_ parent number 1 for such a commit. This was done to avoid mistakes back when "cherry-pick" was about picking a single commit, but is no longer useful with "cherry-pick" that can pick a range of commits. Now the "-m$num" option is allowed when picking any commit, as long as $num names an existing parent of the commit. * Update "git multimail" from the upstream. * "git p4" update. * The "--format=" option of for-each-ref, branch and tag learned to show a few more traits of objects that can be learned by the object_info API. * "git rebase -i" learned to re-execute a command given with 'exec' to run after it failed the last time. * "git diff --color-moved-ws" updates. * Custom userformat "log --format" learned %S atom that stands for the tip the traversal reached the commit from, i.e. --source. * "git instaweb" learned to drive http.server that comes with "batteries included" Python installation (both Python2 & 3). * A new encoding UTF-16LE-BOM has been invented to force encoding to UTF-16 with BOM in little endian byte order, which cannot be directly generated by using
[ANNOUNCE] Git v2.20.1
The latest maintenance release Git v2.20.1 is now available at the usual places. The tarballs are found at: https://www.kernel.org/pub/software/scm/git/ The following public repositories all have a copy of the 'v2.20.1' tag and the 'maint' 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 Git v2.20.1 Release Notes = This release is primarily to fix brown-paper-bag breakages in the 2.20.0 release. Fixes since v2.20 - * A few newly added tests were not portable and caused minority platforms to report false breakages, which have been fixed. * Portability fix for a recent update to parse-options API. * "git help -a" did not work well when an overly long alias is defined, which has been corrected. * A recent update accidentally squelched an error message when the run_command API failed to run a missing command, which has been corrected. Changes since v2.20.0 are as follows: Derrick Stolee (1): .gitattributes: ensure t/oid-info/* has eol=lf Johannes Schindelin (4): help.h: fix coding style help -a: handle aliases with long names gracefully t4256: mark support files as LF-only t9902: 'send-email' test case requires PERL Junio C Hamano (2): run-command: report exec failure Git 2.20.1 Nguyễn Thái Ngọc Duy (1): parse-options: fix SunCC compiler warning
[ANNOUNCE] Git v2.20.0
The latest feature release Git v2.20.0 is now available at the usual places. It is comprised of 962 non-merge commits since v2.19.0 (this is by far the largest release in v2.x.x series), contributed by 83 people, 26 of which are new faces. The tarballs are found at: https://www.kernel.org/pub/software/scm/git/ The following public repositories all have a copy of the 'v2.20.0' 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.19.0 are as follows. Welcome to the Git development community! Aaron Lindsay, Alexander Pyhalov, Anton Serbulov, Brendan Forster, Carlo Marcelo Arenas Belón, Daniels Umanovskis, David Zych, Đoàn Trần Công Danh, Frederick Eaton, Greg Hurrell, James Knight, Jann Horn, Joshua Watt, Loo Rong Jie, Lucas De Marchi, Matthew DeVore, Mihir Mehta, Minh Nguyen, Nickolai Belakovski, Roger Strain, Sam McKelvie, Saulius Gurklys, Shulhan, Steven Fernandez, Strain, Roger L, and Tim Schumacher. Returning contributors who helped this release are as follows. Thanks for your continued support. Ævar Arnfjörð Bjarmason, Alban Gruin, Alexander Shopov, Andreas Gruenbacher, Andreas Heiduk, Antonio Ospite, Ben Peart, Brandon Williams, brian m. carlson, Christian Couder, Christian Hesse, Christopher Díaz Riveros, Denton Liu, Derrick Stolee, Elijah Newren, Eric Sunshine, Jean-Noël Avila, Jeff Hostetler, Jeff King, Jiang Xin, Johannes Schindelin, Johannes Sixt, Jonathan Nieder, Jonathan Tan, Jordi Mas, Josh Steadmon, Junio C Hamano, Karsten Blees, Luke Diamand, Martin Ågren, Max Kirillov, Michael Witten, Michał Górny, Nguyễn Thái Ngọc Duy, Noam Postavsky, Olga Telezhnaya, Peter Krefting, Phillip Wood, Pratik Karki, Rafael Ascensão, Ralf Thielow, Ramsay Jones, Rasmus Villemoes, René Scharfe, Sebastian Staudt, Stefan Beller, Stephen P. Smith, Steve Hoelzer, Sven Strickroth, SZEDER Gábor, Tao Qingyun, Taylor Blau, Thomas Gummerer, Todd Zullinger, Torsten Bögershausen, Trần Ngọc Quân, and Uwe Kleine-König. Git 2.20 Release Notes == Backward Compatibility Notes * "git branch -l " used to be a way to ask a reflog to be created while creating a new branch, but that is no longer the case. It is a short-hand for "git branch --list " now. * "git push" into refs/tags/* hierarchy is rejected without getting forced, but "git fetch" (misguidedly) used the "fast forwarding" rule used for the refs/heads/* hierarchy; this has been corrected, which means some fetches of tags that did not fail with older version of Git will fail without "--force" with this version. * "git help -a" now gives verbose output (same as "git help -av"). Those who want the old output may say "git help --no-verbose -a".. * "git cpn --help", when "cpn" is an alias to, say, "cherry-pick -n", reported only the alias expansion of "cpn" in earlier versions of Git. It now runs "git cherry-pick --help" to show the manual page of the command, while sending the alias expansion to the standard error stream. * "git send-email" learned to grab address-looking string on any trailer whose name ends with "-by". This is a backward-incompatible change. Adding "--suppress-cc=misc-by" on the command line, or setting sendemail.suppresscc configuration variable to "misc-by", can be used to disable this behaviour. Updates since v2.19 --- UI, Workflows & Features * Running "git clone" against a project that contain two files with pathnames that differ only in cases on a case insensitive filesystem would result in one of the files lost because the underlying filesystem is incapable of holding both at the same time. An attempt is made to detect such a case and warn. * "git checkout -b newbranch [HEAD]" should not have to do as much as checking out a commit different from HEAD. An attempt is made to optimize this special case. * "git rev-list --stdin --branches=" etc. did not quite work, which has been corrected. (merge 9ab9b5df0e ra/rev-parse-exclude-glob later to maint). * When editing a patch in a "git add -i" session, a hunk could be made to no-op. The "git apply" program used to reject a patch with such a no-op hunk to catch user mistakes, but it is now updated to explicitly allow a no-op hunk in an edited patch. (merge 22cb3835b9 js/apply-recount-allow-noop later to maint). * The URL to an MSDN page in a comment has been updated. (merge 2ef2ae2917 js/mingw-msdn-ur
Re: [ANNOUNCE] Git v2.18.0-rc1
Duy Nguyen writes: > On Mon, Jun 4, 2018 at 3:53 PM, Junio C Hamano wrote: >> * "git pull -recurse-submodules --rebase", when the submodule > > One dash is missing in --recurse-submodules Thanks, will fix.
Re: [ANNOUNCE] Git v2.18.0-rc1
Duy Nguyen writes: > On Mon, Jun 4, 2018 at 3:53 PM, Junio C Hamano wrote: >> * "git pull -recurse-submodules --rebase", when the submodule > > One dash is missing in --recurse-submodules Thanks, will fix.
[ANNOUNCE] Git v2.17.0
The latest feature release Git v2.17.0 is now available at the usual places. It is comprised of 516 non-merge commits since v2.16.0, contributed by 71 people, 20 of which are new faces. The tarballs are found at: https://www.kernel.org/pub/software/scm/git/ The following public repositories all have a copy of the 'v2.17.0' 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.16.0 are as follows. Welcome to the Git development community! Adam Borowski, Alban Gruin, Andreas G. Schacker, Bernhard M. Wiedemann, Christian Ludwig, Christopher Diaz Riveros, Gargi Sharma, Genki Sky, Gregory Herrero, Jon Simons, Juan F. Codagnone, Kim Gybels, Lucas Werkmeister, Mathias Rav, Michele Locati, Motoki Seki, Stefan Moch, Stephen R Guglielmo, Tatyana Krasnukha, and Thomas Levesque. Returning contributors who helped this release are as follows. Thanks for your continued support. Ævar Arnfjörð Bjarmason, Alexander Shopov, Alex Bennée, Ben Peart, Brandon Williams, brian m. carlson, Changwoo Ryu, Christian Couder, Daniel Knittl-Frank, David Pursehouse, Derrick Stolee, Elijah Newren, Eric Sunshine, Eric Wong, Jason Merrill, Jean-Noël Avila, Jeff Hostetler, Jeff King, Jiang Xin, Johannes Schindelin, Jonathan Nieder, Jonathan Tan, Jordi Mas, Junio C Hamano, Kaartic Sivaraam, Mårten Kongstad, Martin Ågren, Matthieu Moy, Michael Haggerty, Nathan Payre, Nguyễn Thái Ngọc Duy, Nicolas Morey-Chaisemartin, Olga Telezhnaya, Patryk Obara, Peter Krefting, Phillip Wood, Prathamesh Chavan, Ralf Thielow, Ramsay Jones, Randall S. Becker, Rasmus Villemoes, Ray Chen, René Scharfe, Robert P. J. Day, Stefan Beller, SZEDER Gábor, Thomas Gummerer, Todd Zullinger, Torsten Bögershausen, Trần Ngọc Quân, and Yasushi SHOJI. Git 2.17 Release Notes == Updates since v2.16 --- UI, Workflows & Features * "diff" family of commands learned "--find-object=" option to limit the findings to changes that involve the named object. * "git format-patch" learned to give 72-cols to diffstat, which is consistent with other line length limits the subcommand uses for its output meant for e-mails. * The log from "git daemon" can be redirected with a new option; one relevant use case is to send the log to standard error (instead of syslog) when running it from inetd. * "git rebase" learned to take "--allow-empty-message" option. * "git am" has learned the "--quit" option, in addition to the existing "--abort" option; having the pair mirrors a few other commands like "rebase" and "cherry-pick". * "git worktree add" learned to run the post-checkout hook, just like "git clone" runs it upon the initial checkout. * "git tag" learned an explicit "--edit" option that allows the message given via "-m" and "-F" to be further edited. * "git fetch --prune-tags" may be used as a handy short-hand for getting rid of stale tags that are locally held. * The new "--show-current-patch" option gives an end-user facing way to get the diff being applied when "git rebase" (and "git am") stops with a conflict. * "git add -p" used to offer "/" (look for a matching hunk) as a choice, even there was only one hunk, which has been corrected. Also the single-key help is now given only for keys that are enabled (e.g. help for '/' won't be shown when there is only one hunk). * Since Git 1.7.9, "git merge" defaulted to --no-ff (i.e. even when the side branch being merged is a descendant of the current commit, create a merge commit instead of fast-forwarding) when merging a tag object. This was appropriate default for integrators who pull signed tags from their downstream contributors, but caused an unnecessary merges when used by downstream contributors who habitually "catch up" their topic branches with tagged releases from the upstream. Update "git merge" to default to --no-ff only when merging a tag object that does *not* sit at its usual place in refs/tags/ hierarchy, and allow fast-forwarding otherwise, to mitigate the problem. * "git status" can spend a lot of cycles to compute the relation between the current branch and its upstream, which can now be disabled with "--no-ahead-behind" option. * "git diff" and friends learned funcname patterns for Go language source files. * "git send-email" learned "--reply-to=" option. * Funcname pattern u
[ANNOUNCE] Git v2.17.0
The latest feature release Git v2.17.0 is now available at the usual places. It is comprised of 516 non-merge commits since v2.16.0, contributed by 71 people, 20 of which are new faces. The tarballs are found at: https://www.kernel.org/pub/software/scm/git/ The following public repositories all have a copy of the 'v2.17.0' 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.16.0 are as follows. Welcome to the Git development community! Adam Borowski, Alban Gruin, Andreas G. Schacker, Bernhard M. Wiedemann, Christian Ludwig, Christopher Diaz Riveros, Gargi Sharma, Genki Sky, Gregory Herrero, Jon Simons, Juan F. Codagnone, Kim Gybels, Lucas Werkmeister, Mathias Rav, Michele Locati, Motoki Seki, Stefan Moch, Stephen R Guglielmo, Tatyana Krasnukha, and Thomas Levesque. Returning contributors who helped this release are as follows. Thanks for your continued support. Ævar Arnfjörð Bjarmason, Alexander Shopov, Alex Bennée, Ben Peart, Brandon Williams, brian m. carlson, Changwoo Ryu, Christian Couder, Daniel Knittl-Frank, David Pursehouse, Derrick Stolee, Elijah Newren, Eric Sunshine, Eric Wong, Jason Merrill, Jean-Noël Avila, Jeff Hostetler, Jeff King, Jiang Xin, Johannes Schindelin, Jonathan Nieder, Jonathan Tan, Jordi Mas, Junio C Hamano, Kaartic Sivaraam, Mårten Kongstad, Martin Ågren, Matthieu Moy, Michael Haggerty, Nathan Payre, Nguyễn Thái Ngọc Duy, Nicolas Morey-Chaisemartin, Olga Telezhnaya, Patryk Obara, Peter Krefting, Phillip Wood, Prathamesh Chavan, Ralf Thielow, Ramsay Jones, Randall S. Becker, Rasmus Villemoes, Ray Chen, René Scharfe, Robert P. J. Day, Stefan Beller, SZEDER Gábor, Thomas Gummerer, Todd Zullinger, Torsten Bögershausen, Trần Ngọc Quân, and Yasushi SHOJI. Git 2.17 Release Notes == Updates since v2.16 --- UI, Workflows & Features * "diff" family of commands learned "--find-object=" option to limit the findings to changes that involve the named object. * "git format-patch" learned to give 72-cols to diffstat, which is consistent with other line length limits the subcommand uses for its output meant for e-mails. * The log from "git daemon" can be redirected with a new option; one relevant use case is to send the log to standard error (instead of syslog) when running it from inetd. * "git rebase" learned to take "--allow-empty-message" option. * "git am" has learned the "--quit" option, in addition to the existing "--abort" option; having the pair mirrors a few other commands like "rebase" and "cherry-pick". * "git worktree add" learned to run the post-checkout hook, just like "git clone" runs it upon the initial checkout. * "git tag" learned an explicit "--edit" option that allows the message given via "-m" and "-F" to be further edited. * "git fetch --prune-tags" may be used as a handy short-hand for getting rid of stale tags that are locally held. * The new "--show-current-patch" option gives an end-user facing way to get the diff being applied when "git rebase" (and "git am") stops with a conflict. * "git add -p" used to offer "/" (look for a matching hunk) as a choice, even there was only one hunk, which has been corrected. Also the single-key help is now given only for keys that are enabled (e.g. help for '/' won't be shown when there is only one hunk). * Since Git 1.7.9, "git merge" defaulted to --no-ff (i.e. even when the side branch being merged is a descendant of the current commit, create a merge commit instead of fast-forwarding) when merging a tag object. This was appropriate default for integrators who pull signed tags from their downstream contributors, but caused an unnecessary merges when used by downstream contributors who habitually "catch up" their topic branches with tagged releases from the upstream. Update "git merge" to default to --no-ff only when merging a tag object that does *not* sit at its usual place in refs/tags/ hierarchy, and allow fast-forwarding otherwise, to mitigate the problem. * "git status" can spend a lot of cycles to compute the relation between the current branch and its upstream, which can now be disabled with "--no-ahead-behind" option. * "git diff" and friends learned funcname patterns for Go language source files. * "git send-email" learned "--reply-to=" option. * Funcname pattern u
[ANNOUNCE] Git v2.17.0-rc2
A release candidate Git v2.17.0-rc2 is now available for testing at the usual places. It is comprised of 499 non-merge commits since v2.16.0, contributed by 62 people, 19 of which are new faces. I am hoping that we can have the final version tagged at the end of coming weekend, before I fly out to Tokyo. I expect to be offline most of the next week after the final is tagged. 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.17.0-rc2' 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.16.0 are as follows. Welcome to the Git development community! Adam Borowski, Alban Gruin, Andreas G. Schacker, Bernhard M. Wiedemann, Christian Ludwig, Gargi Sharma, Genki Sky, Gregory Herrero, Jon Simons, Juan F. Codagnone, Kim Gybels, Lucas Werkmeister, Mathias Rav, Michele Locati, Motoki Seki, Stefan Moch, Stephen R Guglielmo, Tatyana Krasnukha, and Thomas Levesque. Returning contributors who helped this release are as follows. Thanks for your continued support. Ævar Arnfjörð Bjarmason, Alexander Shopov, Alex Bennée, Ben Peart, Brandon Williams, brian m. carlson, Christian Couder, Daniel Knittl-Frank, David Pursehouse, Derrick Stolee, Elijah Newren, Eric Sunshine, Eric Wong, Jason Merrill, Jeff Hostetler, Jeff King, Johannes Schindelin, Jonathan Nieder, Jonathan Tan, Junio C Hamano, Kaartic Sivaraam, Mårten Kongstad, Martin Ågren, Matthieu Moy, Michael Haggerty, Nathan Payre, Nguyễn Thái Ngọc Duy, Nicolas Morey-Chaisemartin, Olga Telezhnaya, Patryk Obara, Phillip Wood, Prathamesh Chavan, Ramsay Jones, Randall S. Becker, Rasmus Villemoes, René Scharfe, Robert P. J. Day, Stefan Beller, SZEDER Gábor, Thomas Gummerer, Todd Zullinger, Torsten Bögershausen, and Yasushi SHOJI. Git 2.17 Release Notes (draft) == Updates since v2.16 --- UI, Workflows & Features * "diff" family of commands learned "--find-object=" option to limit the findings to changes that involve the named object. * "git format-patch" learned to give 72-cols to diffstat, which is consistent with other line length limits the subcommand uses for its output meant for e-mails. * The log from "git daemon" can be redirected with a new option; one relevant use case is to send the log to standard error (instead of syslog) when running it from inetd. * "git rebase" learned to take "--allow-empty-message" option. * "git am" has learned the "--quit" option, in addition to the existing "--abort" option; having the pair mirrors a few other commands like "rebase" and "cherry-pick". * "git worktree add" learned to run the post-checkout hook, just like "git clone" runs it upon the initial checkout. * "git tag" learned an explicit "--edit" option that allows the message given via "-m" and "-F" to be further edited. * "git fetch --prune-tags" may be used as a handy short-hand for getting rid of stale tags that are locally held. * The new "--show-current-patch" option gives an end-user facing way to get the diff being applied when "git rebase" (and "git am") stops with a conflict. * "git add -p" used to offer "/" (look for a matching hunk) as a choice, even there was only one hunk, which has been corrected. Also the single-key help is now given only for keys that are enabled (e.g. help for '/' won't be shown when there is only one hunk). * Since Git 1.7.9, "git merge" defaulted to --no-ff (i.e. even when the side branch being merged is a descendant of the current commit, create a merge commit instead of fast-forwarding) when merging a tag object. This was appropriate default for integrators who pull signed tags from their downstream contributors, but caused an unnecessary merges when used by downstream contributors who habitually "catch up" their topic branches with tagged releases from the upstream. Update "git merge" to default to --no-ff only when merging a tag object that does *not* sit at its usual place in refs/tags/ hierarchy, and allow fast-forwarding otherwise, to mitigate the problem. * "git status" can spend a lot of cycles to compute the relation between the current branch and its upstream, which can now be disabled with "--no-ahead-behind" option. * "git diff" and friends learned funcname patterns for Go language source files. * &qu
[ANNOUNCE] Git v2.17.0-rc2
A release candidate Git v2.17.0-rc2 is now available for testing at the usual places. It is comprised of 499 non-merge commits since v2.16.0, contributed by 62 people, 19 of which are new faces. I am hoping that we can have the final version tagged at the end of coming weekend, before I fly out to Tokyo. I expect to be offline most of the next week after the final is tagged. 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.17.0-rc2' 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.16.0 are as follows. Welcome to the Git development community! Adam Borowski, Alban Gruin, Andreas G. Schacker, Bernhard M. Wiedemann, Christian Ludwig, Gargi Sharma, Genki Sky, Gregory Herrero, Jon Simons, Juan F. Codagnone, Kim Gybels, Lucas Werkmeister, Mathias Rav, Michele Locati, Motoki Seki, Stefan Moch, Stephen R Guglielmo, Tatyana Krasnukha, and Thomas Levesque. Returning contributors who helped this release are as follows. Thanks for your continued support. Ævar Arnfjörð Bjarmason, Alexander Shopov, Alex Bennée, Ben Peart, Brandon Williams, brian m. carlson, Christian Couder, Daniel Knittl-Frank, David Pursehouse, Derrick Stolee, Elijah Newren, Eric Sunshine, Eric Wong, Jason Merrill, Jeff Hostetler, Jeff King, Johannes Schindelin, Jonathan Nieder, Jonathan Tan, Junio C Hamano, Kaartic Sivaraam, Mårten Kongstad, Martin Ågren, Matthieu Moy, Michael Haggerty, Nathan Payre, Nguyễn Thái Ngọc Duy, Nicolas Morey-Chaisemartin, Olga Telezhnaya, Patryk Obara, Phillip Wood, Prathamesh Chavan, Ramsay Jones, Randall S. Becker, Rasmus Villemoes, René Scharfe, Robert P. J. Day, Stefan Beller, SZEDER Gábor, Thomas Gummerer, Todd Zullinger, Torsten Bögershausen, and Yasushi SHOJI. Git 2.17 Release Notes (draft) == Updates since v2.16 --- UI, Workflows & Features * "diff" family of commands learned "--find-object=" option to limit the findings to changes that involve the named object. * "git format-patch" learned to give 72-cols to diffstat, which is consistent with other line length limits the subcommand uses for its output meant for e-mails. * The log from "git daemon" can be redirected with a new option; one relevant use case is to send the log to standard error (instead of syslog) when running it from inetd. * "git rebase" learned to take "--allow-empty-message" option. * "git am" has learned the "--quit" option, in addition to the existing "--abort" option; having the pair mirrors a few other commands like "rebase" and "cherry-pick". * "git worktree add" learned to run the post-checkout hook, just like "git clone" runs it upon the initial checkout. * "git tag" learned an explicit "--edit" option that allows the message given via "-m" and "-F" to be further edited. * "git fetch --prune-tags" may be used as a handy short-hand for getting rid of stale tags that are locally held. * The new "--show-current-patch" option gives an end-user facing way to get the diff being applied when "git rebase" (and "git am") stops with a conflict. * "git add -p" used to offer "/" (look for a matching hunk) as a choice, even there was only one hunk, which has been corrected. Also the single-key help is now given only for keys that are enabled (e.g. help for '/' won't be shown when there is only one hunk). * Since Git 1.7.9, "git merge" defaulted to --no-ff (i.e. even when the side branch being merged is a descendant of the current commit, create a merge commit instead of fast-forwarding) when merging a tag object. This was appropriate default for integrators who pull signed tags from their downstream contributors, but caused an unnecessary merges when used by downstream contributors who habitually "catch up" their topic branches with tagged releases from the upstream. Update "git merge" to default to --no-ff only when merging a tag object that does *not* sit at its usual place in refs/tags/ hierarchy, and allow fast-forwarding otherwise, to mitigate the problem. * "git status" can spend a lot of cycles to compute the relation between the current branch and its upstream, which can now be disabled with "--no-ahead-behind" option. * "git diff" and friends learned funcname patterns for Go language source files. * &qu
Re: [PATCH 2/2] send-email: supply a --send-delay=1 by default
Eric Sunshinewrites: > A minor point: Are you sure that it's git-format-patch that's being > careful about arranging Date: to display in the desired order, and not > git-send-email? Looking at old patches I still have hanging around > which were created with git-format-patch, I see the Date: headers are > wildly out of order, presumably because the date is taken from > Author-Date: and the patches were heavily rebased. send-email uses the current time as the timestamp it lets MTA to see (and for a N-patch series, the first patch gets current time minus N, and later patches get newer timestamps with 1 second increment). The Date: field in the input file to the command has nothing to participate in this process; sending a series that has patches that have been shuffled with "rebase -i" would still give older timestamp to the earlier message while sending the series out. That is sufficient for any MUA that is capable of sorting the messages in the sender's timestamp order; even though there is no way to force the actual order in which an MTA on the receiving end sees the messages, it is not necessary and it would not help X-<.
Re: [PATCH 2/2] send-email: supply a --send-delay=1 by default
Eric Sunshine writes: > A minor point: Are you sure that it's git-format-patch that's being > careful about arranging Date: to display in the desired order, and not > git-send-email? Looking at old patches I still have hanging around > which were created with git-format-patch, I see the Date: headers are > wildly out of order, presumably because the date is taken from > Author-Date: and the patches were heavily rebased. send-email uses the current time as the timestamp it lets MTA to see (and for a N-patch series, the first patch gets current time minus N, and later patches get newer timestamps with 1 second increment). The Date: field in the input file to the command has nothing to participate in this process; sending a series that has patches that have been shuffled with "rebase -i" would still give older timestamp to the earlier message while sending the series out. That is sufficient for any MUA that is capable of sorting the messages in the sender's timestamp order; even though there is no way to force the actual order in which an MTA on the receiving end sees the messages, it is not necessary and it would not help X-<.
Re: [PATCH 2/2] send-email: supply a --send-delay=1 by default
"brian m. carlson"writes: > I'm not sure that this is going to have the effect you want it to have. > Let me give an example to demonstrate why. > ... > In short, I don't think this is going to be especially helpful because > it won't change the status quo for a lot of senders. You'd have to > insert some significant delay in order to get the effect you desire, and > even then things could still be delivered out of order. Thanks for explaining it clearly. In the past on this list those who do not get the store-and-forward nature of e-mail transport have brought this up a few times, but this approach fundamentally do not work, at least for the purpose of forcing ordering of messages at the receiving end.
Re: [PATCH 2/2] send-email: supply a --send-delay=1 by default
"brian m. carlson" writes: > I'm not sure that this is going to have the effect you want it to have. > Let me give an example to demonstrate why. > ... > In short, I don't think this is going to be especially helpful because > it won't change the status quo for a lot of senders. You'd have to > insert some significant delay in order to get the effect you desire, and > even then things could still be delivered out of order. Thanks for explaining it clearly. In the past on this list those who do not get the store-and-forward nature of e-mail transport have brought this up a few times, but this approach fundamentally do not work, at least for the purpose of forcing ordering of messages at the receiving end.
[ANNOUNCE] Git v2.16.3
The latest maintenance release Git v2.16.3 is now available at the usual places. It merges many small fixes and documentation updates that have been in the 'master' branch for a few weeks. The tarballs are found at: https://www.kernel.org/pub/software/scm/git/ The following public repositories all have a copy of the 'v2.16.3' tag and the 'maint' 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 Git v2.16.3 Release Notes = Fixes since v2.16.2 --- * "git status" after moving a path in the working tree (hence making it appear "removed") and then adding with the -N option (hence making that appear "added") detected it as a rename, but did not report the old and new pathnames correctly. * "git commit --fixup" did not allow "-m" option to be used at the same time; allow it to annotate resulting commit with more text. * When resetting the working tree files recursively, the working tree of submodules are now also reset to match. * Fix for a commented-out code to adjust it to a rather old API change around object ID. * When there are too many changed paths, "git diff" showed a warning message but in the middle of a line. * The http tracing code, often used to debug connection issues, learned to redact potentially sensitive information from its output so that it can be more safely sharable. * Crash fix for a corner case where an error codepath tried to unlock what it did not acquire lock on. * The split-index mode had a few corner case bugs fixed. * Assorted fixes to "git daemon". * Completion of "git merge -s" (in contrib/) did not work well in non-C locale. * Workaround for segfault with more recent versions of SVN. * Recently introduced leaks in fsck have been plugged. * Travis CI integration now builds the executable in 'script' phase to follow the established practice, rather than during 'before_script' phase. This allows the CI categorize the failures better ('failed' is project's fault, 'errored' is build environment's). Also contains various documentation updates and code clean-ups. Changes since v2.16.2 are as follows: Ben Peart (1): fsmonitor: update documentation to remove reference to invalid config settings Brandon Williams (1): oidmap: ensure map is initialized Christian Ludwig (1): t9001: use existing helper in send-email test Eric Sunshine (2): git-worktree.txt: fix missing ")" typo git-worktree.txt: fix indentation of example and text of 'add' command Eric Wong (2): fsck: fix leak when traversing trees git-svn: control destruction order to avoid segfault Genki Sky (1): test-lib.sh: unset XDG_CACHE_HOME Jeff King (10): t5570: use ls-remote instead of clone for interp tests t/lib-git-daemon: record daemon log daemon: fix off-by-one in logging extended attributes daemon: handle NULs in extended attribute string t/lib-git-daemon: add network-protocol helpers daemon: fix length computation in newline stripping t0205: drop redundant test git-sh-i18n: check GETTEXT_POISON before USE_GETTEXT_SCHEME commit: drop uses of get_cached_commit_buffer() revision: drop --show-all option Jonathan Tan (2): http: support cookie redaction when tracing http: support omitting data from traces Juan F. Codagnone (1): mailinfo: avoid segfault when can't open files Junio C Hamano (2): worktree: say that "add" takes an arbitrary commit in short-help Git 2.16.3 Kaartic Sivaraam (2): Doc/gitsubmodules: make some changes to improve readability and syntax Doc/git-submodule: improve readability and grammar of a sentence Mathias Rav (1): files_initial_transaction_commit(): only unlock if locked Motoki Seki (1): Documentation/gitsubmodules.txt: avoid non-ASCII apostrophes Nguyễn Thái Ngọc Duy (12): t2203: test status output with porcelain v2 format Use DIFF_DETECT_RENAME for detect_rename assignments wt-status.c: coding style fix wt-status.c: catch unhandled diff status codes wt-status.c: rename rename-related fields in wt_status_change_data wt-status.c: handle worktree renames read-cache.c: change type of "temp" in write_shared_index() read-cache.c: move tempfile creation/cleanup out of write_shared_index diff.c: flush stdout before printing rename warnings read-cache: don't write index twice if we can't write shared index completion: fix completing merge strategies on non-C locales gitignore.txt: elaborate shel
[ANNOUNCE] Git v2.16.3
The latest maintenance release Git v2.16.3 is now available at the usual places. It merges many small fixes and documentation updates that have been in the 'master' branch for a few weeks. The tarballs are found at: https://www.kernel.org/pub/software/scm/git/ The following public repositories all have a copy of the 'v2.16.3' tag and the 'maint' 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 Git v2.16.3 Release Notes = Fixes since v2.16.2 --- * "git status" after moving a path in the working tree (hence making it appear "removed") and then adding with the -N option (hence making that appear "added") detected it as a rename, but did not report the old and new pathnames correctly. * "git commit --fixup" did not allow "-m" option to be used at the same time; allow it to annotate resulting commit with more text. * When resetting the working tree files recursively, the working tree of submodules are now also reset to match. * Fix for a commented-out code to adjust it to a rather old API change around object ID. * When there are too many changed paths, "git diff" showed a warning message but in the middle of a line. * The http tracing code, often used to debug connection issues, learned to redact potentially sensitive information from its output so that it can be more safely sharable. * Crash fix for a corner case where an error codepath tried to unlock what it did not acquire lock on. * The split-index mode had a few corner case bugs fixed. * Assorted fixes to "git daemon". * Completion of "git merge -s" (in contrib/) did not work well in non-C locale. * Workaround for segfault with more recent versions of SVN. * Recently introduced leaks in fsck have been plugged. * Travis CI integration now builds the executable in 'script' phase to follow the established practice, rather than during 'before_script' phase. This allows the CI categorize the failures better ('failed' is project's fault, 'errored' is build environment's). Also contains various documentation updates and code clean-ups. Changes since v2.16.2 are as follows: Ben Peart (1): fsmonitor: update documentation to remove reference to invalid config settings Brandon Williams (1): oidmap: ensure map is initialized Christian Ludwig (1): t9001: use existing helper in send-email test Eric Sunshine (2): git-worktree.txt: fix missing ")" typo git-worktree.txt: fix indentation of example and text of 'add' command Eric Wong (2): fsck: fix leak when traversing trees git-svn: control destruction order to avoid segfault Genki Sky (1): test-lib.sh: unset XDG_CACHE_HOME Jeff King (10): t5570: use ls-remote instead of clone for interp tests t/lib-git-daemon: record daemon log daemon: fix off-by-one in logging extended attributes daemon: handle NULs in extended attribute string t/lib-git-daemon: add network-protocol helpers daemon: fix length computation in newline stripping t0205: drop redundant test git-sh-i18n: check GETTEXT_POISON before USE_GETTEXT_SCHEME commit: drop uses of get_cached_commit_buffer() revision: drop --show-all option Jonathan Tan (2): http: support cookie redaction when tracing http: support omitting data from traces Juan F. Codagnone (1): mailinfo: avoid segfault when can't open files Junio C Hamano (2): worktree: say that "add" takes an arbitrary commit in short-help Git 2.16.3 Kaartic Sivaraam (2): Doc/gitsubmodules: make some changes to improve readability and syntax Doc/git-submodule: improve readability and grammar of a sentence Mathias Rav (1): files_initial_transaction_commit(): only unlock if locked Motoki Seki (1): Documentation/gitsubmodules.txt: avoid non-ASCII apostrophes Nguyễn Thái Ngọc Duy (12): t2203: test status output with porcelain v2 format Use DIFF_DETECT_RENAME for detect_rename assignments wt-status.c: coding style fix wt-status.c: catch unhandled diff status codes wt-status.c: rename rename-related fields in wt_status_change_data wt-status.c: handle worktree renames read-cache.c: change type of "temp" in write_shared_index() read-cache.c: move tempfile creation/cleanup out of write_shared_index diff.c: flush stdout before printing rename warnings read-cache: don't write index twice if we can't write shared index completion: fix completing merge strategies on non-C locales gitignore.txt: elaborate shel
[ANNOUNCE] Git v2.17.0-rc1
A release candidate Git v2.17.0-rc1 is now available for testing at the usual places. It is comprised of 493 non-merge commits since v2.16.0, contributed by 62 people, 19 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.17.0-rc1' 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.16.0 are as follows. Welcome to the Git development community! Adam Borowski, Alban Gruin, Andreas G. Schacker, Bernhard M. Wiedemann, Christian Ludwig, Gargi Sharma, Genki Sky, Gregory Herrero, Jon Simons, Juan F. Codagnone, Kim Gybels, Lucas Werkmeister, Mathias Rav, Michele Locati, Motoki Seki, Stefan Moch, Stephen R Guglielmo, Tatyana Krasnukha, and Thomas Levesque. Returning contributors who helped this release are as follows. Thanks for your continued support. Ævar Arnfjörð Bjarmason, Alexander Shopov, Alex Bennée, Ben Peart, Brandon Williams, brian m. carlson, Christian Couder, Daniel Knittl-Frank, David Pursehouse, Derrick Stolee, Elijah Newren, Eric Sunshine, Eric Wong, Jason Merrill, Jeff Hostetler, Jeff King, Johannes Schindelin, Jonathan Nieder, Jonathan Tan, Junio C Hamano, Kaartic Sivaraam, Mårten Kongstad, Martin Ågren, Matthieu Moy, Michael Haggerty, Nathan Payre, Nguyễn Thái Ngọc Duy, Nicolas Morey-Chaisemartin, Olga Telezhnaya, Patryk Obara, Phillip Wood, Prathamesh Chavan, Ramsay Jones, Randall S. Becker, Rasmus Villemoes, René Scharfe, Robert P. J. Day, Stefan Beller, SZEDER Gábor, Thomas Gummerer, Todd Zullinger, Torsten Bögershausen, and Yasushi SHOJI. Git 2.17 Release Notes (draft) == Updates since v2.16 --- UI, Workflows & Features * "diff" family of commands learned "--find-object=" option to limit the findings to changes that involve the named object. * "git format-patch" learned to give 72-cols to diffstat, which is consistent with other line length limits the subcommand uses for its output meant for e-mails. * The log from "git daemon" can be redirected with a new option; one relevant use case is to send the log to standard error (instead of syslog) when running it from inetd. * "git rebase" learned to take "--allow-empty-message" option. * "git am" has learned the "--quit" option, in addition to the existing "--abort" option; having the pair mirrors a few other commands like "rebase" and "cherry-pick". * "git worktree add" learned to run the post-checkout hook, just like "git clone" runs it upon the initial checkout. * "git tag" learned an explicit "--edit" option that allows the message given via "-m" and "-F" to be further edited. * "git fetch --prune-tags" may be used as a handy short-hand for getting rid of stale tags that are locally held. * The new "--show-current-patch" option gives an end-user facing way to get the diff being applied when "git rebase" (and "git am") stops with a conflict. * "git add -p" used to offer "/" (look for a matching hunk) as a choice, even there was only one hunk, which has been corrected. Also the single-key help is now given only for keys that are enabled (e.g. help for '/' won't be shown when there is only one hunk). * Since Git 1.7.9, "git merge" defaulted to --no-ff (i.e. even when the side branch being merged is a descendant of the current commit, create a merge commit instead of fast-forwarding) when merging a tag object. This was appropriate default for integrators who pull signed tags from their downstream contributors, but caused an unnecessary merges when used by downstream contributors who habitually "catch up" their topic branches with tagged releases from the upstream. Update "git merge" to default to --no-ff only when merging a tag object that does *not* sit at its usual place in refs/tags/ hierarchy, and allow fast-forwarding otherwise, to mitigate the problem. * "git status" can spend a lot of cycles to compute the relation between the current branch and its upstream, which can now be disabled with "--no-ahead-behind" option. * "git diff" and friends learned funcname patterns for Go language source files. * "git send-email" learned "--reply-to=" option. * Funcname pattern used for C# now recognizes "async" keyword. * In a way similar to how "git tag" l
[ANNOUNCE] Git v2.17.0-rc1
A release candidate Git v2.17.0-rc1 is now available for testing at the usual places. It is comprised of 493 non-merge commits since v2.16.0, contributed by 62 people, 19 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.17.0-rc1' 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.16.0 are as follows. Welcome to the Git development community! Adam Borowski, Alban Gruin, Andreas G. Schacker, Bernhard M. Wiedemann, Christian Ludwig, Gargi Sharma, Genki Sky, Gregory Herrero, Jon Simons, Juan F. Codagnone, Kim Gybels, Lucas Werkmeister, Mathias Rav, Michele Locati, Motoki Seki, Stefan Moch, Stephen R Guglielmo, Tatyana Krasnukha, and Thomas Levesque. Returning contributors who helped this release are as follows. Thanks for your continued support. Ævar Arnfjörð Bjarmason, Alexander Shopov, Alex Bennée, Ben Peart, Brandon Williams, brian m. carlson, Christian Couder, Daniel Knittl-Frank, David Pursehouse, Derrick Stolee, Elijah Newren, Eric Sunshine, Eric Wong, Jason Merrill, Jeff Hostetler, Jeff King, Johannes Schindelin, Jonathan Nieder, Jonathan Tan, Junio C Hamano, Kaartic Sivaraam, Mårten Kongstad, Martin Ågren, Matthieu Moy, Michael Haggerty, Nathan Payre, Nguyễn Thái Ngọc Duy, Nicolas Morey-Chaisemartin, Olga Telezhnaya, Patryk Obara, Phillip Wood, Prathamesh Chavan, Ramsay Jones, Randall S. Becker, Rasmus Villemoes, René Scharfe, Robert P. J. Day, Stefan Beller, SZEDER Gábor, Thomas Gummerer, Todd Zullinger, Torsten Bögershausen, and Yasushi SHOJI. Git 2.17 Release Notes (draft) == Updates since v2.16 --- UI, Workflows & Features * "diff" family of commands learned "--find-object=" option to limit the findings to changes that involve the named object. * "git format-patch" learned to give 72-cols to diffstat, which is consistent with other line length limits the subcommand uses for its output meant for e-mails. * The log from "git daemon" can be redirected with a new option; one relevant use case is to send the log to standard error (instead of syslog) when running it from inetd. * "git rebase" learned to take "--allow-empty-message" option. * "git am" has learned the "--quit" option, in addition to the existing "--abort" option; having the pair mirrors a few other commands like "rebase" and "cherry-pick". * "git worktree add" learned to run the post-checkout hook, just like "git clone" runs it upon the initial checkout. * "git tag" learned an explicit "--edit" option that allows the message given via "-m" and "-F" to be further edited. * "git fetch --prune-tags" may be used as a handy short-hand for getting rid of stale tags that are locally held. * The new "--show-current-patch" option gives an end-user facing way to get the diff being applied when "git rebase" (and "git am") stops with a conflict. * "git add -p" used to offer "/" (look for a matching hunk) as a choice, even there was only one hunk, which has been corrected. Also the single-key help is now given only for keys that are enabled (e.g. help for '/' won't be shown when there is only one hunk). * Since Git 1.7.9, "git merge" defaulted to --no-ff (i.e. even when the side branch being merged is a descendant of the current commit, create a merge commit instead of fast-forwarding) when merging a tag object. This was appropriate default for integrators who pull signed tags from their downstream contributors, but caused an unnecessary merges when used by downstream contributors who habitually "catch up" their topic branches with tagged releases from the upstream. Update "git merge" to default to --no-ff only when merging a tag object that does *not* sit at its usual place in refs/tags/ hierarchy, and allow fast-forwarding otherwise, to mitigate the problem. * "git status" can spend a lot of cycles to compute the relation between the current branch and its upstream, which can now be disabled with "--no-ahead-behind" option. * "git diff" and friends learned funcname patterns for Go language source files. * "git send-email" learned "--reply-to=" option. * Funcname pattern used for C# now recognizes "async" keyword. * In a way similar to how "git tag" l
Re: [PATCH] RelNotes: add details on Perl module changes
Todd Zullingerwrites: > Document changes to core and non-core Perl module handling in 2.17. > ... > Maybe something like this? I had intended to suggest a note about > NO_PERL_CPAN_FALLBACKS as well, so that's included too. Thanks. A help like this in individual areas from people more familiar than I am is greatly appreciated.
Re: [PATCH] RelNotes: add details on Perl module changes
Todd Zullinger writes: > Document changes to core and non-core Perl module handling in 2.17. > ... > Maybe something like this? I had intended to suggest a note about > NO_PERL_CPAN_FALLBACKS as well, so that's included too. Thanks. A help like this in individual areas from people more familiar than I am is greatly appreciated.
Re: [ANNOUNCE] Git v2.17.0-rc0
Junio C Hamano <gits...@pobox.com> writes: > I haven't wordsmithed it fully, but it should say something along > the lines of ... > > Documentation/RelNotes/2.16.0.txt | 10 ++ > 1 file changed, 10 insertions(+) Eh, of course the addition should go to 2.17 release notes ;-) I just happened to be reviewing a topic forked earlier.
Re: [ANNOUNCE] Git v2.17.0-rc0
Junio C Hamano writes: > I haven't wordsmithed it fully, but it should say something along > the lines of ... > > Documentation/RelNotes/2.16.0.txt | 10 ++ > 1 file changed, 10 insertions(+) Eh, of course the addition should go to 2.17 release notes ;-) I just happened to be reviewing a topic forked earlier.
Re: [ANNOUNCE] Git v2.17.0-rc0
Ævar Arnfjörð Bjarmason <ava...@gmail.com> writes: > On Fri, Mar 16 2018, Junio C. Hamano jotted: > >> gitweb: hard-depend on the Digest::MD5 5.8 module > > I've just noticed this now, but while this module is in 5.8 RedHat's > butchered perl doesn't have it in the base system, thus this introduces > the do-we-even-care regression that git's full test suite won't pass on > a RedHat (or CentOS) base system, because the gitweb tests will fail to > "use" Digest::MD5. > > I'm slightly leaning towards not caring about it, since there's no other > perl distributor that does this sort of split-out of the core, and if > you're on a RedHat system they're solving your package problems, so this > really only impacts the edge case of git developers and redhat > packagers, both of whom can just do "yum install -y perl-Digest-MD5" to > fix it. Thanks for noting. I agree that this is not something that requires more than a mention near the beginning of release notes. I haven't wordsmithed it fully, but it should say something along the lines of ... Documentation/RelNotes/2.16.0.txt | 10 ++ 1 file changed, 10 insertions(+) diff --git a/Documentation/RelNotes/2.16.0.txt b/Documentation/RelNotes/2.16.0.txt index 8f0461eefd..8b4c24200b 100644 --- a/Documentation/RelNotes/2.16.0.txt +++ b/Documentation/RelNotes/2.16.0.txt @@ -6,6 +6,16 @@ Backward compatibility notes and other notable changes. * Use of an empty string as a pathspec element that is used for 'everything matches' is now an error. + * Part of Git that depends on Perl have required at least Perl 5.8 + since Git v1.7.4 released in 2010, but we used to assume some core + modules from Perl distribution may not exist on the system and did + a conditional "eval { require <> }"; we no longer do this. + On a platform that ships a stripped-down Perl by default, the user + may have to install modules the platform chooses not to ship as + part of its core (e.g. Digest::MD5, File::Temp, File::Spec, + Net::SMTP, NET::Domain). RedHat/CentOS excludes Digest::MD5 from + its base installation, for example. + Updates since v2.15 ---
Re: [ANNOUNCE] Git v2.17.0-rc0
Ævar Arnfjörð Bjarmason writes: > On Fri, Mar 16 2018, Junio C. Hamano jotted: > >> gitweb: hard-depend on the Digest::MD5 5.8 module > > I've just noticed this now, but while this module is in 5.8 RedHat's > butchered perl doesn't have it in the base system, thus this introduces > the do-we-even-care regression that git's full test suite won't pass on > a RedHat (or CentOS) base system, because the gitweb tests will fail to > "use" Digest::MD5. > > I'm slightly leaning towards not caring about it, since there's no other > perl distributor that does this sort of split-out of the core, and if > you're on a RedHat system they're solving your package problems, so this > really only impacts the edge case of git developers and redhat > packagers, both of whom can just do "yum install -y perl-Digest-MD5" to > fix it. Thanks for noting. I agree that this is not something that requires more than a mention near the beginning of release notes. I haven't wordsmithed it fully, but it should say something along the lines of ... Documentation/RelNotes/2.16.0.txt | 10 ++ 1 file changed, 10 insertions(+) diff --git a/Documentation/RelNotes/2.16.0.txt b/Documentation/RelNotes/2.16.0.txt index 8f0461eefd..8b4c24200b 100644 --- a/Documentation/RelNotes/2.16.0.txt +++ b/Documentation/RelNotes/2.16.0.txt @@ -6,6 +6,16 @@ Backward compatibility notes and other notable changes. * Use of an empty string as a pathspec element that is used for 'everything matches' is now an error. + * Part of Git that depends on Perl have required at least Perl 5.8 + since Git v1.7.4 released in 2010, but we used to assume some core + modules from Perl distribution may not exist on the system and did + a conditional "eval { require <> }"; we no longer do this. + On a platform that ships a stripped-down Perl by default, the user + may have to install modules the platform chooses not to ship as + part of its core (e.g. Digest::MD5, File::Temp, File::Spec, + Net::SMTP, NET::Domain). RedHat/CentOS excludes Digest::MD5 from + its base installation, for example. + Updates since v2.15 ---
[ANNOUNCE] Git v2.17.0-rc0
An early preview release Git v2.17.0-rc0 is now available for testing at the usual places. It is comprised of 474 non-merge commits since v2.16.0, contributed by 60 people, 18 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.17.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.16.0 are as follows. Welcome to the Git development community! Adam Borowski, Alban Gruin, Andreas G. Schacker, Bernhard M. Wiedemann, Christian Ludwig, Gargi Sharma, Genki Sky, Gregory Herrero, Jon Simons, Juan F. Codagnone, Kim Gybels, Lucas Werkmeister, Mathias Rav, Motoki Seki, Stefan Moch, Stephen R Guglielmo, Tatyana Krasnukha, and Thomas Levesque. Returning contributors who helped this release are as follows. Thanks for your continued support. Ævar Arnfjörð Bjarmason, Alexander Shopov, Alex Bennée, Ben Peart, Brandon Williams, brian m. carlson, Christian Couder, Daniel Knittl-Frank, Derrick Stolee, Elijah Newren, Eric Sunshine, Eric Wong, Jason Merrill, Jeff Hostetler, Jeff King, Johannes Schindelin, Jonathan Nieder, Jonathan Tan, Junio C Hamano, Kaartic Sivaraam, Mårten Kongstad, Martin Ågren, Matthieu Moy, Michael Haggerty, Nathan Payre, Nguyễn Thái Ngọc Duy, Nicolas Morey-Chaisemartin, Olga Telezhnaya, Patryk Obara, Phillip Wood, Prathamesh Chavan, Ramsay Jones, Randall S. Becker, Rasmus Villemoes, René Scharfe, Robert P. J. Day, Stefan Beller, SZEDER Gábor, Thomas Gummerer, Todd Zullinger, Torsten Bögershausen, and Yasushi SHOJI. Git 2.17 Release Notes (draft) == Updates since v2.16 --- UI, Workflows & Features * "diff" family of commands learned "--find-object=" option to limit the findings to changes that involve the named object. * "git format-patch" learned to give 72-cols to diffstat, which is consistent with other line length limits the subcommand uses for its output meant for e-mails. * The log from "git daemon" can be redirected with a new option; one relevant use case is to send the log to standard error (instead of syslog) when running it from inetd. * "git rebase" learned to take "--allow-empty-message" option. * "git am" has learned the "--quit" option, in addition to the existing "--abort" option; having the pair mirrors a few other commands like "rebase" and "cherry-pick". * "git worktree add" learned to run the post-checkout hook, just like "git clone" runs it upon the initial checkout. * "git tag" learned an explicit "--edit" option that allows the message given via "-m" and "-F" to be further edited. * "git fetch --prune-tags" may be used as a handy short-hand for getting rid of stale tags that are locally held. * The new "--show-current-patch" option gives an end-user facing way to get the diff being applied when "git rebase" (and "git am") stops with a conflict. * "git add -p" used to offer "/" (look for a matching hunk) as a choice, even there was only one hunk, which has been corrected. Also the single-key help is now given only for keys that are enabled (e.g. help for '/' won't be shown when there is only one hunk). * Since Git 1.7.9, "git merge" defaulted to --no-ff (i.e. even when the side branch being merged is a descendant of the current commit, create a merge commit instead of fast-forwarding) when merging a tag object. This was appropriate default for integrators who pull signed tags from their downstream contributors, but caused an unnecessary merges when used by downstream contributors who habitually "catch up" their topic branches with tagged releases from the upstream. Update "git merge" to default to --no-ff only when merging a tag object that does *not* sit at its usual place in refs/tags/ hierarchy, and allow fast-forwarding otherwise, to mitigate the problem. * "git status" can spend a lot of cycles to compute the relation between the current branch and its upstream, which can now be disabled with "--no-ahead-behind" option. * "git diff" and friends learned funcname patterns for Go language source files. * "git send-email" learned "--reply-to=" option. * Funcname pattern used for C# now recognizes "async" keyword. Performance, Internal Implementation, Development Support etc. * More perf t
[ANNOUNCE] Git v2.17.0-rc0
An early preview release Git v2.17.0-rc0 is now available for testing at the usual places. It is comprised of 474 non-merge commits since v2.16.0, contributed by 60 people, 18 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.17.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.16.0 are as follows. Welcome to the Git development community! Adam Borowski, Alban Gruin, Andreas G. Schacker, Bernhard M. Wiedemann, Christian Ludwig, Gargi Sharma, Genki Sky, Gregory Herrero, Jon Simons, Juan F. Codagnone, Kim Gybels, Lucas Werkmeister, Mathias Rav, Motoki Seki, Stefan Moch, Stephen R Guglielmo, Tatyana Krasnukha, and Thomas Levesque. Returning contributors who helped this release are as follows. Thanks for your continued support. Ævar Arnfjörð Bjarmason, Alexander Shopov, Alex Bennée, Ben Peart, Brandon Williams, brian m. carlson, Christian Couder, Daniel Knittl-Frank, Derrick Stolee, Elijah Newren, Eric Sunshine, Eric Wong, Jason Merrill, Jeff Hostetler, Jeff King, Johannes Schindelin, Jonathan Nieder, Jonathan Tan, Junio C Hamano, Kaartic Sivaraam, Mårten Kongstad, Martin Ågren, Matthieu Moy, Michael Haggerty, Nathan Payre, Nguyễn Thái Ngọc Duy, Nicolas Morey-Chaisemartin, Olga Telezhnaya, Patryk Obara, Phillip Wood, Prathamesh Chavan, Ramsay Jones, Randall S. Becker, Rasmus Villemoes, René Scharfe, Robert P. J. Day, Stefan Beller, SZEDER Gábor, Thomas Gummerer, Todd Zullinger, Torsten Bögershausen, and Yasushi SHOJI. Git 2.17 Release Notes (draft) == Updates since v2.16 --- UI, Workflows & Features * "diff" family of commands learned "--find-object=" option to limit the findings to changes that involve the named object. * "git format-patch" learned to give 72-cols to diffstat, which is consistent with other line length limits the subcommand uses for its output meant for e-mails. * The log from "git daemon" can be redirected with a new option; one relevant use case is to send the log to standard error (instead of syslog) when running it from inetd. * "git rebase" learned to take "--allow-empty-message" option. * "git am" has learned the "--quit" option, in addition to the existing "--abort" option; having the pair mirrors a few other commands like "rebase" and "cherry-pick". * "git worktree add" learned to run the post-checkout hook, just like "git clone" runs it upon the initial checkout. * "git tag" learned an explicit "--edit" option that allows the message given via "-m" and "-F" to be further edited. * "git fetch --prune-tags" may be used as a handy short-hand for getting rid of stale tags that are locally held. * The new "--show-current-patch" option gives an end-user facing way to get the diff being applied when "git rebase" (and "git am") stops with a conflict. * "git add -p" used to offer "/" (look for a matching hunk) as a choice, even there was only one hunk, which has been corrected. Also the single-key help is now given only for keys that are enabled (e.g. help for '/' won't be shown when there is only one hunk). * Since Git 1.7.9, "git merge" defaulted to --no-ff (i.e. even when the side branch being merged is a descendant of the current commit, create a merge commit instead of fast-forwarding) when merging a tag object. This was appropriate default for integrators who pull signed tags from their downstream contributors, but caused an unnecessary merges when used by downstream contributors who habitually "catch up" their topic branches with tagged releases from the upstream. Update "git merge" to default to --no-ff only when merging a tag object that does *not* sit at its usual place in refs/tags/ hierarchy, and allow fast-forwarding otherwise, to mitigate the problem. * "git status" can spend a lot of cycles to compute the relation between the current branch and its upstream, which can now be disabled with "--no-ahead-behind" option. * "git diff" and friends learned funcname patterns for Go language source files. * "git send-email" learned "--reply-to=" option. * Funcname pattern used for C# now recognizes "async" keyword. Performance, Internal Implementation, Development Support etc. * More perf t
[ANNOUNCE] Git v2.16.2
The latest maintenance release Git v2.16.2 is now available at the usual places, with small fixes that are already in the 'master' front. The tarballs are found at: https://www.kernel.org/pub/software/scm/git/ The following public repositories all have a copy of the 'v2.16.2' tag and the 'maint' 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 Git v2.16.2 Release Notes = Fixes since v2.16.1 --- * An old regression in "git describe --all $annotated_tag^0" has been fixed. * "git svn dcommit" did not take into account the fact that a svn+ssh:// URL with a username@ (typically used for pushing) refers to the same SVN repository without the username@ and failed when svn.pushmergeinfo option is set. * "git merge -Xours/-Xtheirs" learned to use our/their version when resolving a conflicting updates to a symbolic link. * "git clone $there $here" is allowed even when here directory exists as long as it is an empty directory, but the command incorrectly removed it upon a failure of the operation. * "git stash -- " incorrectly blew away untracked files in the directory that matched the pathspec, which has been corrected. * "git add -p" was taught to ignore local changes to submodules as they do not interfere with the partial addition of regular changes anyway. Also contains various documentation updates and code clean-ups. Changes since v2.16.1 are as follows: Andreas G. Schacker (1): doc/read-tree: remove obsolete remark Daniel Knittl-Frank (1): describe: prepend "tags/" when describing tags with embedded name Jason Merrill (1): git-svn: fix svn.pushmergeinfo handling of svn+ssh usernames. Jeff King (4): t5600: fix outdated comment about unborn HEAD t5600: modernize style clone: factor out dir_exists() helper clone: do not clean up directories we didn't create Junio C Hamano (2): merge: teach -Xours/-Xtheirs to symbolic link merge Git 2.16.2 Nguyễn Thái Ngọc Duy (1): add--interactive: ignore submodule changes except HEAD René Scharfe (9): commit: avoid allocation in clear_commit_marks_many() commit: use clear_commit_marks_many() in remove_redundant() ref-filter: use clear_commit_marks_many() in do_merge_filter() object: add clear_commit_marks_all() bisect: avoid using the rev_info flag leak_pending bundle: avoid using the rev_info flag leak_pending checkout: avoid using the rev_info flag leak_pending revision: remove the unused flag leak_pending commit: remove unused function clear_commit_marks_for_object_array() Thomas Gummerer (1): stash: don't delete untracked files that match pathspec Ævar Arnfjörð Bjarmason (2): perf: amend the grep tests to test grep.threads cat-file doc: document that -e will return some output
[ANNOUNCE] Git v2.16.2
The latest maintenance release Git v2.16.2 is now available at the usual places, with small fixes that are already in the 'master' front. The tarballs are found at: https://www.kernel.org/pub/software/scm/git/ The following public repositories all have a copy of the 'v2.16.2' tag and the 'maint' 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 Git v2.16.2 Release Notes = Fixes since v2.16.1 --- * An old regression in "git describe --all $annotated_tag^0" has been fixed. * "git svn dcommit" did not take into account the fact that a svn+ssh:// URL with a username@ (typically used for pushing) refers to the same SVN repository without the username@ and failed when svn.pushmergeinfo option is set. * "git merge -Xours/-Xtheirs" learned to use our/their version when resolving a conflicting updates to a symbolic link. * "git clone $there $here" is allowed even when here directory exists as long as it is an empty directory, but the command incorrectly removed it upon a failure of the operation. * "git stash -- " incorrectly blew away untracked files in the directory that matched the pathspec, which has been corrected. * "git add -p" was taught to ignore local changes to submodules as they do not interfere with the partial addition of regular changes anyway. Also contains various documentation updates and code clean-ups. Changes since v2.16.1 are as follows: Andreas G. Schacker (1): doc/read-tree: remove obsolete remark Daniel Knittl-Frank (1): describe: prepend "tags/" when describing tags with embedded name Jason Merrill (1): git-svn: fix svn.pushmergeinfo handling of svn+ssh usernames. Jeff King (4): t5600: fix outdated comment about unborn HEAD t5600: modernize style clone: factor out dir_exists() helper clone: do not clean up directories we didn't create Junio C Hamano (2): merge: teach -Xours/-Xtheirs to symbolic link merge Git 2.16.2 Nguyễn Thái Ngọc Duy (1): add--interactive: ignore submodule changes except HEAD René Scharfe (9): commit: avoid allocation in clear_commit_marks_many() commit: use clear_commit_marks_many() in remove_redundant() ref-filter: use clear_commit_marks_many() in do_merge_filter() object: add clear_commit_marks_all() bisect: avoid using the rev_info flag leak_pending bundle: avoid using the rev_info flag leak_pending checkout: avoid using the rev_info flag leak_pending revision: remove the unused flag leak_pending commit: remove unused function clear_commit_marks_for_object_array() Thomas Gummerer (1): stash: don't delete untracked files that match pathspec Ævar Arnfjörð Bjarmason (2): perf: amend the grep tests to test grep.threads cat-file doc: document that -e will return some output
Re: linux-next: unnecessary merge in the v4l-dvb tree
Linus Torvalds <torva...@linux-foundation.org> writes: > On Tue, Feb 13, 2018 at 9:18 AM, Junio C Hamano <gits...@pobox.com> wrote: >> >> That makes me wonder if another heuristic I floated earlier is more >> appropriate. When merging a tag object T, if refs/tags/T exists and >> it is that tag object, then an updated "merge" would default to "--ff"; >> otherwise, it would keep the current default of creating a merge even >> when we could fast-forward, in order to record that tag T in the >> resulting history. > > Oooh. Yes, that sounds like the right thing to do. > > So the "no fast-forward" logic would trigger only if the name we used > for merging is one of the temporary ones (ie .git/{FETCH,MERGE}_HEAD), > not if the mentioned tag is already a normal tag reference. > > Then it's very explicitly about "don't lose the signing information". > > I'd still have to teach people to use "--only-ff" if they don't do the > "fetch and merge" model but literally just do "git pull upstream > vX.Y", but at least the case Mauro describes would automatically just > DTRT. > > Me likey. The implementation cannot exactly be "did the user give FETCH_HEAD or v4.16-rc1 from the command line?", because we'd want to catch it when Mauro says "git fetch linus && git merge v4.16-rc1" and behave identically as "git pull linus v4.16-rc1" (and the latter internally gets turned into "git merge FETCH_HEAD"). So, instead, we read the "tag" line from the tag object to learn the tagname T, see if refs/tags/T exists and points at that object, to see if we are Mauro who follows your tags, or if we are you who fetch and merge contributors' "for-linus" signed tag (which I am assuming you won't contaminate your refs/tags/ hierarchy with). There are a few fallouts in the testsuite if we go this route. I am not quite decided if I like the approach. builtin/merge.c | 42 ++ t/t6200-fmt-merge-msg.sh | 2 +- t/t7600-merge.sh | 2 +- 3 files changed, 40 insertions(+), 6 deletions(-) diff --git a/builtin/merge.c b/builtin/merge.c index 30264cfd7c..45c7916505 100644 --- a/builtin/merge.c +++ b/builtin/merge.c @@ -33,6 +33,7 @@ #include "sequencer.h" #include "string-list.h" #include "packfile.h" +#include "tag.h" #define DEFAULT_TWOHEAD (1<<0) #define DEFAULT_OCTOPUS (1<<1) @@ -1125,6 +1126,42 @@ static struct commit_list *collect_parents(struct commit *head_commit, return remoteheads; } +static int merging_a_throwaway_tag(struct commit *commit) +{ + const char *tag_ref; + struct object_id oid; + + /* Are we merging a tag? */ + if (!merge_remote_util(commit) || + !merge_remote_util(commit)->obj || + merge_remote_util(commit)->obj->type != OBJ_TAG) + return 0; + + /* +* Now we know we are merging a tag object. Are we downstream +* and following the tags from upstream? If so, we must have +* the tag object pointed at by "refs/tags/$T" where $T is the +* tagname recorded in the tag object. We want to allow such +* a "just to catch up" merge to fast-forward. +*/ + tag_ref = xstrfmt("refs/tags/%s", + ((struct tag *)merge_remote_util(commit)->obj)->tag); + + if (!read_ref(tag_ref, ) && + !oidcmp(, _remote_util(commit)->obj->oid)) + return 0; + + /* +* Otherwise, we are playing an integrator's role, making a +* merge with a throw-away tag from a contributor with +* something like "git pull $contributor $signed_tag". +* We want to forbid such a merge from fast-forwarding +* by default; otherwise we would not keep the signature +* anywhere. +*/ + return 1; +} + int cmd_merge(int argc, const char **argv, const char *prefix) { struct object_id result_tree, stash, head_oid; @@ -1322,10 +1359,7 @@ int cmd_merge(int argc, const char **argv, const char *prefix) oid_to_hex(>object.oid)); setenv(buf.buf, merge_remote_util(commit)->name, 1); strbuf_reset(); - if (fast_forward != FF_ONLY && - merge_remote_util(commit) && - merge_remote_util(commit)->obj && - merge_remote_util(commit)->obj->type == OBJ_TAG) + if (fast_forward != FF_ONLY && merging_a_throwaway_tag(commit)) fast_forward = FF_NO; } diff --git a/t/t6200-fmt-merge-msg.sh b/t/t6200-fmt-merge-msg
Re: linux-next: unnecessary merge in the v4l-dvb tree
Linus Torvalds writes: > On Tue, Feb 13, 2018 at 9:18 AM, Junio C Hamano wrote: >> >> That makes me wonder if another heuristic I floated earlier is more >> appropriate. When merging a tag object T, if refs/tags/T exists and >> it is that tag object, then an updated "merge" would default to "--ff"; >> otherwise, it would keep the current default of creating a merge even >> when we could fast-forward, in order to record that tag T in the >> resulting history. > > Oooh. Yes, that sounds like the right thing to do. > > So the "no fast-forward" logic would trigger only if the name we used > for merging is one of the temporary ones (ie .git/{FETCH,MERGE}_HEAD), > not if the mentioned tag is already a normal tag reference. > > Then it's very explicitly about "don't lose the signing information". > > I'd still have to teach people to use "--only-ff" if they don't do the > "fetch and merge" model but literally just do "git pull upstream > vX.Y", but at least the case Mauro describes would automatically just > DTRT. > > Me likey. The implementation cannot exactly be "did the user give FETCH_HEAD or v4.16-rc1 from the command line?", because we'd want to catch it when Mauro says "git fetch linus && git merge v4.16-rc1" and behave identically as "git pull linus v4.16-rc1" (and the latter internally gets turned into "git merge FETCH_HEAD"). So, instead, we read the "tag" line from the tag object to learn the tagname T, see if refs/tags/T exists and points at that object, to see if we are Mauro who follows your tags, or if we are you who fetch and merge contributors' "for-linus" signed tag (which I am assuming you won't contaminate your refs/tags/ hierarchy with). There are a few fallouts in the testsuite if we go this route. I am not quite decided if I like the approach. builtin/merge.c | 42 ++ t/t6200-fmt-merge-msg.sh | 2 +- t/t7600-merge.sh | 2 +- 3 files changed, 40 insertions(+), 6 deletions(-) diff --git a/builtin/merge.c b/builtin/merge.c index 30264cfd7c..45c7916505 100644 --- a/builtin/merge.c +++ b/builtin/merge.c @@ -33,6 +33,7 @@ #include "sequencer.h" #include "string-list.h" #include "packfile.h" +#include "tag.h" #define DEFAULT_TWOHEAD (1<<0) #define DEFAULT_OCTOPUS (1<<1) @@ -1125,6 +1126,42 @@ static struct commit_list *collect_parents(struct commit *head_commit, return remoteheads; } +static int merging_a_throwaway_tag(struct commit *commit) +{ + const char *tag_ref; + struct object_id oid; + + /* Are we merging a tag? */ + if (!merge_remote_util(commit) || + !merge_remote_util(commit)->obj || + merge_remote_util(commit)->obj->type != OBJ_TAG) + return 0; + + /* +* Now we know we are merging a tag object. Are we downstream +* and following the tags from upstream? If so, we must have +* the tag object pointed at by "refs/tags/$T" where $T is the +* tagname recorded in the tag object. We want to allow such +* a "just to catch up" merge to fast-forward. +*/ + tag_ref = xstrfmt("refs/tags/%s", + ((struct tag *)merge_remote_util(commit)->obj)->tag); + + if (!read_ref(tag_ref, ) && + !oidcmp(, _remote_util(commit)->obj->oid)) + return 0; + + /* +* Otherwise, we are playing an integrator's role, making a +* merge with a throw-away tag from a contributor with +* something like "git pull $contributor $signed_tag". +* We want to forbid such a merge from fast-forwarding +* by default; otherwise we would not keep the signature +* anywhere. +*/ + return 1; +} + int cmd_merge(int argc, const char **argv, const char *prefix) { struct object_id result_tree, stash, head_oid; @@ -1322,10 +1359,7 @@ int cmd_merge(int argc, const char **argv, const char *prefix) oid_to_hex(>object.oid)); setenv(buf.buf, merge_remote_util(commit)->name, 1); strbuf_reset(); - if (fast_forward != FF_ONLY && - merge_remote_util(commit) && - merge_remote_util(commit)->obj && - merge_remote_util(commit)->obj->type == OBJ_TAG) + if (fast_forward != FF_ONLY && merging_a_throwaway_tag(commit)) fast_forward = FF_NO; } diff --git a/t/t6200-fmt-merge-msg.sh b/t/t6200-fmt-merge-msg.sh index 2e2fb0e957..a54a52aaa4 100755 --- a/t/t6200-fmt-merge-m
Re: linux-next: unnecessary merge in the v4l-dvb tree
Mauro Carvalho Chehabwrites: > Yes, that's my pain. I don't want ff only when pulling from others, > only when pulling from upstream tree. > >> >> We may want per-remote equivalent for it, i.e. e.g. >> >> [pull] >> ff=false ;# good default for collecting contributions >> >> [remote "torvalds"] >> pullFF = only ;# good default for catching up >> >> or something like that, perhaps? > > > Yeah, something like that works. Please notice, however, that what I > usually do is: > > $ git remote update torvalds > $ git merge > (or git pull . ) > > So, for the above to work, it should store somehow the remote from > where a tag came from. That makes me wonder if another heuristic I floated earlier is more appropriate. When merging a tag object T, if refs/tags/T exists and it is that tag object, then an updated "merge" would default to "--ff"; otherwise, it would keep the current default of creating a merge even when we could fast-forward, in order to record that tag T in the resulting history. Of course, end users can use command line options to override such heuristics anyway, but if the behaviour based on the new heuristic is easy to explain and understand, and covers majority of the use cases without command line override, then we might not even need a new configuration mechanism like remove.torvalds.pullFF mentioned above.
Re: linux-next: unnecessary merge in the v4l-dvb tree
Mauro Carvalho Chehab writes: > Yes, that's my pain. I don't want ff only when pulling from others, > only when pulling from upstream tree. > >> >> We may want per-remote equivalent for it, i.e. e.g. >> >> [pull] >> ff=false ;# good default for collecting contributions >> >> [remote "torvalds"] >> pullFF = only ;# good default for catching up >> >> or something like that, perhaps? > > > Yeah, something like that works. Please notice, however, that what I > usually do is: > > $ git remote update torvalds > $ git merge > (or git pull . ) > > So, for the above to work, it should store somehow the remote from > where a tag came from. That makes me wonder if another heuristic I floated earlier is more appropriate. When merging a tag object T, if refs/tags/T exists and it is that tag object, then an updated "merge" would default to "--ff"; otherwise, it would keep the current default of creating a merge even when we could fast-forward, in order to record that tag T in the resulting history. Of course, end users can use command line options to override such heuristics anyway, but if the behaviour based on the new heuristic is easy to explain and understand, and covers majority of the use cases without command line override, then we might not even need a new configuration mechanism like remove.torvalds.pullFF mentioned above.
Re: linux-next: unnecessary merge in the v4l-dvb tree
Linus Torvaldswrites: > And some maintainers end up using multiple repositories as branches > (the old _original_ git model). Again, you can just use "git fetch + > git reset", of course, but that's a bit unsafe. In contrast, doing > "git pull --ff-only" is a safe convenient operation that does both the > fetch and the update to whatever state. > > But you do need that "--ff-only" to avoid the merge. OK. I guess it is legit (and semi-sensible) for downstream contributors to "git pull --ff-only $upstream $release_tag_X" to bring their long-running topic currently based on release X-1 up to date with respect to release X. It probably makes more sense than rebasing on top of release X, even though it makes a lot less sense than merging their topics into release X. As you said, pull of a tag that forbids fast-forward by default is rather old development (I am kind of surprised that it was so old, in v1.7.9), so it may be a bit difficult to transition. There is [pull] ff = only but pull.ff is quite global, and not good for intermediate level maintainers who pull to integrate work of their downstream (for which they do want the current "do not ff, record the tag in a merge commit" behaviour) and also pull to catch up from their upstream (which they want "ff-when-able"). They need to control between ff=only and ff=when-able, depending on whom they are pulling from. We may want per-remote equivalent for it, i.e. e.g. [pull] ff=false ;# good default for collecting contributions [remote "torvalds"] pullFF = only ;# good default for catching up or something like that, perhaps?
Re: linux-next: unnecessary merge in the v4l-dvb tree
Linus Torvalds writes: > And some maintainers end up using multiple repositories as branches > (the old _original_ git model). Again, you can just use "git fetch + > git reset", of course, but that's a bit unsafe. In contrast, doing > "git pull --ff-only" is a safe convenient operation that does both the > fetch and the update to whatever state. > > But you do need that "--ff-only" to avoid the merge. OK. I guess it is legit (and semi-sensible) for downstream contributors to "git pull --ff-only $upstream $release_tag_X" to bring their long-running topic currently based on release X-1 up to date with respect to release X. It probably makes more sense than rebasing on top of release X, even though it makes a lot less sense than merging their topics into release X. As you said, pull of a tag that forbids fast-forward by default is rather old development (I am kind of surprised that it was so old, in v1.7.9), so it may be a bit difficult to transition. There is [pull] ff = only but pull.ff is quite global, and not good for intermediate level maintainers who pull to integrate work of their downstream (for which they do want the current "do not ff, record the tag in a merge commit" behaviour) and also pull to catch up from their upstream (which they want "ff-when-able"). They need to control between ff=only and ff=when-able, depending on whom they are pulling from. We may want per-remote equivalent for it, i.e. e.g. [pull] ff=false ;# good default for collecting contributions [remote "torvalds"] pullFF = only ;# good default for catching up or something like that, perhaps?
Re: linux-next: unnecessary merge in the v4l-dvb tree
Linus Torvaldswrites: > Maybe we could just tell people to have something like > >git config --global alias.update pull --ff-only > > and use that for "try to update to upstream". I guess our mails crossed. I admit that I indeed wondered why you were not giving your usual "downstream shouldn't do pointless pull from upstream" briefly but focused too much on how to tweak the default without thinking through. But I wonder why "update to upstream" is merging a signed tag in the first place. Wouldn't downstream's "try to keep up with" pull be grabbing from branch tips, not tags?
Re: linux-next: unnecessary merge in the v4l-dvb tree
Linus Torvalds writes: > Maybe we could just tell people to have something like > >git config --global alias.update pull --ff-only > > and use that for "try to update to upstream". I guess our mails crossed. I admit that I indeed wondered why you were not giving your usual "downstream shouldn't do pointless pull from upstream" briefly but focused too much on how to tweak the default without thinking through. But I wonder why "update to upstream" is merging a signed tag in the first place. Wouldn't downstream's "try to keep up with" pull be grabbing from branch tips, not tags?
Re: linux-next: unnecessary merge in the v4l-dvb tree
Linus Torvaldswrites: > On Mon, Feb 12, 2018 at 1:00 PM, Stephen Rothwell > wrote: > > The problem, of course, is that since git is distributed, git doesn't > know who is "upstream" and who is "downstream", so there's no > _technical_ difference between merging a development tree, and a > development tree doing a back-merge of the upstream tree. > > Maybe it was a mistake to make signed tag merges non-fast-forward, > since they cause these kinds of issues with people who use "pull" to > update their otherwise unmodified trees. > > I can always teach myself to just use --no-ff, since I end up doing > things like verifying at the signatures anyway. > > Junio, comments? I have a slight suspicion that allowing 'pull' to fast-forward even when merging a signed tag when it is pulling from a configured default remote for the branch the user is on, and otherwise keeping the current behaviour, would make majority of people from both camps happier, but I also have a strong conviction that it is being too clever and making it hard to explain to people to do such a dwim that tries to guess which way is 'upstream'. Another clue we _might_ be able to take advantage of is that when upstream maintainers merge a signed tag, we do *not* fetch and store the tag from downstream contributers in our local repository (it is likely that we have --no-tags in remote..tagopt), but when downstream contributers sync from us with "git pull", they do fetch and store our tags in their local repository. So "git pull $somewhere $tag" that defaults to "--ff" when the tag gets stored somewhere in refs/ (or more explicitly, in refs/tags/) and defaults to "--no-ff" otherwise (i.e. the tag is fetched only to be recorded in the resulting merge, without ever stored in any of our refs), might be a good balance. And it is easy to explain: "We realize that it was a mistake to unconditionally default to --no-ff and we are reverting the default to --ff, but with a twist. When we tell 'pull' to grab a tag, if we do not store it anywhere in our local ref space, that would mean the tag is totally lost if the pull fast-forwards. That is why we still use --no-ff in such a case."
Re: linux-next: unnecessary merge in the v4l-dvb tree
Linus Torvalds writes: > On Mon, Feb 12, 2018 at 1:00 PM, Stephen Rothwell > wrote: > > The problem, of course, is that since git is distributed, git doesn't > know who is "upstream" and who is "downstream", so there's no > _technical_ difference between merging a development tree, and a > development tree doing a back-merge of the upstream tree. > > Maybe it was a mistake to make signed tag merges non-fast-forward, > since they cause these kinds of issues with people who use "pull" to > update their otherwise unmodified trees. > > I can always teach myself to just use --no-ff, since I end up doing > things like verifying at the signatures anyway. > > Junio, comments? I have a slight suspicion that allowing 'pull' to fast-forward even when merging a signed tag when it is pulling from a configured default remote for the branch the user is on, and otherwise keeping the current behaviour, would make majority of people from both camps happier, but I also have a strong conviction that it is being too clever and making it hard to explain to people to do such a dwim that tries to guess which way is 'upstream'. Another clue we _might_ be able to take advantage of is that when upstream maintainers merge a signed tag, we do *not* fetch and store the tag from downstream contributers in our local repository (it is likely that we have --no-tags in remote..tagopt), but when downstream contributers sync from us with "git pull", they do fetch and store our tags in their local repository. So "git pull $somewhere $tag" that defaults to "--ff" when the tag gets stored somewhere in refs/ (or more explicitly, in refs/tags/) and defaults to "--no-ff" otherwise (i.e. the tag is fetched only to be recorded in the resulting merge, without ever stored in any of our refs), might be a good balance. And it is easy to explain: "We realize that it was a mistake to unconditionally default to --no-ff and we are reverting the default to --ff, but with a twist. When we tell 'pull' to grab a tag, if we do not store it anywhere in our local ref space, that would mean the tag is totally lost if the pull fast-forwards. That is why we still use --no-ff in such a case."
[ANNOUNCE] Git v2.16.1
The latest maintenance release Git v2.16.1 is now available at the usual places. This is solely to fix a brown-paper bag bug that broke "git clone" on case insensitive filesystems of certain projects. The tarballs are found at: https://www.kernel.org/pub/software/scm/git/ The following public repositories all have a copy of the 'v2.16.1' tag and the 'maint' 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 Git v2.16.1 Release Notes = Fixes since v2.16 - * "git clone" segfaulted when cloning a project that happens to track two paths that differ only in case on a case insensitive filesystem. Does not contain any other documentation updates or code clean-ups. Changes since v2.16.0 are as follows: Eric Sunshine (1): t5601-clone: test case-conflicting files on case-insensitive filesystem Junio C Hamano (1): Git 2.16.1 brian m. carlson (1): repository: pre-initialize hash algo pointer
[ANNOUNCE] Git v2.16.1
The latest maintenance release Git v2.16.1 is now available at the usual places. This is solely to fix a brown-paper bag bug that broke "git clone" on case insensitive filesystems of certain projects. The tarballs are found at: https://www.kernel.org/pub/software/scm/git/ The following public repositories all have a copy of the 'v2.16.1' tag and the 'maint' 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 Git v2.16.1 Release Notes = Fixes since v2.16 - * "git clone" segfaulted when cloning a project that happens to track two paths that differ only in case on a case insensitive filesystem. Does not contain any other documentation updates or code clean-ups. Changes since v2.16.0 are as follows: Eric Sunshine (1): t5601-clone: test case-conflicting files on case-insensitive filesystem Junio C Hamano (1): Git 2.16.1 brian m. carlson (1): repository: pre-initialize hash algo pointer
[ANNOUNCE] Git v2.16.0
The latest feature release Git v2.16.0 is now available at the usual places. It is comprised of 509 non-merge commits since v2.15.0, contributed by 91 people, 26 of which are new faces. The tarballs are found at: https://www.kernel.org/pub/software/scm/git/ The following public repositories all have a copy of the 'v2.16.0' 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.15.0 are as follows. Welcome to the Git development community! Albert Astals Cid, Antoine Beaupré, Damien Marié, Daniel Bensoussan, Fangyi Zhou, Florian Klink, Gennady Kupava, Guillaume Castagnino, Haaris Mehmood, Hans Jerry Illikainen, Ingo Ruhnke, Jakub Bereżański, Jean Carlo Machado, Julien Dusser, J Wyman, Kevin, Louis Bettens, Łukasz Stelmach, Marius Paliga, Olga Telezhnaya, Rafael Ascensão, Robert Abel, Robert P. J. Day, Shuyu Wei, Wei Shuyu, and Zhou Fangyi. Returning contributors who helped this release are as follows. Thanks for your continued support. Adam Dinwoodie, Ævar Arnfjörð Bjarmason, Alexander Shopov, Alex Vandiver, Anders Kaseorg, Andrey Okoshkin, Ann T Ropea, Beat Bolli, Ben Peart, Brandon Williams, brian m. carlson, Carlos Martín Nieto, Changwoo Ryu, Charles Bailey, Christian Couder, Christopher Díaz Riveros, Dave Borowitz, Dennis Kaarsemaker, Derrick Stolee, Dimitriy Ryazantcev, Elijah Newren, Emily Xie, Eric Sunshine, Eric Wong, Heiko Voigt, Jacob Keller, Jameson Miller, Jean-Noel Avila, Jeff Hostetler, Jeff King, Jiang Xin, Johannes Schindelin, Jonathan Nieder, Jonathan Tan, Jordi Mas, Junio C Hamano, Kaartic Sivaraam, Kevin Daudt, Lars Schneider, Liam Beguin, Luke Diamand, Martin Ågren, Michael Haggerty, Nicolas Morey-Chaisemartin, Peter Krefting, Phil Hord, Phillip Wood, Pranit Bauva, Prathamesh Chavan, Ralf Thielow, Ramsay Jones, Randall S. Becker, Rasmus Villemoes, René Scharfe, Simon Ruderich, Stefan Beller, Steffen Prohaska, Stephan Beyer, SZEDER Gábor, Thomas Braun, Thomas Gummerer, Todd Zullinger, Torsten Bögershausen, Trần Ngọc Quân, and W. Trevor King. Git 2.16 Release Notes == Backward compatibility notes and other notable changes. * Use of an empty string as a pathspec element that is used for 'everything matches' is now an error. Updates since v2.15 --- UI, Workflows & Features * An empty string as a pathspec element that means "everything" i.e. 'git add ""', is now illegal. We started this by first deprecating and warning a pathspec that has such an element in 2.11 (Nov 2016). * A hook script that is set unexecutable is simply ignored. Git notifies when such a file is ignored, unless the message is squelched via advice.ignoredHook configuration. * "git pull" has been taught to accept "--[no-]signoff" option and pass it down to "git merge". * The "--push-option=" option to "git push" now defaults to a list of strings configured via push.pushOption variable. * "gitweb" checks if a directory is searchable with Perl's "-x" operator, which can be enhanced by using "filetest 'access'" pragma, which now we do. * "git stash save" has been deprecated in favour of "git stash push". * The set of paths output from "git status --ignored" was tied closely with its "--untracked=" option, but now it can be controlled more flexibly. Most notably, a directory that is ignored because it is listed to be ignored in the ignore/exclude mechanism can be handled differently from a directory that ends up to be ignored only because all files in it are ignored. * The remote-helper for talking to MediaWiki has been updated to truncate an overlong pagename so that ".mw" suffix can still be added. * The remote-helper for talking to MediaWiki has been updated to work with mediawiki namespaces. * The "--format=..." option "git for-each-ref" takes learned to show the name of the 'remote' repository and the ref at the remote side that is affected for 'upstream' and 'push' via "%(push:remotename)" and friends. * Doc and message updates to teach users "bisect view" is a synonym for "bisect visualize". * "git bisect run" that did not specify any command to run used to go ahead and treated all commits to be tested as 'good'. This has been corrected by making the command error out. * The SubmittingPatches document has been converted to produce an HTML version via AsciiDoc/Asciidoctor. * We learned to optionally talk to a file system monitor via new fsmonitor extension
[ANNOUNCE] Git v2.16.0
The latest feature release Git v2.16.0 is now available at the usual places. It is comprised of 509 non-merge commits since v2.15.0, contributed by 91 people, 26 of which are new faces. The tarballs are found at: https://www.kernel.org/pub/software/scm/git/ The following public repositories all have a copy of the 'v2.16.0' 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.15.0 are as follows. Welcome to the Git development community! Albert Astals Cid, Antoine Beaupré, Damien Marié, Daniel Bensoussan, Fangyi Zhou, Florian Klink, Gennady Kupava, Guillaume Castagnino, Haaris Mehmood, Hans Jerry Illikainen, Ingo Ruhnke, Jakub Bereżański, Jean Carlo Machado, Julien Dusser, J Wyman, Kevin, Louis Bettens, Łukasz Stelmach, Marius Paliga, Olga Telezhnaya, Rafael Ascensão, Robert Abel, Robert P. J. Day, Shuyu Wei, Wei Shuyu, and Zhou Fangyi. Returning contributors who helped this release are as follows. Thanks for your continued support. Adam Dinwoodie, Ævar Arnfjörð Bjarmason, Alexander Shopov, Alex Vandiver, Anders Kaseorg, Andrey Okoshkin, Ann T Ropea, Beat Bolli, Ben Peart, Brandon Williams, brian m. carlson, Carlos Martín Nieto, Changwoo Ryu, Charles Bailey, Christian Couder, Christopher Díaz Riveros, Dave Borowitz, Dennis Kaarsemaker, Derrick Stolee, Dimitriy Ryazantcev, Elijah Newren, Emily Xie, Eric Sunshine, Eric Wong, Heiko Voigt, Jacob Keller, Jameson Miller, Jean-Noel Avila, Jeff Hostetler, Jeff King, Jiang Xin, Johannes Schindelin, Jonathan Nieder, Jonathan Tan, Jordi Mas, Junio C Hamano, Kaartic Sivaraam, Kevin Daudt, Lars Schneider, Liam Beguin, Luke Diamand, Martin Ågren, Michael Haggerty, Nicolas Morey-Chaisemartin, Peter Krefting, Phil Hord, Phillip Wood, Pranit Bauva, Prathamesh Chavan, Ralf Thielow, Ramsay Jones, Randall S. Becker, Rasmus Villemoes, René Scharfe, Simon Ruderich, Stefan Beller, Steffen Prohaska, Stephan Beyer, SZEDER Gábor, Thomas Braun, Thomas Gummerer, Todd Zullinger, Torsten Bögershausen, Trần Ngọc Quân, and W. Trevor King. Git 2.16 Release Notes == Backward compatibility notes and other notable changes. * Use of an empty string as a pathspec element that is used for 'everything matches' is now an error. Updates since v2.15 --- UI, Workflows & Features * An empty string as a pathspec element that means "everything" i.e. 'git add ""', is now illegal. We started this by first deprecating and warning a pathspec that has such an element in 2.11 (Nov 2016). * A hook script that is set unexecutable is simply ignored. Git notifies when such a file is ignored, unless the message is squelched via advice.ignoredHook configuration. * "git pull" has been taught to accept "--[no-]signoff" option and pass it down to "git merge". * The "--push-option=" option to "git push" now defaults to a list of strings configured via push.pushOption variable. * "gitweb" checks if a directory is searchable with Perl's "-x" operator, which can be enhanced by using "filetest 'access'" pragma, which now we do. * "git stash save" has been deprecated in favour of "git stash push". * The set of paths output from "git status --ignored" was tied closely with its "--untracked=" option, but now it can be controlled more flexibly. Most notably, a directory that is ignored because it is listed to be ignored in the ignore/exclude mechanism can be handled differently from a directory that ends up to be ignored only because all files in it are ignored. * The remote-helper for talking to MediaWiki has been updated to truncate an overlong pagename so that ".mw" suffix can still be added. * The remote-helper for talking to MediaWiki has been updated to work with mediawiki namespaces. * The "--format=..." option "git for-each-ref" takes learned to show the name of the 'remote' repository and the ref at the remote side that is affected for 'upstream' and 'push' via "%(push:remotename)" and friends. * Doc and message updates to teach users "bisect view" is a synonym for "bisect visualize". * "git bisect run" that did not specify any command to run used to go ahead and treated all commits to be tested as 'good'. This has been corrected by making the command error out. * The SubmittingPatches document has been converted to produce an HTML version via AsciiDoc/Asciidoctor. * We learned to optionally talk to a file system monitor via new fsmonitor extension
[ANNOUNCE] Git v2.16.0-rc2
A release candidate Git v2.16.0-rc2 is now available for testing at the usual places. It is comprised of 483 non-merge commits since v2.15.0, contributed by 80 people, 23 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.16.0-rc2' 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.15.0 are as follows. Welcome to the Git development community! Albert Astals Cid, Antoine Beaupré, Damien Marié, Daniel Bensoussan, Florian Klink, Gennady Kupava, Guillaume Castagnino, Haaris Mehmood, Hans Jerry Illikainen, Ingo Ruhnke, Jakub Bereżański, Jean Carlo Machado, Julien Dusser, J Wyman, Kevin, Łukasz Stelmach, Marius Paliga, Olga Telezhnaya, Rafael Ascensão, Robert Abel, Robert P. J. Day, Shuyu Wei, and Wei Shuyu. Returning contributors who helped this release are as follows. Thanks for your continued support. Adam Dinwoodie, Ævar Arnfjörð Bjarmason, Alex Vandiver, Anders Kaseorg, Andrey Okoshkin, Ann T Ropea, Beat Bolli, Ben Peart, Brandon Williams, brian m. carlson, Carlos Martín Nieto, Charles Bailey, Christian Couder, Dave Borowitz, Dennis Kaarsemaker, Derrick Stolee, Elijah Newren, Emily Xie, Eric Sunshine, Eric Wong, Heiko Voigt, Jacob Keller, Jameson Miller, Jean-Noel Avila, Jeff Hostetler, Jeff King, Johannes Schindelin, Jonathan Nieder, Jonathan Tan, Junio C Hamano, Kaartic Sivaraam, Kevin Daudt, Lars Schneider, Liam Beguin, Luke Diamand, Martin Ågren, Michael Haggerty, Nicolas Morey-Chaisemartin, Phil Hord, Phillip Wood, Pranit Bauva, Prathamesh Chavan, Ralf Thielow, Ramsay Jones, Randall S. Becker, Rasmus Villemoes, René Scharfe, Simon Ruderich, Stefan Beller, Steffen Prohaska, Stephan Beyer, SZEDER Gábor, Thomas Braun, Thomas Gummerer, Todd Zullinger, Torsten Bögershausen, and W. Trevor King. Git 2.16 Release Notes (draft) == Backward compatibility notes and other notable changes. * Use of an empty string as a pathspec element that is used for 'everything matches' is now an error. Updates since v2.15 --- UI, Workflows & Features * An empty string as a pathspec element that means "everything" i.e. 'git add ""', is now illegal. We started this by first deprecating and warning a pathspec that has such an element in 2.11 (Nov 2016). * A hook script that is set unexecutable is simply ignored. Git notifies when such a file is ignored, unless the message is squelched via advice.ignoredHook configuration. * "git pull" has been taught to accept "--[no-]signoff" option and pass it down to "git merge". * The "--push-option=" option to "git push" now defaults to a list of strings configured via push.pushOption variable. * "gitweb" checks if a directory is searchable with Perl's "-x" operator, which can be enhanced by using "filetest 'access'" pragma, which now we do. * "git stash save" has been deprecated in favour of "git stash push". * The set of paths output from "git status --ignored" was tied closely with its "--untracked=" option, but now it can be controlled more flexibly. Most notably, a directory that is ignored because it is listed to be ignored in the ignore/exclude mechanism can be handled differently from a directory that ends up to be ignored only because all files in it are ignored. * The remote-helper for talking to MediaWiki has been updated to truncate an overlong pagename so that ".mw" suffix can still be added. * The remote-helper for talking to MediaWiki has been updated to work with mediawiki namespaces. * The "--format=..." option "git for-each-ref" takes learned to show the name of the 'remote' repository and the ref at the remote side that is affected for 'upstream' and 'push' via "%(push:remotename)" and friends. * Doc and message updates to teach users "bisect view" is a synonym for "bisect visualize". * "git bisect run" that did not specify any command to run used to go ahead and treated all commits to be tested as 'good'. This has been corrected by making the command error out. * The SubmittingPatches document has been converted to produce an HTML version via AsciiDoc/Asciidoctor. * We learned to talk to watchman to speed up "git status" and other operations that need to see which paths have been modified. * The "diff" family of commands learned to ignore differences in carr
[ANNOUNCE] Git v2.16.0-rc2
A release candidate Git v2.16.0-rc2 is now available for testing at the usual places. It is comprised of 483 non-merge commits since v2.15.0, contributed by 80 people, 23 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.16.0-rc2' 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.15.0 are as follows. Welcome to the Git development community! Albert Astals Cid, Antoine Beaupré, Damien Marié, Daniel Bensoussan, Florian Klink, Gennady Kupava, Guillaume Castagnino, Haaris Mehmood, Hans Jerry Illikainen, Ingo Ruhnke, Jakub Bereżański, Jean Carlo Machado, Julien Dusser, J Wyman, Kevin, Łukasz Stelmach, Marius Paliga, Olga Telezhnaya, Rafael Ascensão, Robert Abel, Robert P. J. Day, Shuyu Wei, and Wei Shuyu. Returning contributors who helped this release are as follows. Thanks for your continued support. Adam Dinwoodie, Ævar Arnfjörð Bjarmason, Alex Vandiver, Anders Kaseorg, Andrey Okoshkin, Ann T Ropea, Beat Bolli, Ben Peart, Brandon Williams, brian m. carlson, Carlos Martín Nieto, Charles Bailey, Christian Couder, Dave Borowitz, Dennis Kaarsemaker, Derrick Stolee, Elijah Newren, Emily Xie, Eric Sunshine, Eric Wong, Heiko Voigt, Jacob Keller, Jameson Miller, Jean-Noel Avila, Jeff Hostetler, Jeff King, Johannes Schindelin, Jonathan Nieder, Jonathan Tan, Junio C Hamano, Kaartic Sivaraam, Kevin Daudt, Lars Schneider, Liam Beguin, Luke Diamand, Martin Ågren, Michael Haggerty, Nicolas Morey-Chaisemartin, Phil Hord, Phillip Wood, Pranit Bauva, Prathamesh Chavan, Ralf Thielow, Ramsay Jones, Randall S. Becker, Rasmus Villemoes, René Scharfe, Simon Ruderich, Stefan Beller, Steffen Prohaska, Stephan Beyer, SZEDER Gábor, Thomas Braun, Thomas Gummerer, Todd Zullinger, Torsten Bögershausen, and W. Trevor King. Git 2.16 Release Notes (draft) == Backward compatibility notes and other notable changes. * Use of an empty string as a pathspec element that is used for 'everything matches' is now an error. Updates since v2.15 --- UI, Workflows & Features * An empty string as a pathspec element that means "everything" i.e. 'git add ""', is now illegal. We started this by first deprecating and warning a pathspec that has such an element in 2.11 (Nov 2016). * A hook script that is set unexecutable is simply ignored. Git notifies when such a file is ignored, unless the message is squelched via advice.ignoredHook configuration. * "git pull" has been taught to accept "--[no-]signoff" option and pass it down to "git merge". * The "--push-option=" option to "git push" now defaults to a list of strings configured via push.pushOption variable. * "gitweb" checks if a directory is searchable with Perl's "-x" operator, which can be enhanced by using "filetest 'access'" pragma, which now we do. * "git stash save" has been deprecated in favour of "git stash push". * The set of paths output from "git status --ignored" was tied closely with its "--untracked=" option, but now it can be controlled more flexibly. Most notably, a directory that is ignored because it is listed to be ignored in the ignore/exclude mechanism can be handled differently from a directory that ends up to be ignored only because all files in it are ignored. * The remote-helper for talking to MediaWiki has been updated to truncate an overlong pagename so that ".mw" suffix can still be added. * The remote-helper for talking to MediaWiki has been updated to work with mediawiki namespaces. * The "--format=..." option "git for-each-ref" takes learned to show the name of the 'remote' repository and the ref at the remote side that is affected for 'upstream' and 'push' via "%(push:remotename)" and friends. * Doc and message updates to teach users "bisect view" is a synonym for "bisect visualize". * "git bisect run" that did not specify any command to run used to go ahead and treated all commits to be tested as 'good'. This has been corrected by making the command error out. * The SubmittingPatches document has been converted to produce an HTML version via AsciiDoc/Asciidoctor. * We learned to talk to watchman to speed up "git status" and other operations that need to see which paths have been modified. * The "diff" family of commands learned to ignore differences in carr
[ANNOUNCE] Git v2.16.0-rc1
A release candidate Git v2.16.0-rc1 is now available for testing at the usual places. It is comprised of 455 non-merge commits since v2.15.0, contributed by 79 people, 23 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.16.0-rc1' 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.15.0 are as follows. Welcome to the Git development community! Albert Astals Cid, Antoine Beaupré, Damien Marié, Daniel Bensoussan, Florian Klink, Gennady Kupava, Guillaume Castagnino, Haaris Mehmood, Hans Jerry Illikainen, Ingo Ruhnke, Jakub Bereżański, Jean Carlo Machado, Julien Dusser, J Wyman, Kevin, Łukasz Stelmach, Marius Paliga, Olga Telezhnaya, Rafael Ascensão, Robert Abel, Robert P. J. Day, Shuyu Wei, and Wei Shuyu. Returning contributors who helped this release are as follows. Thanks for your continued support. Adam Dinwoodie, Ævar Arnfjörð Bjarmason, Alex Vandiver, Anders Kaseorg, Andrey Okoshkin, Ann T Ropea, Beat Bolli, Ben Peart, Brandon Williams, brian m. carlson, Carlos Martín Nieto, Charles Bailey, Christian Couder, Dave Borowitz, Dennis Kaarsemaker, Derrick Stolee, Elijah Newren, Emily Xie, Eric Sunshine, Eric Wong, Heiko Voigt, Jacob Keller, Jameson Miller, Jean-Noel Avila, Jeff Hostetler, Jeff King, Johannes Schindelin, Jonathan Nieder, Jonathan Tan, Junio C Hamano, Kaartic Sivaraam, Kevin Daudt, Lars Schneider, Liam Beguin, Luke Diamand, Martin Ågren, Michael Haggerty, Nicolas Morey-Chaisemartin, Phil Hord, Phillip Wood, Pranit Bauva, Prathamesh Chavan, Ramsay Jones, Randall S. Becker, Rasmus Villemoes, René Scharfe, Simon Ruderich, Stefan Beller, Steffen Prohaska, Stephan Beyer, SZEDER Gábor, Thomas Braun, Thomas Gummerer, Todd Zullinger, Torsten Bögershausen, and W. Trevor King. Git 2.16 Release Notes (draft) == Backward compatibility notes and other notable changes. * Use of an empty string as a pathspec element that is used for 'everything matches' is now an error. Updates since v2.15 --- UI, Workflows & Features * An empty string as a pathspec element that means "everything" i.e. 'git add ""', is now illegal. We started this by first deprecating and warning a pathspec that has such an element in 2.11 (Nov 2016). * A hook script that is set unexecutable is simply ignored. Git notifies when such a file is ignored, unless the message is squelched via advice.ignoredHook configuration. * "git pull" has been taught to accept "--[no-]signoff" option and pass it down to "git merge". * The "--push-option=" option to "git push" now defaults to a list of strings configured via push.pushOption variable. * "gitweb" checks if a directory is searchable with Perl's "-x" operator, which can be enhanced by using "filetest 'access'" pragma, which now we do. * "git stash save" has been deprecated in favour of "git stash push". * The set of paths output from "git status --ignored" was tied closely with its "--untracked=" option, but now it can be controlled more flexibly. Most notably, a directory that is ignored because it is listed to be ignored in the ignore/exclude mechanism can be handled differently from a directory that ends up to be ignored only because all files in it are ignored. * The remote-helper for talking to MediaWiki has been updated to truncate an overlong pagename so that ".mw" suffix can still be added. * The remote-helper for talking to MediaWiki has been updated to work with mediawiki namespaces. * The "--format=..." option "git for-each-ref" takes learned to show the name of the 'remote' repository and the ref at the remote side that is affected for 'upstream' and 'push' via "%(push:remotename)" and friends. * Doc and message updates to teach users "bisect view" is a synonym for "bisect visualize". * "git bisect run" that did not specify any command to run used to go ahead and treated all commits to be tested as 'good'. This has been corrected by making the command error out. * The SubmittingPatches document has been converted to produce an HTML version via AsciiDoc/Asciidoctor. * We learned to talk to watchman to speed up "git status" and other operations that need to see which paths have been modified. * The "diff" family of commands learned to ignore differences in carriage return at the
[ANNOUNCE] Git v2.16.0-rc1
A release candidate Git v2.16.0-rc1 is now available for testing at the usual places. It is comprised of 455 non-merge commits since v2.15.0, contributed by 79 people, 23 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.16.0-rc1' 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.15.0 are as follows. Welcome to the Git development community! Albert Astals Cid, Antoine Beaupré, Damien Marié, Daniel Bensoussan, Florian Klink, Gennady Kupava, Guillaume Castagnino, Haaris Mehmood, Hans Jerry Illikainen, Ingo Ruhnke, Jakub Bereżański, Jean Carlo Machado, Julien Dusser, J Wyman, Kevin, Łukasz Stelmach, Marius Paliga, Olga Telezhnaya, Rafael Ascensão, Robert Abel, Robert P. J. Day, Shuyu Wei, and Wei Shuyu. Returning contributors who helped this release are as follows. Thanks for your continued support. Adam Dinwoodie, Ævar Arnfjörð Bjarmason, Alex Vandiver, Anders Kaseorg, Andrey Okoshkin, Ann T Ropea, Beat Bolli, Ben Peart, Brandon Williams, brian m. carlson, Carlos Martín Nieto, Charles Bailey, Christian Couder, Dave Borowitz, Dennis Kaarsemaker, Derrick Stolee, Elijah Newren, Emily Xie, Eric Sunshine, Eric Wong, Heiko Voigt, Jacob Keller, Jameson Miller, Jean-Noel Avila, Jeff Hostetler, Jeff King, Johannes Schindelin, Jonathan Nieder, Jonathan Tan, Junio C Hamano, Kaartic Sivaraam, Kevin Daudt, Lars Schneider, Liam Beguin, Luke Diamand, Martin Ågren, Michael Haggerty, Nicolas Morey-Chaisemartin, Phil Hord, Phillip Wood, Pranit Bauva, Prathamesh Chavan, Ramsay Jones, Randall S. Becker, Rasmus Villemoes, René Scharfe, Simon Ruderich, Stefan Beller, Steffen Prohaska, Stephan Beyer, SZEDER Gábor, Thomas Braun, Thomas Gummerer, Todd Zullinger, Torsten Bögershausen, and W. Trevor King. Git 2.16 Release Notes (draft) == Backward compatibility notes and other notable changes. * Use of an empty string as a pathspec element that is used for 'everything matches' is now an error. Updates since v2.15 --- UI, Workflows & Features * An empty string as a pathspec element that means "everything" i.e. 'git add ""', is now illegal. We started this by first deprecating and warning a pathspec that has such an element in 2.11 (Nov 2016). * A hook script that is set unexecutable is simply ignored. Git notifies when such a file is ignored, unless the message is squelched via advice.ignoredHook configuration. * "git pull" has been taught to accept "--[no-]signoff" option and pass it down to "git merge". * The "--push-option=" option to "git push" now defaults to a list of strings configured via push.pushOption variable. * "gitweb" checks if a directory is searchable with Perl's "-x" operator, which can be enhanced by using "filetest 'access'" pragma, which now we do. * "git stash save" has been deprecated in favour of "git stash push". * The set of paths output from "git status --ignored" was tied closely with its "--untracked=" option, but now it can be controlled more flexibly. Most notably, a directory that is ignored because it is listed to be ignored in the ignore/exclude mechanism can be handled differently from a directory that ends up to be ignored only because all files in it are ignored. * The remote-helper for talking to MediaWiki has been updated to truncate an overlong pagename so that ".mw" suffix can still be added. * The remote-helper for talking to MediaWiki has been updated to work with mediawiki namespaces. * The "--format=..." option "git for-each-ref" takes learned to show the name of the 'remote' repository and the ref at the remote side that is affected for 'upstream' and 'push' via "%(push:remotename)" and friends. * Doc and message updates to teach users "bisect view" is a synonym for "bisect visualize". * "git bisect run" that did not specify any command to run used to go ahead and treated all commits to be tested as 'good'. This has been corrected by making the command error out. * The SubmittingPatches document has been converted to produce an HTML version via AsciiDoc/Asciidoctor. * We learned to talk to watchman to speed up "git status" and other operations that need to see which paths have been modified. * The "diff" family of commands learned to ignore differences in carriage return at the
[ANNOUNCE] Git v2.16.0-rc0
An early preview release Git v2.16.0-rc0 is now available for testing at the usual places. It is comprised of 435 non-merge commits since v2.15.0, contributed by 76 people, 22 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.16.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.15.0 are as follows. Welcome to the Git development community! Albert Astals Cid, Antoine Beaupré, Damien Marié, Daniel Bensoussan, Florian Klink, Gennady Kupava, Guillaume Castagnino, Haaris Mehmood, Hans Jerry Illikainen, Ingo Ruhnke, Jakub Bereżański, Jean Carlo Machado, J Wyman, Kevin, Łukasz Stelmach, Marius Paliga, Olga Telezhnaya, Rafael Ascensão, Robert Abel, Robert P. J. Day, Shuyu Wei, and Wei Shuyu. Returning contributors who helped this release are as follows. Thanks for your continued support. Adam Dinwoodie, Ævar Arnfjörð Bjarmason, Alex Vandiver, Anders Kaseorg, Andrey Okoshkin, Ann T Ropea, Beat Bolli, Ben Peart, Brandon Williams, brian m. carlson, Carlos Martín Nieto, Charles Bailey, Christian Couder, Dennis Kaarsemaker, Derrick Stolee, Elijah Newren, Emily Xie, Eric Sunshine, Eric Wong, Heiko Voigt, Jacob Keller, Jameson Miller, Jean-Noel Avila, Jeff Hostetler, Jeff King, Johannes Schindelin, Jonathan Nieder, Jonathan Tan, Junio C Hamano, Kaartic Sivaraam, Kevin Daudt, Lars Schneider, Liam Beguin, Martin Ågren, Michael Haggerty, Nicolas Morey-Chaisemartin, Phil Hord, Phillip Wood, Pranit Bauva, Prathamesh Chavan, Ramsay Jones, Randall S. Becker, Rasmus Villemoes, René Scharfe, Simon Ruderich, Stefan Beller, Steffen Prohaska, Stephan Beyer, SZEDER Gábor, Thomas Braun, Thomas Gummerer, Todd Zullinger, Torsten Bögershausen, and W. Trevor King. Git 2.16 Release Notes (draft) == Backward compatibility notes and other notable changes. * Use of an empty string as a pathspec element that is used for 'everything matches' is now an error. Updates since v2.15 --- UI, Workflows & Features * An empty string as a pathspec element that means "everything" i.e. 'git add ""', is now illegal. We started this by first deprecating and warning a pathspec that has such an element in 2.11 (Nov 2016). * A hook script that is set unexecutable is simply ignored. Git notifies when such a file is ignored, unless the message is squelched via advice.ignoredHook configuration. * "git pull" has been taught to accept "--[no-]signoff" option and pass it down to "git merge". * The "--push-option=" option to "git push" now defaults to a list of strings configured via push.pushOption variable. * "gitweb" checks if a directory is searchable with Perl's "-x" operator, which can be enhanced by using "filetest 'access'" pragma, which now we do. * "git stash save" has been deprecated in favour of "git stash push". * The set of paths output from "git status --ignored" was tied closely with its "--untracked=" option, but now it can be controlled more flexibly. Most notably, a directory that is ignored because it is listed to be ignored in the ignore/exclude mechanism can be handled differently from a directory that ends up to be ignored only because all files in it are ignored. * The remote-helper for talking to MediaWiki has been updated to truncate an overlong pagename so that ".mw" suffix can still be added. * The remote-helper for talking to MediaWiki has been updated to work with mediawiki namespaces. * The "--format=..." option "git for-each-ref" takes learned to show the name of the 'remote' repository and the ref at the remote side that is affected for 'upstream' and 'push' via "%(push:remotename)" and friends. * Doc and message updates to teach users "bisect view" is a synonym for "bisect visualize". * "git bisect run" that did not specify any command to run used to go ahead and treated all commits to be tested as 'good'. This has been corrected by making the command error out. * The SubmittingPatches document has been converted to produce an HTML version via AsciiDoc/Asciidoctor. * We learned to talk to watchman to speed up "git status" and other operations that need to see which paths have been modified. * The "diff" family of commands learned to ignore differences in carriage return at the end of line. * Places that know about &qu
[ANNOUNCE] Git v2.16.0-rc0
An early preview release Git v2.16.0-rc0 is now available for testing at the usual places. It is comprised of 435 non-merge commits since v2.15.0, contributed by 76 people, 22 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.16.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.15.0 are as follows. Welcome to the Git development community! Albert Astals Cid, Antoine Beaupré, Damien Marié, Daniel Bensoussan, Florian Klink, Gennady Kupava, Guillaume Castagnino, Haaris Mehmood, Hans Jerry Illikainen, Ingo Ruhnke, Jakub Bereżański, Jean Carlo Machado, J Wyman, Kevin, Łukasz Stelmach, Marius Paliga, Olga Telezhnaya, Rafael Ascensão, Robert Abel, Robert P. J. Day, Shuyu Wei, and Wei Shuyu. Returning contributors who helped this release are as follows. Thanks for your continued support. Adam Dinwoodie, Ævar Arnfjörð Bjarmason, Alex Vandiver, Anders Kaseorg, Andrey Okoshkin, Ann T Ropea, Beat Bolli, Ben Peart, Brandon Williams, brian m. carlson, Carlos Martín Nieto, Charles Bailey, Christian Couder, Dennis Kaarsemaker, Derrick Stolee, Elijah Newren, Emily Xie, Eric Sunshine, Eric Wong, Heiko Voigt, Jacob Keller, Jameson Miller, Jean-Noel Avila, Jeff Hostetler, Jeff King, Johannes Schindelin, Jonathan Nieder, Jonathan Tan, Junio C Hamano, Kaartic Sivaraam, Kevin Daudt, Lars Schneider, Liam Beguin, Martin Ågren, Michael Haggerty, Nicolas Morey-Chaisemartin, Phil Hord, Phillip Wood, Pranit Bauva, Prathamesh Chavan, Ramsay Jones, Randall S. Becker, Rasmus Villemoes, René Scharfe, Simon Ruderich, Stefan Beller, Steffen Prohaska, Stephan Beyer, SZEDER Gábor, Thomas Braun, Thomas Gummerer, Todd Zullinger, Torsten Bögershausen, and W. Trevor King. Git 2.16 Release Notes (draft) == Backward compatibility notes and other notable changes. * Use of an empty string as a pathspec element that is used for 'everything matches' is now an error. Updates since v2.15 --- UI, Workflows & Features * An empty string as a pathspec element that means "everything" i.e. 'git add ""', is now illegal. We started this by first deprecating and warning a pathspec that has such an element in 2.11 (Nov 2016). * A hook script that is set unexecutable is simply ignored. Git notifies when such a file is ignored, unless the message is squelched via advice.ignoredHook configuration. * "git pull" has been taught to accept "--[no-]signoff" option and pass it down to "git merge". * The "--push-option=" option to "git push" now defaults to a list of strings configured via push.pushOption variable. * "gitweb" checks if a directory is searchable with Perl's "-x" operator, which can be enhanced by using "filetest 'access'" pragma, which now we do. * "git stash save" has been deprecated in favour of "git stash push". * The set of paths output from "git status --ignored" was tied closely with its "--untracked=" option, but now it can be controlled more flexibly. Most notably, a directory that is ignored because it is listed to be ignored in the ignore/exclude mechanism can be handled differently from a directory that ends up to be ignored only because all files in it are ignored. * The remote-helper for talking to MediaWiki has been updated to truncate an overlong pagename so that ".mw" suffix can still be added. * The remote-helper for talking to MediaWiki has been updated to work with mediawiki namespaces. * The "--format=..." option "git for-each-ref" takes learned to show the name of the 'remote' repository and the ref at the remote side that is affected for 'upstream' and 'push' via "%(push:remotename)" and friends. * Doc and message updates to teach users "bisect view" is a synonym for "bisect visualize". * "git bisect run" that did not specify any command to run used to go ahead and treated all commits to be tested as 'good'. This has been corrected by making the command error out. * The SubmittingPatches document has been converted to produce an HTML version via AsciiDoc/Asciidoctor. * We learned to talk to watchman to speed up "git status" and other operations that need to see which paths have been modified. * The "diff" family of commands learned to ignore differences in carriage return at the end of line. * Places that know about &qu
[ANNOUNCE] Git v2.15.1
wincred: handle empty username/password correctly Jean Carlo Machado (1): fix typos in 2.15.0 release notes Jeff King (11): t4015: refactor --color-moved whitespace test t4015: check "negative" case for "-w --color-moved" t4015: test the output of "diff --color-moved -b" diff: fix whitespace-skipping with --color-moved diff: handle NULs in get_string_hash() test-ref-store: avoid passing NULL to printf remote: handle broken symrefs log: handle broken HEAD in decoration check worktree: handle broken symrefs in find_shared_symref() setup: avoid double slashes when looking for HEAD link_alt_odb_entries: make empty input a noop Johannes Schindelin (5): status: do not get confused by submodules in excluded directories mingw: include the full version information in the resources mingw: add experimental feature to redirect standard handles mingw: optionally redirect stderr/stdout via the same handle mingw: document the standard handle redirection Junio C Hamano (9): t5601: rm the target file of cp that could still be executing check-ref-format --branch: do not expand @{...} outside repository check-ref-format --branch: strip refs/heads/ using skip_prefix check-ref-format doc: --branch validates and expands column: do not include pager.c Start preparation for 2.15.1 Almost ready for 2.15.1 A bit more fixes for 2.15.1 Git 2.15.1 Kaartic Sivaraam (1): mailmap: use Kaartic Sivaraam's new address Kevin Daudt (1): column: show auto columns when pager is active Martin Ågren (7): grep: take the read-lock when adding a submodule bisect: change calling-convention of `find_bisection()` bisect: fix memory leak in `find_bisection()` bisect: fix off-by-one error in `best_bisection_sorted()` bisect: fix memory leak when returning best element builtin/merge-base: free commit lists reduce_heads: fix memory leaks René Scharfe (6): sequencer: factor out rewrite_file() sequencer: use O_TRUNC to truncate files imap-send: handle NULL return of next_arg() imap-send: handle missing response codes gracefully apply: avoid out-of-bounds access in fuzzy_matchlines() config: flip return value of write_section() SZEDER Gábor (2): travis-ci: fix running P4 and Git LFS tests in Linux build jobs travis-ci: don't build Git for the static analysis job Simon Ruderich (2): sequencer.c: check return value of close() in rewrite_file() wrapper.c: consistently quote filenames in error messages Stefan Beller (3): xdiff-interface: export comparing and hashing strings diff.c: get rid of duplicate implementation config: document blame configuration Thomas Braun (1): completion: add remaining flags to checkout Todd Zullinger (3): Replace Free Software Foundation address in license notices Replace Free Software Foundation address in license notices RelNotes: minor typo fixes in 2.15.1 draft
[ANNOUNCE] Git v2.15.1
wincred: handle empty username/password correctly Jean Carlo Machado (1): fix typos in 2.15.0 release notes Jeff King (11): t4015: refactor --color-moved whitespace test t4015: check "negative" case for "-w --color-moved" t4015: test the output of "diff --color-moved -b" diff: fix whitespace-skipping with --color-moved diff: handle NULs in get_string_hash() test-ref-store: avoid passing NULL to printf remote: handle broken symrefs log: handle broken HEAD in decoration check worktree: handle broken symrefs in find_shared_symref() setup: avoid double slashes when looking for HEAD link_alt_odb_entries: make empty input a noop Johannes Schindelin (5): status: do not get confused by submodules in excluded directories mingw: include the full version information in the resources mingw: add experimental feature to redirect standard handles mingw: optionally redirect stderr/stdout via the same handle mingw: document the standard handle redirection Junio C Hamano (9): t5601: rm the target file of cp that could still be executing check-ref-format --branch: do not expand @{...} outside repository check-ref-format --branch: strip refs/heads/ using skip_prefix check-ref-format doc: --branch validates and expands column: do not include pager.c Start preparation for 2.15.1 Almost ready for 2.15.1 A bit more fixes for 2.15.1 Git 2.15.1 Kaartic Sivaraam (1): mailmap: use Kaartic Sivaraam's new address Kevin Daudt (1): column: show auto columns when pager is active Martin Ågren (7): grep: take the read-lock when adding a submodule bisect: change calling-convention of `find_bisection()` bisect: fix memory leak in `find_bisection()` bisect: fix off-by-one error in `best_bisection_sorted()` bisect: fix memory leak when returning best element builtin/merge-base: free commit lists reduce_heads: fix memory leaks René Scharfe (6): sequencer: factor out rewrite_file() sequencer: use O_TRUNC to truncate files imap-send: handle NULL return of next_arg() imap-send: handle missing response codes gracefully apply: avoid out-of-bounds access in fuzzy_matchlines() config: flip return value of write_section() SZEDER Gábor (2): travis-ci: fix running P4 and Git LFS tests in Linux build jobs travis-ci: don't build Git for the static analysis job Simon Ruderich (2): sequencer.c: check return value of close() in rewrite_file() wrapper.c: consistently quote filenames in error messages Stefan Beller (3): xdiff-interface: export comparing and hashing strings diff.c: get rid of duplicate implementation config: document blame configuration Thomas Braun (1): completion: add remaining flags to checkout Todd Zullinger (3): Replace Free Software Foundation address in license notices Replace Free Software Foundation address in license notices RelNotes: minor typo fixes in 2.15.1 draft
[ANNOUNCE] Git v2.15.0
The latest feature release Git v2.15.0 is now available at the usual places. It is comprised of 769 non-merge commits since v2.14.0, contributed by 91 people, 28 of which are new faces. The tarballs are found at: https://www.kernel.org/pub/software/scm/git/ The following public repositories all have a copy of the 'v2.15.0' 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.14.0 are as follows. Welcome to the Git development community! Andre Hinrichs, Andrey Okoshkin, Ann T Ropea, Christopher Díaz, Christopher Díaz Riveros, Daniel Watkins, Derrick Stolee, Dimitrios Christidis, Eric Rannaud, Evan Zacks, Hielke Christian Braun, Ian Campbell, Ilya Kantor, Jameson Miller, Job Snijders, Joel Teichroeb, joernchen, Łukasz Gryglicki, Manav Rathi, Martin Ågren, Michael Forney, Nathan Payre, Nicolas Cornu, Patryk Obara, Randall S. Becker, Ross Kabus, Taylor Blau, and Urs Thuermann. Returning contributors who helped this release are as follows. Thanks for your continued support. Adam Dinwoodie, Ævar Arnfjörð Bjarmason, Alexander Shopov, Andreas Heiduk, Anthony Sottile, Ben Boeckel, Brandon Casey, Brandon Williams, brian m. carlson, Changwoo Ryu, Christian Couder, David Glasser, Dimitriy Ryazantcev, Eric Blake, Han-Wen Nienhuys, Heiko Voigt, Jean-Noel Avila, Jeff Hostetler, Jeff King, Jiang Xin, Johannes Schindelin, Johannes Sixt, Jonathan Nieder, Jonathan Tan, Jordi Mas, Junio C Hamano, Kaartic Sivaraam, Kevin Daudt, Kevin Willford, Lars Schneider, Martin Koegler, Matthieu Moy, Max Kirillov, Michael Haggerty, Michael J Gruber, Nguyễn Thái Ngọc Duy, Nicolas Morey-Chaisemartin, Øystein Walle, Paolo Bonzini, Pat Thoyts, Peter Krefting, Philip Oakley, Phillip Wood, Ralf Thielow, Raman Gupta, Ramsay Jones, Ray Chen, René Scharfe, Sahil Dua, Santiago Torres, Sebastian Schuberth, Stefan Beller, Stephan Beyer, SZEDER Gábor, Takashi Iwai, Thomas Braun, Thomas Gummerer, Todd Zullinger, Tom G. Christensen, Torsten Bögershausen, Trần Ngọc Quân, William Duclot, and W. Trevor King. Git 2.15 Release Notes == Backward compatibility notes and other notable changes. * Use of an empty string as a pathspec element that is used for 'everything matches' is still warned and Git asks users to use a more explicit '.' for that instead. The hope is that existing users will not mind this change, and eventually the warning can be turned into a hard error, upgrading the deprecation into removal of this (mis)feature. That is now scheduled to happen in Git v2.16, the next major release after this one. * Git now avoids blindly falling back to ".git" when the setup sequence said we are _not_ in Git repository. A corner case that happens to work right now may be broken by a call to BUG(). We've tried hard to locate such cases and fixed them, but there might still be cases that need to be addressed--bug reports are greatly appreciated. * "branch --set-upstream" that has been deprecated in Git 1.8 has finally been retired. Updates since v2.14 --- UI, Workflows & Features * An example that is now obsolete has been removed from a sample hook, and an old example in it that added a sign-off manually has been improved to use the interpret-trailers command. * The advice message given when "git rebase" stops for conflicting changes has been improved. * The "rerere-train" script (in contrib/) learned the "--overwrite" option to allow overwriting existing recorded resolutions. * "git contacts" (in contrib/) now lists the address on the "Reported-by:" trailer to its output, in addition to those on S-o-b: and other trailers, to make it easier to notify (and thank) the original bug reporter. * "git rebase", especially when it is run by mistake and ends up trying to replay many changes, spent long time in silence. The command has been taught to show progress report when it spends long time preparing these many changes to replay (which would give the user a chance to abort with ^C). * "git merge" learned a "--signoff" option to add the Signed-off-by: trailer with the committer's name. * "git diff" learned to optionally paint new lines that are the same as deleted lines elsewhere differently from genuinely new lines. * "git interpret-trailers" learned to take the trailer specifications from the command line that overrides the configured values. * "git interpret-trailers" has been taught a "--parse" and a few other options to make it easier for scripts to grab existing
[ANNOUNCE] Git v2.15.0
The latest feature release Git v2.15.0 is now available at the usual places. It is comprised of 769 non-merge commits since v2.14.0, contributed by 91 people, 28 of which are new faces. The tarballs are found at: https://www.kernel.org/pub/software/scm/git/ The following public repositories all have a copy of the 'v2.15.0' 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.14.0 are as follows. Welcome to the Git development community! Andre Hinrichs, Andrey Okoshkin, Ann T Ropea, Christopher Díaz, Christopher Díaz Riveros, Daniel Watkins, Derrick Stolee, Dimitrios Christidis, Eric Rannaud, Evan Zacks, Hielke Christian Braun, Ian Campbell, Ilya Kantor, Jameson Miller, Job Snijders, Joel Teichroeb, joernchen, Łukasz Gryglicki, Manav Rathi, Martin Ågren, Michael Forney, Nathan Payre, Nicolas Cornu, Patryk Obara, Randall S. Becker, Ross Kabus, Taylor Blau, and Urs Thuermann. Returning contributors who helped this release are as follows. Thanks for your continued support. Adam Dinwoodie, Ævar Arnfjörð Bjarmason, Alexander Shopov, Andreas Heiduk, Anthony Sottile, Ben Boeckel, Brandon Casey, Brandon Williams, brian m. carlson, Changwoo Ryu, Christian Couder, David Glasser, Dimitriy Ryazantcev, Eric Blake, Han-Wen Nienhuys, Heiko Voigt, Jean-Noel Avila, Jeff Hostetler, Jeff King, Jiang Xin, Johannes Schindelin, Johannes Sixt, Jonathan Nieder, Jonathan Tan, Jordi Mas, Junio C Hamano, Kaartic Sivaraam, Kevin Daudt, Kevin Willford, Lars Schneider, Martin Koegler, Matthieu Moy, Max Kirillov, Michael Haggerty, Michael J Gruber, Nguyễn Thái Ngọc Duy, Nicolas Morey-Chaisemartin, Øystein Walle, Paolo Bonzini, Pat Thoyts, Peter Krefting, Philip Oakley, Phillip Wood, Ralf Thielow, Raman Gupta, Ramsay Jones, Ray Chen, René Scharfe, Sahil Dua, Santiago Torres, Sebastian Schuberth, Stefan Beller, Stephan Beyer, SZEDER Gábor, Takashi Iwai, Thomas Braun, Thomas Gummerer, Todd Zullinger, Tom G. Christensen, Torsten Bögershausen, Trần Ngọc Quân, William Duclot, and W. Trevor King. Git 2.15 Release Notes == Backward compatibility notes and other notable changes. * Use of an empty string as a pathspec element that is used for 'everything matches' is still warned and Git asks users to use a more explicit '.' for that instead. The hope is that existing users will not mind this change, and eventually the warning can be turned into a hard error, upgrading the deprecation into removal of this (mis)feature. That is now scheduled to happen in Git v2.16, the next major release after this one. * Git now avoids blindly falling back to ".git" when the setup sequence said we are _not_ in Git repository. A corner case that happens to work right now may be broken by a call to BUG(). We've tried hard to locate such cases and fixed them, but there might still be cases that need to be addressed--bug reports are greatly appreciated. * "branch --set-upstream" that has been deprecated in Git 1.8 has finally been retired. Updates since v2.14 --- UI, Workflows & Features * An example that is now obsolete has been removed from a sample hook, and an old example in it that added a sign-off manually has been improved to use the interpret-trailers command. * The advice message given when "git rebase" stops for conflicting changes has been improved. * The "rerere-train" script (in contrib/) learned the "--overwrite" option to allow overwriting existing recorded resolutions. * "git contacts" (in contrib/) now lists the address on the "Reported-by:" trailer to its output, in addition to those on S-o-b: and other trailers, to make it easier to notify (and thank) the original bug reporter. * "git rebase", especially when it is run by mistake and ends up trying to replay many changes, spent long time in silence. The command has been taught to show progress report when it spends long time preparing these many changes to replay (which would give the user a chance to abort with ^C). * "git merge" learned a "--signoff" option to add the Signed-off-by: trailer with the committer's name. * "git diff" learned to optionally paint new lines that are the same as deleted lines elsewhere differently from genuinely new lines. * "git interpret-trailers" learned to take the trailer specifications from the command line that overrides the configured values. * "git interpret-trailers" has been taught a "--parse" and a few other options to make it easier for scripts to grab existing
[ANNOUNCE] Git v2.14.3
The latest maintenance release Git v2.14.3 is now available at the usual places. The tarballs are found at: https://www.kernel.org/pub/software/scm/git/ The following public repositories all have a copy of the 'v2.14.3' tag and the 'maint' 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 Git v2.14.3 Release Notes = Fixes since v2.14.2 --- * A helper function to read a single whole line into strbuf mistakenly triggered OOM error at EOF under certain conditions, which has been fixed. * In addition to "cc:# cruft", "cc: a...@dd.re.ss # cruft" was taught to "git send-email" as a valid way to tell it that it needs to also send a carbon copy to in the trailer section. * Fix regression to "gitk --bisect" by a recent update. * Unlike "git commit-tree < file", "git commit-tree -F file" did not pass the contents of the file verbatim and instead completed an incomplete line at the end, if exists. The latter has been updated to match the behaviour of the former. * "git archive", especially when used with pathspec, stored an empty directory in its output, even though Git itself never does so. This has been fixed. * API error-proofing which happens to also squelch warnings from GCC. * "git gc" tries to avoid running two instances at the same time by reading and writing pid/host from and to a lock file; it used to use an incorrect fscanf() format when reading, which has been corrected. * The test linter has been taught that we do not like "echo -e". * Code cmp.std.c nitpick. * "git describe --match" learned to take multiple patterns in v2.13 series, but the feature ignored the patterns after the first one and did not work at all. This has been fixed. * "git cat-file --textconv" started segfaulting recently, which has been corrected. * The built-in pattern to detect the "function header" for HTML did not match .. elements without any attributes, which has been fixed. * "git mailinfo" was loose in decoding quoted printable and produced garbage when the two letters after the equal sign are not hexadecimal. This has been fixed. * The documentation for '-X' for merges was misleadingly written to suggest that "-s theirs" exists, which is not the case. * Spell the name of our system as "Git" in the output from request-pull script. * Fixes for a handful memory access issues identified by valgrind. * Backports a moral equivalent of 2015 fix to the poll emulation from the upstream gnulib to fix occasional breakages on HPE NonStop. * In the "--format=..." option of the "git for-each-ref" command (and its friends, i.e. the listing mode of "git branch/tag"), "%(atom:)" (e.g. "%(refname:)", "%(body:)" used to error out. Instead, treat them as if the colon and an empty string that follows it were not there. * Users with "color.ui = always" in their configuration were broken by a recent change that made plumbing commands to pay attention to them as the patch created internally by "git add -p" were colored (heh) and made unusable. This has been fixed. * "git branch -M a b" while on a branch that is completely unrelated to either branch a or branch b misbehaved when multiple worktree was in use. This has been fixed. * "git fast-export" with -M/-C option issued "copy" instruction on a path that is simultaneously modified, which was incorrect. * The checkpoint command "git fast-import" did not flush updates to refs and marks unless at least one object was created since the last checkpoint, which has been corrected, as these things can happen without any new object getting created. * The scripts to drive TravisCI has been reorganized and then an optimization to avoid spending cycles on a branch whose tip is tagged has been implemented. * "git fetch :" allows an object name on the side when the other side accepts such a request since Git v2.5, but the documentation was left stale. * A regression in 2.11 that made the code to read the list of alternate object stores overrun the end of the string has been fixed. Also contains various documentation updates and code clean-ups.
[ANNOUNCE] Git v2.14.3
The latest maintenance release Git v2.14.3 is now available at the usual places. The tarballs are found at: https://www.kernel.org/pub/software/scm/git/ The following public repositories all have a copy of the 'v2.14.3' tag and the 'maint' 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 Git v2.14.3 Release Notes = Fixes since v2.14.2 --- * A helper function to read a single whole line into strbuf mistakenly triggered OOM error at EOF under certain conditions, which has been fixed. * In addition to "cc: # cruft", "cc: a...@dd.re.ss # cruft" was taught to "git send-email" as a valid way to tell it that it needs to also send a carbon copy to in the trailer section. * Fix regression to "gitk --bisect" by a recent update. * Unlike "git commit-tree < file", "git commit-tree -F file" did not pass the contents of the file verbatim and instead completed an incomplete line at the end, if exists. The latter has been updated to match the behaviour of the former. * "git archive", especially when used with pathspec, stored an empty directory in its output, even though Git itself never does so. This has been fixed. * API error-proofing which happens to also squelch warnings from GCC. * "git gc" tries to avoid running two instances at the same time by reading and writing pid/host from and to a lock file; it used to use an incorrect fscanf() format when reading, which has been corrected. * The test linter has been taught that we do not like "echo -e". * Code cmp.std.c nitpick. * "git describe --match" learned to take multiple patterns in v2.13 series, but the feature ignored the patterns after the first one and did not work at all. This has been fixed. * "git cat-file --textconv" started segfaulting recently, which has been corrected. * The built-in pattern to detect the "function header" for HTML did not match .. elements without any attributes, which has been fixed. * "git mailinfo" was loose in decoding quoted printable and produced garbage when the two letters after the equal sign are not hexadecimal. This has been fixed. * The documentation for '-X' for merges was misleadingly written to suggest that "-s theirs" exists, which is not the case. * Spell the name of our system as "Git" in the output from request-pull script. * Fixes for a handful memory access issues identified by valgrind. * Backports a moral equivalent of 2015 fix to the poll emulation from the upstream gnulib to fix occasional breakages on HPE NonStop. * In the "--format=..." option of the "git for-each-ref" command (and its friends, i.e. the listing mode of "git branch/tag"), "%(atom:)" (e.g. "%(refname:)", "%(body:)" used to error out. Instead, treat them as if the colon and an empty string that follows it were not there. * Users with "color.ui = always" in their configuration were broken by a recent change that made plumbing commands to pay attention to them as the patch created internally by "git add -p" were colored (heh) and made unusable. This has been fixed. * "git branch -M a b" while on a branch that is completely unrelated to either branch a or branch b misbehaved when multiple worktree was in use. This has been fixed. * "git fast-export" with -M/-C option issued "copy" instruction on a path that is simultaneously modified, which was incorrect. * The checkpoint command "git fast-import" did not flush updates to refs and marks unless at least one object was created since the last checkpoint, which has been corrected, as these things can happen without any new object getting created. * The scripts to drive TravisCI has been reorganized and then an optimization to avoid spending cycles on a branch whose tip is tagged has been implemented. * "git fetch :" allows an object name on the side when the other side accepts such a request since Git v2.5, but the documentation was left stale. * A regression in 2.11 that made the code to read the list of alternate object stores overrun the end of the string has been fixed. Also contains various documentation updates and code clean-ups.
[ANNOUNCE] Git v2.15.0-rc2
A release candidate Git v2.15.0-rc2 is now available for testing at the usual places. It is comprised of 737 non-merge commits since v2.14.0, contributed by 75 people, 22 of which are new faces. We had to back-track a bit wrt to the "git add -p" regression; for now, we simply revert the changes that caused issues to users without redefining 'color.ui=always' to mean 'color.ui=auto', which may or may not happen in future releases. 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.15.0-rc2' 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.14.0 are as follows. Welcome to the Git development community! Ann T Ropea, Daniel Watkins, Derrick Stolee, Dimitrios Christidis, Eric Rannaud, Evan Zacks, Hielke Christian Braun, Ian Campbell, Ilya Kantor, Jameson Miller, Job Snijders, Joel Teichroeb, joernchen, Łukasz Gryglicki, Manav Rathi, Martin Ågren, Michael Forney, Patryk Obara, Randall S. Becker, Ross Kabus, Taylor Blau, and Urs Thuermann. Returning contributors who helped this release are as follows. Thanks for your continued support. Adam Dinwoodie, Ævar Arnfjörð Bjarmason, Andreas Heiduk, Anthony Sottile, Ben Boeckel, Brandon Casey, Brandon Williams, brian m. carlson, Christian Couder, David Glasser, Eric Blake, Han-Wen Nienhuys, Heiko Voigt, Jean-Noel Avila, Jeff Hostetler, Jeff King, Johannes Schindelin, Johannes Sixt, Jonathan Nieder, Jonathan Tan, Junio C Hamano, Kaartic Sivaraam, Kevin Daudt, Kevin Willford, Lars Schneider, Martin Koegler, Matthieu Moy, Max Kirillov, Michael Haggerty, Michael J Gruber, Nguyễn Thái Ngọc Duy, Nicolas Morey-Chaisemartin, Øystein Walle, Paolo Bonzini, Pat Thoyts, Philip Oakley, Phillip Wood, Ralf Thielow, Raman Gupta, Ramsay Jones, René Scharfe, Sahil Dua, Santiago Torres, Stefan Beller, Stephan Beyer, Takashi Iwai, Thomas Braun, Thomas Gummerer, Todd Zullinger, Tom G. Christensen, Torsten Bögershausen, William Duclot, and W. Trevor King. Git 2.15 Release Notes (draft) == Backward compatibility notes and other notable changes. * Use of an empty string as a pathspec element that is used for 'everything matches' is still warned and Git asks users to use a more explicit '.' for that instead. The hope is that existing users will not mind this change, and eventually the warning can be turned into a hard error, upgrading the deprecation into removal of this (mis)feature. That is now scheduled to happen in Git v2.16, the next major release after this one. * Git now avoids blindly falling back to ".git" when the setup sequence said we are _not_ in Git repository. A corner case that happens to work right now may be broken by a call to BUG(). We've tried hard to locate such cases and fixed them, but there might still be cases that need to be addressed--bug reports are greatly appreciated. * "branch --set-upstream" that has been deprecated in Git 1.8 has finally been retired. Updates since v2.14 --- UI, Workflows & Features * An example that is now obsolete has been removed from a sample hook, and an old example in it that added a sign-off manually has been improved to use the interpret-trailers command. * The advice message given when "git rebase" stops for conflicting changes has been improved. * The "rerere-train" script (in contrib/) learned the "--overwrite" option to allow overwriting existing recorded resolutions. * "git contacts" (in contrib/) now lists the address on the "Reported-by:" trailer to its output, in addition to those on S-o-b: and other trailers, to make it easier to notify (and thank) the original bug reporter. * "git rebase", especially when it is run by mistake and ends up trying to replay many changes, spent long time in silence. The command has been taught to show progress report when it spends long time preparing these many changes to replay (which would give the user a chance to abort with ^C). * "git merge" learned a "--signoff" option to add the Signed-off-by: trailer with the committer's name. * "git diff" learned to optionally paint new lines that are the same as deleted lines elsewhere differently from genuinely new lines. * "git interpret-trailers" learned to take the trailer specifications from the command line that overrides the configured values. * "git interpret-trailers" has been taught a "--parse" and a few other options to make it easier for sc
[ANNOUNCE] Git v2.15.0-rc2
A release candidate Git v2.15.0-rc2 is now available for testing at the usual places. It is comprised of 737 non-merge commits since v2.14.0, contributed by 75 people, 22 of which are new faces. We had to back-track a bit wrt to the "git add -p" regression; for now, we simply revert the changes that caused issues to users without redefining 'color.ui=always' to mean 'color.ui=auto', which may or may not happen in future releases. 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.15.0-rc2' 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.14.0 are as follows. Welcome to the Git development community! Ann T Ropea, Daniel Watkins, Derrick Stolee, Dimitrios Christidis, Eric Rannaud, Evan Zacks, Hielke Christian Braun, Ian Campbell, Ilya Kantor, Jameson Miller, Job Snijders, Joel Teichroeb, joernchen, Łukasz Gryglicki, Manav Rathi, Martin Ågren, Michael Forney, Patryk Obara, Randall S. Becker, Ross Kabus, Taylor Blau, and Urs Thuermann. Returning contributors who helped this release are as follows. Thanks for your continued support. Adam Dinwoodie, Ævar Arnfjörð Bjarmason, Andreas Heiduk, Anthony Sottile, Ben Boeckel, Brandon Casey, Brandon Williams, brian m. carlson, Christian Couder, David Glasser, Eric Blake, Han-Wen Nienhuys, Heiko Voigt, Jean-Noel Avila, Jeff Hostetler, Jeff King, Johannes Schindelin, Johannes Sixt, Jonathan Nieder, Jonathan Tan, Junio C Hamano, Kaartic Sivaraam, Kevin Daudt, Kevin Willford, Lars Schneider, Martin Koegler, Matthieu Moy, Max Kirillov, Michael Haggerty, Michael J Gruber, Nguyễn Thái Ngọc Duy, Nicolas Morey-Chaisemartin, Øystein Walle, Paolo Bonzini, Pat Thoyts, Philip Oakley, Phillip Wood, Ralf Thielow, Raman Gupta, Ramsay Jones, René Scharfe, Sahil Dua, Santiago Torres, Stefan Beller, Stephan Beyer, Takashi Iwai, Thomas Braun, Thomas Gummerer, Todd Zullinger, Tom G. Christensen, Torsten Bögershausen, William Duclot, and W. Trevor King. Git 2.15 Release Notes (draft) == Backward compatibility notes and other notable changes. * Use of an empty string as a pathspec element that is used for 'everything matches' is still warned and Git asks users to use a more explicit '.' for that instead. The hope is that existing users will not mind this change, and eventually the warning can be turned into a hard error, upgrading the deprecation into removal of this (mis)feature. That is now scheduled to happen in Git v2.16, the next major release after this one. * Git now avoids blindly falling back to ".git" when the setup sequence said we are _not_ in Git repository. A corner case that happens to work right now may be broken by a call to BUG(). We've tried hard to locate such cases and fixed them, but there might still be cases that need to be addressed--bug reports are greatly appreciated. * "branch --set-upstream" that has been deprecated in Git 1.8 has finally been retired. Updates since v2.14 --- UI, Workflows & Features * An example that is now obsolete has been removed from a sample hook, and an old example in it that added a sign-off manually has been improved to use the interpret-trailers command. * The advice message given when "git rebase" stops for conflicting changes has been improved. * The "rerere-train" script (in contrib/) learned the "--overwrite" option to allow overwriting existing recorded resolutions. * "git contacts" (in contrib/) now lists the address on the "Reported-by:" trailer to its output, in addition to those on S-o-b: and other trailers, to make it easier to notify (and thank) the original bug reporter. * "git rebase", especially when it is run by mistake and ends up trying to replay many changes, spent long time in silence. The command has been taught to show progress report when it spends long time preparing these many changes to replay (which would give the user a chance to abort with ^C). * "git merge" learned a "--signoff" option to add the Signed-off-by: trailer with the committer's name. * "git diff" learned to optionally paint new lines that are the same as deleted lines elsewhere differently from genuinely new lines. * "git interpret-trailers" learned to take the trailer specifications from the command line that overrides the configured values. * "git interpret-trailers" has been taught a "--parse" and a few other options to make it easier for sc
[ANNOUNCE] Git v2.15.0-rc1
A release candidate Git v2.15.0-rc1 is now available for testing at the usual places. It is comprised of 721 non-merge commits since v2.14.0, contributed by 72 people, 22 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.15.0-rc1' 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.14.0 are as follows. Welcome to the Git development community! Ann T Ropea, Daniel Watkins, Derrick Stolee, Dimitrios Christidis, Eric Rannaud, Evan Zacks, Hielke Christian Braun, Ian Campbell, Ilya Kantor, Jameson Miller, Job Snijders, Joel Teichroeb, joernchen, Łukasz Gryglicki, Manav Rathi, Martin Ågren, Michael Forney, Patryk Obara, Randall S. Becker, Ross Kabus, Taylor Blau, and Urs Thuermann. Returning contributors who helped this release are as follows. Thanks for your continued support. Adam Dinwoodie, Ævar Arnfjörð Bjarmason, Andreas Heiduk, Anthony Sottile, Ben Boeckel, Brandon Casey, Brandon Williams, brian m. carlson, Christian Couder, Eric Blake, Han-Wen Nienhuys, Heiko Voigt, Jean-Noel Avila, Jeff Hostetler, Jeff King, Johannes Schindelin, Johannes Sixt, Jonathan Nieder, Jonathan Tan, Junio C Hamano, Kaartic Sivaraam, Kevin Daudt, Kevin Willford, Lars Schneider, Martin Koegler, Matthieu Moy, Max Kirillov, Michael Haggerty, Michael J Gruber, Nguyễn Thái Ngọc Duy, Nicolas Morey-Chaisemartin, Øystein Walle, Paolo Bonzini, Pat Thoyts, Philip Oakley, Phillip Wood, Raman Gupta, Ramsay Jones, René Scharfe, Sahil Dua, Santiago Torres, Stefan Beller, Stephan Beyer, Takashi Iwai, Thomas Braun, Thomas Gummerer, Todd Zullinger, Tom G. Christensen, Torsten Bögershausen, and William Duclot. Git 2.15 Release Notes (draft) == Backward compatibility notes and other notable changes. * Use of an empty string as a pathspec element that is used for 'everything matches' is still warned and Git asks users to use a more explicit '.' for that instead. The hope is that existing users will not mind this change, and eventually the warning can be turned into a hard error, upgrading the deprecation into removal of this (mis)feature. That is now scheduled to happen in Git v2.16, the next major release after this one. * Git now avoids blindly falling back to ".git" when the setup sequence said we are _not_ in Git repository. A corner case that happens to work right now may be broken by a call to BUG(). We've tried hard to locate such cases and fixed them, but there might still be cases that need to be addressed--bug reports are greatly appreciated. * "branch --set-upstream" that has been deprecated in Git 1.8 has finally been retired. Updates since v2.14 --- UI, Workflows & Features * An example that is now obsolete has been removed from a sample hook, and an old example in it that added a sign-off manually has been improved to use the interpret-trailers command. * The advice message given when "git rebase" stops for conflicting changes has been improved. * The "rerere-train" script (in contrib/) learned the "--overwrite" option to allow overwriting existing recorded resolutions. * "git contacts" (in contrib/) now lists the address on the "Reported-by:" trailer to its output, in addition to those on S-o-b: and other trailers, to make it easier to notify (and thank) the original bug reporter. * "git rebase", especially when it is run by mistake and ends up trying to replay many changes, spent long time in silence. The command has been taught to show progress report when it spends long time preparing these many changes to replay (which would give the user a chance to abort with ^C). * "git merge" learned a "--signoff" option to add the Signed-off-by: trailer with the committer's name. * "git diff" learned to optionally paint new lines that are the same as deleted lines elsewhere differently from genuinely new lines. * "git interpret-trailers" learned to take the trailer specifications from the command line that overrides the configured values. * "git interpret-trailers" has been taught a "--parse" and a few other options to make it easier for scripts to grab existing trailer lines from a commit log message. * The "--format=%(trailers)" option "git log" and its friends take learned to take the 'unfold' and 'only' modifiers to normalize its output, e.g. "git log --format=%(trailers:only,unfold)". * &q