]>
Commit | Line | Data |
---|---|---|
1 | Git v2.9.3 Release Notes | |
2 | ======================== | |
3 | ||
4 | Fixes since v2.9.2 | |
5 | ------------------ | |
6 | ||
7 | * A helper function that takes the contents of a commit object and | |
8 | finds its subject line did not ignore leading blank lines, as is | |
9 | commonly done by other codepaths. Make it ignore leading blank | |
10 | lines to match. | |
11 | ||
12 | * Git does not know what the contents in the index should be for a | |
13 | path added with "git add -N" yet, so "git grep --cached" should not | |
14 | show hits (or show lack of hits, with -L) in such a path, but that | |
15 | logic does not apply to "git grep", i.e. searching in the working | |
16 | tree files. But we did so by mistake, which has been corrected. | |
17 | ||
18 | * "git rebase -i --autostash" did not restore the auto-stashed change | |
19 | when the operation was aborted. | |
20 | ||
21 | * "git commit --amend --allow-empty-message -S" for a commit without | |
22 | any message body could have misidentified where the header of the | |
23 | commit object ends. | |
24 | ||
25 | * More mark-up updates to typeset strings that are expected to | |
26 | literally typed by the end user in fixed-width font. | |
27 | ||
28 | * For a long time, we carried an in-code comment that said our | |
29 | colored output would work only when we use fprintf/fputs on | |
30 | Windows, which no longer is the case for the past few years. | |
31 | ||
32 | * "gc.autoPackLimit" when set to 1 should not trigger a repacking | |
33 | when there is only one pack, but the code counted poorly and did | |
34 | so. | |
35 | ||
36 | * One part of "git am" had an oddball helper function that called | |
37 | stuff from outside "his" as opposed to calling what we have "ours", | |
38 | which was not gender-neutral and also inconsistent with the rest of | |
39 | the system where outside stuff is usuall called "theirs" in | |
40 | contrast to "ours". | |
41 | ||
42 | * The test framework learned a new helper test_match_signal to | |
43 | check an exit code from getting killed by an expected signal. | |
44 | ||
45 | * "git blame -M" missed a single line that was moved within the file. | |
46 | ||
47 | * Fix recently introduced codepaths that are involved in parallel | |
48 | submodule operations, which gave up on reading too early, and | |
49 | could have wasted CPU while attempting to write under a corner | |
50 | case condition. | |
51 | ||
52 | * "git grep -i" has been taught to fold case in non-ascii locales | |
53 | correctly. | |
54 | ||
55 | * A test that unconditionally used "mktemp" learned that the command | |
56 | is not necessarily available everywhere. | |
57 | ||
58 | * "git blame file" allowed the lineage of lines in the uncommitted, | |
59 | unadded contents of "file" to be inspected, but it refused when | |
60 | "file" did not appear in the current commit. When "file" was | |
61 | created by renaming an existing file (but the change has not been | |
62 | committed), this restriction was unnecessarily tight. | |
63 | ||
64 | * "git add -N dir/file && git write-tree" produced an incorrect tree | |
65 | when there are other paths in the same directory that sorts after | |
66 | "file". | |
67 | ||
68 | * "git fetch http://user:pass@host/repo..." scrubbed the userinfo | |
69 | part, but "git push" didn't. | |
70 | ||
71 | * An age old bug that caused "git diff --ignore-space-at-eol" | |
72 | misbehave has been fixed. | |
73 | ||
74 | * "git notes merge" had a code to see if a path exists (and fails if | |
75 | it does) and then open the path for writing (when it doesn't). | |
76 | Replace it with open with O_EXCL. | |
77 | ||
78 | * "git pack-objects" and "git index-pack" mostly operate with off_t | |
79 | when talking about the offset of objects in a packfile, but there | |
80 | were a handful of places that used "unsigned long" to hold that | |
81 | value, leading to an unintended truncation. | |
82 | ||
83 | * Recent update to "git daemon" tries to enable the socket-level | |
84 | KEEPALIVE, but when it is spawned via inetd, the standard input | |
85 | file descriptor may not necessarily be connected to a socket. | |
86 | Suppress an ENOTSOCK error from setsockopt(). | |
87 | ||
88 | * Recent FreeBSD stopped making perl available at /usr/bin/perl; | |
89 | switch the default the built-in path to /usr/local/bin/perl on not | |
90 | too ancient FreeBSD releases. | |
91 | ||
92 | * "git status" learned to suggest "merge --abort" during a conflicted | |
93 | merge, just like it already suggests "rebase --abort" during a | |
94 | conflicted rebase. | |
95 | ||
96 | * The .c/.h sources are marked as such in our .gitattributes file so | |
97 | that "git diff -W" and friends would work better. | |
98 | ||
99 | * Existing autoconf generated test for the need to link with pthread | |
100 | library did not check all the functions from pthread libraries; | |
101 | recent FreeBSD has some functions in libc but not others, and we | |
102 | mistakenly thought linking with libc is enough when it is not. | |
103 | ||
104 | * Allow http daemon tests in Travis CI tests. | |
105 | ||
106 | * Users of the parse_options_concat() API function need to allocate | |
107 | extra slots in advance and fill them with OPT_END() when they want | |
108 | to decide the set of supported options dynamically, which makes the | |
109 | code error-prone and hard to read. This has been corrected by tweaking | |
110 | the API to allocate and return a new copy of "struct option" array. | |
111 | ||
112 | * The use of strbuf in "git rm" to build filename to remove was a bit | |
113 | suboptimal, which has been fixed. | |
114 | ||
115 | * "git commit --help" said "--no-verify" is only about skipping the | |
116 | pre-commit hook, and failed to say that it also skipped the | |
117 | commit-msg hook. | |
118 | ||
119 | * "git merge" in Git v2.9 was taught to forbid merging an unrelated | |
120 | lines of history by default, but that is exactly the kind of thing | |
121 | the "--rejoin" mode of "git subtree" (in contrib/) wants to do. | |
122 | "git subtree" has been taught to use the "--allow-unrelated-histories" | |
123 | option to override the default. | |
124 | ||
125 | * The build procedure for "git persistent-https" helper (in contrib/) | |
126 | has been updated so that it can be built with more recent versions | |
127 | of Go. | |
128 | ||
129 | * There is an optimization used in "git diff $treeA $treeB" to borrow | |
130 | an already checked-out copy in the working tree when it is known to | |
131 | be the same as the blob being compared, expecting that open/mmap of | |
132 | such a file is faster than reading it from the object store, which | |
133 | involves inflating and applying delta. This however kicked in even | |
134 | when the checked-out copy needs to go through the convert-to-git | |
135 | conversion (including the clean filter), which defeats the whole | |
136 | point of the optimization. The optimization has been disabled when | |
137 | the conversion is necessary. | |
138 | ||
139 | * "git -c grep.patternType=extended log --basic-regexp" misbehaved | |
140 | because the internal API to access the grep machinery was not | |
141 | designed well. | |
142 | ||
143 | * Windows port was failing some tests in t4130, due to the lack of | |
144 | inum in the returned values by its lstat(2) emulation. | |
145 | ||
146 | * The characters in the label shown for tags/refs for commits in | |
147 | "gitweb" output are now properly escaped for proper HTML output. | |
148 | ||
149 | * FreeBSD can lie when asked mtime of a directory, which made the | |
150 | untracked cache code to fall back to a slow-path, which in turn | |
151 | caused tests in t7063 to fail because it wanted to verify the | |
152 | behaviour of the fast-path. | |
153 | ||
154 | * Squelch compiler warnings for netmalloc (in compat/) library. | |
155 | ||
156 | * The API documentation for hashmap was unclear if hashmap_entry | |
157 | can be safely discarded without any other consideration. State | |
158 | that it is safe to do so. | |
159 | ||
160 | * Not-so-recent rewrite of "git am" that started making internal | |
161 | calls into the commit machinery had an unintended regression, in | |
162 | that no matter how many seconds it took to apply many patches, the | |
163 | resulting committer timestamp for the resulting commits were all | |
164 | the same. | |
165 | ||
166 | * "git difftool <paths>..." started in a subdirectory failed to | |
167 | interpret the paths relative to that directory, which has been | |
168 | fixed. | |
169 | ||
170 | Also contains minor documentation updates and code clean-ups. |