diff options
Diffstat (limited to 'Documentation/RelNotes')
-rw-r--r-- | Documentation/RelNotes/2.4.11.txt | 11 | ||||
-rw-r--r-- | Documentation/RelNotes/2.5.5.txt | 11 | ||||
-rw-r--r-- | Documentation/RelNotes/2.6.6.txt | 11 | ||||
-rw-r--r-- | Documentation/RelNotes/2.7.3.txt | 62 | ||||
-rw-r--r-- | Documentation/RelNotes/2.7.4.txt | 11 | ||||
-rw-r--r-- | Documentation/RelNotes/2.8.0.txt | 61 | ||||
-rw-r--r-- | Documentation/RelNotes/2.8.1.txt | 9 | ||||
-rw-r--r-- | Documentation/RelNotes/2.9.0.txt | 157 |
8 files changed, 307 insertions, 26 deletions
diff --git a/Documentation/RelNotes/2.4.11.txt b/Documentation/RelNotes/2.4.11.txt new file mode 100644 index 0000000..7233602 --- /dev/null +++ b/Documentation/RelNotes/2.4.11.txt @@ -0,0 +1,11 @@ +Git v2.4.11 Release Notes +========================= + +Fixes since v2.4.10 +------------------- + + * Bugfix patches were backported from the 'master' front to plug heap + corruption holes, to catch integer overflow in the computation of + pathname lengths, and to get rid of the name_path API. Both of + these would have resulted in writing over an under-allocated buffer + when formulating pathnames while tree traversal. diff --git a/Documentation/RelNotes/2.5.5.txt b/Documentation/RelNotes/2.5.5.txt new file mode 100644 index 0000000..37eae9a --- /dev/null +++ b/Documentation/RelNotes/2.5.5.txt @@ -0,0 +1,11 @@ +Git v2.5.5 Release Notes +======================== + +Fixes since v2.5.4 +------------------ + + * Bugfix patches were backported from the 'master' front to plug heap + corruption holes, to catch integer overflow in the computation of + pathname lengths, and to get rid of the name_path API. Both of + these would have resulted in writing over an under-allocated buffer + when formulating pathnames while tree traversal. diff --git a/Documentation/RelNotes/2.6.6.txt b/Documentation/RelNotes/2.6.6.txt new file mode 100644 index 0000000..023ad85 --- /dev/null +++ b/Documentation/RelNotes/2.6.6.txt @@ -0,0 +1,11 @@ +Git v2.6.6 Release Notes +======================== + +Fixes since v2.6.5 +------------------ + + * Bugfix patches were backported from the 'master' front to plug heap + corruption holes, to catch integer overflow in the computation of + pathname lengths, and to get rid of the name_path API. Both of + these would have resulted in writing over an under-allocated buffer + when formulating pathnames while tree traversal. diff --git a/Documentation/RelNotes/2.7.3.txt b/Documentation/RelNotes/2.7.3.txt new file mode 100644 index 0000000..6adf038 --- /dev/null +++ b/Documentation/RelNotes/2.7.3.txt @@ -0,0 +1,62 @@ +Git v2.7.3 Release Notes +======================== + +Fixes since v2.7.2 +------------------ + + * Traditionally, the tests that try commands that work on the + contents in the working tree were named with "worktree" in their + filenames, but with the recent addition of "git worktree" + subcommand, whose tests are also named similarly, it has become + harder to tell them apart. The traditional tests have been renamed + to use "work-tree" instead in an attempt to differentiate them. + + * Many codepaths forget to check return value from git_config_set(); + the function is made to die() to make sure we do not proceed when + setting a configuration variable failed. + + * Handling of errors while writing into our internal asynchronous + process has been made more robust, which reduces flakiness in our + tests. + + * "git show 'HEAD:Foo[BAR]Baz'" did not interpret the argument as a + rev, i.e. the object named by the the pathname with wildcard + characters in a tree object. + + * "git rev-parse --git-common-dir" used in the worktree feature + misbehaved when run from a subdirectory. + + * The "v(iew)" subcommand of the interactive "git am -i" command was + broken in 2.6.0 timeframe when the command was rewritten in C. + + * "git merge-tree" used to mishandle "both sides added" conflict with + its own "create a fake ancestor file that has the common parts of + what both sides have added and do a 3-way merge" logic; this has + been updated to use the usual "3-way merge with an empty blob as + the fake common ancestor file" approach used in the rest of the + system. + + * The memory ownership rule of fill_textconv() API, which was a bit + tricky, has been documented a bit better. + + * The documentation did not clearly state that the 'simple' mode is + now the default for "git push" when push.default configuration is + not set. + + * Recent versions of GNU grep are pickier when their input contains + arbitrary binary data, which some of our tests uses. Rewrite the + tests to sidestep the problem. + + * A helper function "git submodule" uses since v2.7.0 to list the + modules that match the pathspec argument given to its subcommands + (e.g. "submodule add <repo> <path>") has been fixed. + + * "git config section.var value" to set a value in per-repository + configuration file failed when it was run outside any repository, + but didn't say the reason correctly. + + * The code to read the pack data using the offsets stored in the pack + idx file has been made more carefully check the validity of the + data in the idx. + +Also includes documentation and test updates. diff --git a/Documentation/RelNotes/2.7.4.txt b/Documentation/RelNotes/2.7.4.txt new file mode 100644 index 0000000..883ae89 --- /dev/null +++ b/Documentation/RelNotes/2.7.4.txt @@ -0,0 +1,11 @@ +Git v2.7.4 Release Notes +======================== + +Fixes since v2.7.3 +------------------ + + * Bugfix patches were backported from the 'master' front to plug heap + corruption holes, to catch integer overflow in the computation of + pathname lengths, and to get rid of the name_path API. Both of + these would have resulted in writing over an under-allocated buffer + when formulating pathnames while tree traversal. diff --git a/Documentation/RelNotes/2.8.0.txt b/Documentation/RelNotes/2.8.0.txt index b7a6d68..2507971 100644 --- a/Documentation/RelNotes/2.8.0.txt +++ b/Documentation/RelNotes/2.8.0.txt @@ -16,7 +16,9 @@ UI, Workflows & Features the source repository has packed references for a long time, and nobody noticed nor complained about it. - * "branch --delete" has "branch -d" but "push --delete" does not. + * "push" learned that its "--delete" option can be shortened to + "-d", just like "branch --delete" and "branch -d" are the same + thing. * "git blame" learned to produce the progress eye-candy when it takes too much time before emitting the first line of the result. @@ -32,7 +34,7 @@ UI, Workflows & Features have a place to store the updated notes tree, iow, a ref). * "git grep" by default does not fall back to its "--no-index" - behaviour outside a directory under Git's control (otherwise the + behavior outside a directory under Git's control (otherwise the user may by mistake end up running a huge recursive search); with a new configuration (set in $HOME/.gitconfig--by definition this cannot be set in the config file per project), this safety can be @@ -53,7 +55,7 @@ UI, Workflows & Features * Many commands that read files that are expected to contain text that is generated (or can be edited) by the end user to control - their behaviour (e.g. "git grep -f <filename>") have been updated + their behavior (e.g. "git grep -f <filename>") have been updated to be more tolerant to lines that are terminated with CRLF (they used to treat such a line to contain payload that ends with CR, which is usually not what the users expect). @@ -131,8 +133,8 @@ UI, Workflows & Features * Across the transition at around Git version 2.0, the user used to get a pretty loud warning when running "git push" without setting - push.default configuration variable. We no longer warn, given that - the transition is over long time ago. + push.default configuration variable. We no longer warn because the + transition was completed a long time ago. * README has been renamed to README.md and its contents got tweaked slightly to make it easier on the eyes. @@ -143,8 +145,8 @@ Performance, Internal Implementation, Development Support etc. * Add a framework to spawn a group of processes in parallel, and use it to run "git fetch --recurse-submodules" in parallel. - * A slight update to the Makefile to mark "phoney" targets - as such correctly. + * A slight update to the Makefile to mark ".PHONY" targets as such + correctly. * In-core storage of the reverse index for .pack files (which lets you go from a pack offset to an object name) has been streamlined. @@ -185,16 +187,10 @@ Performance, Internal Implementation, Development Support etc. with expectations that are not satisfiable on Git for Windows. * Some calls to strcpy(3) triggers a false warning from static - analysers that are less intelligent than humans, and reducing the + analyzers that are less intelligent than humans, and reducing the number of these false hits helps us notice real issues. A few - calls to strcpy(3) in test-path-utils that are already safe has - been rewritten to avoid false wanings. - - * Some calls to strcpy(3) triggers a false warning from static - analysers that are less intelligent than humans, and reducing the - number of these false hits helps us notice real issues. A few - calls to strcpy(3) in "git rerere" that are already safe has been - rewritten to avoid false wanings. + calls to strcpy(3) in a couple of protrams that are already safe + has been rewritten to avoid false warnings. * The "name_path" API was an attempt to reduce the need to construct the full path out of a series of path components while walking a @@ -240,6 +236,23 @@ Performance, Internal Implementation, Development Support etc. * Out of maintenance gcc on OSX 10.6 fails to compile the code in 'master'; work it around by using clang by default on the platform. + * The "name_path" API was an attempt to reduce the need to construct + the full path out of a series of path components while walking a + tree hierarchy, but over time made less efficient because the path + needs to be flattened, e.g. to be compared with another path that + is already flat, in many cases. The API has been removed and its + users have been rewritten to simplify the overall code complexity. + This incidentally also closes some heap-corruption holes. + + * Recent versions of GNU grep is pickier than before to decide if a + file is "binary" and refuse to give line-oriented hits when we + expect it to, unless explicitly told with "-a" option. As our + scripted Porcelains use sane_grep wrapper for line-oriented data, + even when the line may contain non-ASCII payload we took from + end-user data, use "grep -a" to implement sane_grep wrapper when + using an implementation of "grep" that takes the "-a" option. + + Also contains various documentation updates and code clean-ups. @@ -268,7 +281,7 @@ notes for details). * "git send-email" was confused by escaped quotes stored in the alias files saved by "mutt", which has been corrected. - * A few unportable C construct have been spotted by clang compiler + * A few non-portable C construct have been spotted by clang compiler and have been fixed. * The documentation has been updated to hint the connection between @@ -329,17 +342,17 @@ notes for details). * dirname() emulation has been added, as Msys2 lacks it. * The underlying machinery used by "ls-files -o" and other commands - have been taught not to create empty submodule ref cache for a + has been taught not to create empty submodule ref cache for a directory that is not a submodule. This removes a ton of wasted CPU cycles. * "git worktree" had a broken code that attempted to auto-fix possible inconsistency that results from end-users moving a worktree to different places without telling Git (the original - repository needs to maintain backpointers to its worktrees, but - "mv" run by end-users who are not familiar with that fact will - obviously not adjust them), which actually made things worse - when triggered. + repository needs to maintain back-pointers to its worktrees, + but "mv" run by end-users who are not familiar with that fact + will obviously not adjust them), which actually made things + worse when triggered. * The low-level merge machinery has been taught to use CRLF line termination when inserting conflict markers to merged contents that @@ -372,10 +385,6 @@ notes for details). misbehaved when run from a subdirectory. (merge 17f1365 nd/git-common-dir-fix later to maint). - * Another try to add support to the ignore mechanism that lets you - say "this is excluded" and then later say "oh, no, this part (that - is a subset of the previous part) is not excluded". - * "git worktree add -B <branchname>" did not work. * The "v(iew)" subcommand of the interactive "git am -i" command was diff --git a/Documentation/RelNotes/2.8.1.txt b/Documentation/RelNotes/2.8.1.txt new file mode 100644 index 0000000..ef6d80b --- /dev/null +++ b/Documentation/RelNotes/2.8.1.txt @@ -0,0 +1,9 @@ +Git v2.8.1 Release Notes +======================== + +Fixes since v2.8 +---------------- + + * "make rpmbuild" target was broken as its input, git.spec.in, was + not updated to match a file it describes that has been renamed + recently. This has been fixed. diff --git a/Documentation/RelNotes/2.9.0.txt b/Documentation/RelNotes/2.9.0.txt new file mode 100644 index 0000000..9165443 --- /dev/null +++ b/Documentation/RelNotes/2.9.0.txt @@ -0,0 +1,157 @@ +Git 2.9 Release Notes +===================== + +Backward compatibility note +--------------------------- + +The end-user facing Porcelain level commands in the "git diff" and +"git log" by default enables the rename detection; you can still use +"diff.renames" configuration variable to disable this. + +Merging two branches that have no common ancestor with "git merge" is +by default forbidden now to prevent creating such an unusual merge by +mistake. + + +Updates since v2.8 +------------------ + +UI, Workflows & Features + + * The end-user facing Porcelain level commands like "diff" and "log" + now enables the rename detection by default. + + * The credential.helper configuration variable is cumulative and + there is no good way to override it from the command line. As + a special case, giving an empty string as its value now serves + as the signal to clear the values specified in various files. + + * A new "interactive.diffFilter" configuration can be used to + customize the diff shown in "git add -i" session. + + * "git p4" now allows P4 author names to be mapped to Git author + names. + + * "git rebase -x" can be used without passing "-i" option. + + * "git -c credential.<var>=<value> submodule" can now be used to + propagate configuration variables related to credential helper + down to the submodules. + + * "git tag" can create an annotated tag without explicitly given an + "-a" (or "-s") option (i.e. when a tag message is given). A new + configuration variable, tag.forceSignAnnotated, can be used to tell + the command to create signed tag in such a situation. + + * "git merge" used to allow merging two branches that have no common + base by default, which led to a brand new history of an existing + project created and then get pulled by an unsuspecting maintainer, + which allowed an unnecessary parallel history merged into the + existing project. The command has been taught not to allow this by + default, with an escape hatch "--allow-unrelated-histories" option + to be used in a rare event that merges histories of two projects + that started their lives independently. + (merge e379fdf jc/merge-refuse-new-root later to maint). + + * "git apply -v" learned to report paths in the patch that were + skipped via --include/--exclude mechanism or being outside the + current working directory. + (merge 3f57944 nd/apply-report-skip later to maint). + + +Performance, Internal Implementation, Development Support etc. + + * The embedded args argv-array in the child process is used to build + the command line to run pack-objects instead of using a separate + array of strings. + (merge 65a3629 mp/upload-pack-use-embedded-args later to maint). + + * A test for tags has been restructured so that more parts of it can + easily be run on a platform without a working GnuPG. + + * The startup_info data, which records if we are working inside a + repository (among other things), are now uniformly available to Git + subcommand implementations, and Git avoids attempting to touch + references when we are not in a repository. + (merge 11e6b3f jk/startup-info later to maint). + + * The command line argument parser for "receive-pack" has been + rewritten to use parse-options. + + * A major part of "git submodule update" has been ported to C to take + advantage of the recently added framework to run download tasks in + parallel. + + * Rename bunch of tests on "git clone" for better organization. + (merge 8fbb03a sb/clone-t57-t56 later to maint). + + * The tests that involve running httpd leaked the system-wide + configuration in /etc/gitconfig to the tested environment. + (merge 1fad503 jk/test-httpd-config-nosystem later to maint). + + * Build updates for MSVC. + (merge 0ef60af ss/msvc later to maint). + +Also contains various documentation updates and code clean-ups. + + +Fixes since v2.8 +---------------- + +Unless otherwise noted, all the fixes since v2.8 in the maintenance +track are contained in this release (see the maintenance releases' +notes for details). + + * "git config --get-urlmatch", unlike other variants of the "git + config --get" family, did not signal error with its exit status + when there was no matching configuration. + (merge 24990b2 jk/config-get-urlmatch later to maint). + + * The "--local-env-vars" and "--resolve-git-dir" options of "git + rev-parse" failed to work outside a repository when the command's + option parsing was rewritten in 1.8.5 era. + (merge fc7d47f jk/rev-parse-local-env-vars later to maint). + + * "git index-pack --keep[=<msg>] pack-$name.pack" simply did not work. + (merge 0e94242 jc/maint-index-pack-keep later to maint). + + * Fetching of history by naming a commit object name directly didn't + work across remote-curl transport. + (merge 754ecb1 gf/fetch-pack-direct-object-fetch later to maint). + + * A small memory leak in an error codepath has been plugged in xdiff + code. + (merge 87f1625 rj/xdiff-prepare-plug-leak-on-error-codepath later to maint). + + * strbuf_getwholeline() did not NUL-terminate the buffer on certain + corner cases in its error codepath. + (merge b709043 jk/getwholeline-getdelim-empty later to maint). + + * "git mergetool" did not work well with conflicts that both sides + deleted. + (merge a298604 da/mergetool-delete-delete-conflict later to maint). + + * "git send-email" had trouble parsing alias file in mailrc format + when lines in it had trailing whitespaces on them. + (merge a277d1e jk/send-email-rtrim-mailrc-alias later to maint). + + * When "git merge --squash" stopped due to conflict, the concluding + "git commit" failed to read in the SQUASH_MSG that shows the log + messages from all the squashed commits. + (merge b64c1e0 ss/commit-squash-msg later to maint). + + * "git merge FETCH_HEAD" dereferenced NULL pointer when merging + nothing into an unborn history (which is arguably unusual usage, + which perhaps was the reason why nobody noticed it). + (merge b84e65d jv/merge-nothing-into-void later to maint). + + * Other minor clean-ups and documentation updates + (merge aed7480 mm/lockfile-error-message later to maint). + (merge bfee614 jc/index-pack later to maint). + (merge f870899 ss/exc-flag-is-a-collection-of-bits later to maint). + (merge dde7891 pb/t7502-drop-dup later to maint). + (merge 3bd1b51 cc/doc-recommend-performance-trace-to-file later to maint). + (merge 7d5e9c9 jk/credential-cache-comment-exit later to maint). + (merge 16a86d4 nd/apply-doc later to maint). + (merge c3f6b85 pb/opt-cmdmode-doc later to maint). + (merge 30211fb oa/doc-diff-check later to maint). |