7 Backward compatibility notes
9 * When "git describe C" finds that commit C is pointed by a signed or
10 annotated tag, which records T as its tagname in the object, the
11 command gives T as its answer. Even if the user renames or moves
12 such a tag from its natural location in the "refs/tags/" hierarchy,
13 "git describe C" would still give T as the answer, but in such a
14 case "git show T^0" would no longer work as expected. There may be
15 nothing at "refs/tags/T" or even worse there may be a different tag
18 Starting from this version, "git describe" will always use the
19 "long" version, as if the "--long" option were given, when giving
20 its output based on such a misplaced tag to work around the problem.
22 * "git pull" issues a warning message until the pull.rebase
23 configuration variable is explicitly given, which some existing
24 users may find annoying---those who prefer not to rebase need to
25 set the variable to false to squelch the warning.
28 UI, Workflows & Features
30 * A handful of options to configure SSL when talking to proxies have
33 * Smudge/clean conversion filters are now given more information
34 (e.g. the object of the tree-ish in which the blob being converted
35 appears, in addition to its path, which has already been given).
37 * When "git describe C" finds an annotated tag with tagname A to be
38 the best name to explain commit C, and the tag is stored in a
39 "wrong" place in the refs/tags hierarchy, e.g. refs/tags/B, the
40 command gave a warning message but used A (not B) to describe C.
41 If C is exactly at the tag, the describe output would be "A", but
42 "git rev-parse A^0" would not be equal as "git rev-parse C^0". The
43 behavior of the command has been changed to use the "long" form
44 i.e. A-0-gOBJECTNAME, which is correctly interpreted by rev-parse.
46 * "git pull" learned to warn when no pull.rebase configuration
47 exists, and neither --[no-]rebase nor --ff-only is given (which
48 would result a merge).
51 Performance, Internal Implementation, Development Support etc.
53 * The advise API has been revamped to allow more systematic enumeration of
54 advice knobs in the future.
56 * SHA-256 transition continues.
58 * The code to interface with GnuPG has been refactored.
60 * "git stash" has kept an escape hatch to use the scripted version
61 for a few releases, which got stale. It has been removed.
67 * The real_path() convenience function can easily be misused; with a
68 bit of code refactoring in the callers' side, its use has been
70 (merge 49d3c4b481 am/real-path-fix later to maint).
72 * Update "git p4" to work with Python 3.
73 (merge 6bb40ed20a yz/p4-py3 later to maint).
75 * The mechanism to prevent "git commit" from making an empty commit
76 or amending during an interrupted cherry-pick was broken during the
77 rewrite of "git rebase" in C, which has been corrected.
78 (merge 430b75f720 pw/advise-rebase-skip later to maint).
80 * Fix "git checkout --recurse-submodules" of a nested submodule
82 (merge 846f34d351 pb/recurse-submodules-fix later to maint).
84 * The "--fork-point" mode of "git rebase" regressed when the command
85 was rewritten in C back in 2.20 era, which has been corrected.
86 (merge f08132f889 at/rebase-fork-point-regression-fix later to maint).
88 * Other code cleanup, docfix, build fix, etc.
89 (merge 564956f358 jc/maintain-doc later to maint).
90 (merge 7422b2a0a1 sg/commit-slab-clarify-peek later to maint).
91 (merge 9c688735f6 rs/doc-passthru-fetch-options later to maint).
92 (merge 757c2ba3e2 en/oidset-uninclude-hashmap later to maint).
93 (merge 8312aa7d74 jc/config-tar later to maint).
94 (merge d00a5bdd50 ss/submodule-foreach-cb later to maint).