]>
Commit | Line | Data |
---|---|---|
048d4d98 JH |
1 | Git v1.8.3 Release Notes |
2 | ======================== | |
3 | ||
4 | Backward compatibility notes (for Git 2.0) | |
5 | ------------------------------------------ | |
6 | ||
7 | When "git push [$there]" does not say what to push, we have used the | |
8 | traditional "matching" semantics so far (all your branches were sent | |
9 | to the remote as long as there already are branches of the same name | |
10 | over there). In Git 2.0, the default will change to the "simple" | |
11 | semantics that pushes the current branch to the branch with the same | |
12 | name, only when the current branch is set to integrate with that | |
13 | remote branch. There is a user preference configuration variable | |
14 | "push.default" to change this. If you are an old-timer who is used | |
15 | to the "matching" semantics, you can set it to "matching" to keep the | |
16 | traditional behaviour. If you want to live in the future early, | |
17 | you can set it to "simple" today without waiting for Git 2.0. | |
18 | ||
19 | When "git add -u" and "git add -A", that does not specify what paths | |
20 | to add on the command line is run from inside a subdirectory, these | |
21 | commands will operate on the entire tree in Git 2.0 for consistency | |
22 | with "git commit -a" and other commands. Because there will be no | |
23 | mechanism to make "git add -u" behave as if "git add -u .", it is | |
24 | important for those who are used to "git add -u" (without pathspec) | |
25 | updating the index only for paths in the current subdirectory to start | |
26 | training their fingers to explicitly say "git add -u ." when they mean | |
27 | it before Git 2.0 comes. | |
28 | ||
29 | ||
30 | Updates since v1.8.2 | |
31 | -------------------- | |
32 | ||
33 | UI, Workflows & Features | |
34 | ||
7b592fad JH |
35 | * When the interactive access to git-shell is not enabled, it issues |
36 | a message meant to help the system admininstrator to enable it. | |
37 | An explicit way to help the end users who connect to the service by | |
38 | issuing custom messages to refuse such an access has been added. | |
39 | ||
cc3e4eba JH |
40 | * In addition to the case where the user edits the log message with |
41 | the "e)dit" option of "am -i", replace the "Applying: this patch" | |
42 | message with the final log message contents after applymsg hook | |
43 | munges it. | |
44 | ||
45 | * "git status" suggests users to look into using --untracked=no option | |
7b592fad JH |
46 | when it takes too long. |
47 | ||
cc3e4eba JH |
48 | * "git status" shows a bit more information to "git status" during a |
49 | rebase/bisect session. | |
50 | ||
7b592fad JH |
51 | * "git fetch" learned to fetch a commit at the tip of an unadvertised |
52 | ref by specifying a raw object name from the command line when the | |
53 | server side supports this feature. | |
54 | ||
55 | * "git count-objects -v" learned to report leftover temporary | |
56 | packfiles and other garbage in the object store. | |
57 | ||
58 | * A new read-only credential helper (in contrib/) to interact with | |
59 | the .netrc/.authinfo files has been added. | |
60 | ||
61 | * "git send-email" can be used with the credential helper system. | |
048d4d98 | 62 | |
7632cd27 JH |
63 | * There was no Porcelain way to say "I no longer am interested in |
64 | this submodule", once you express your interest in a submodule with | |
65 | "submodule init". "submodule deinit" is the way to do so. | |
66 | ||
67 | * "git pull --rebase" learned to pass "-v/-q" options to underlying | |
68 | "git rebase". | |
69 | ||
70 | * The new "--follow-tags" option tells "git push" to push relevant | |
71 | annotated tags when pushing branches out. | |
72 | ||
2bba2f0e JH |
73 | * "git mergetool" now feeds files to the "p4merge" backend in the |
74 | order that matches the p4 convention, where "theirs" is usually | |
75 | shown on the left side, which is the opposite from other backend | |
76 | expects. | |
048d4d98 | 77 | |
961c5129 JH |
78 | * "show/log" now honors gpg.program configuration just like other |
79 | parts of the code that use GnuPG. | |
80 | ||
81 | * "git log" that shows the difference between the parent and the | |
82 | child has been optimized somewhat. | |
83 | ||
8d994db4 JH |
84 | * "git difftool" allows the user to write into the temporary files |
85 | being shown; if the user makes changes to the working tree at the | |
86 | same time, one of the changes has to be lost in such a case, but it | |
87 | tells the user what happened and refrains from overwriting the copy | |
88 | in the working tree. | |
89 | ||
90 | * There was no good way to ask "I have a random string that came from | |
91 | outside world. I want to turn it into a 40-hex object name while | |
92 | making sure such an object exists". A new peeling suffix ^{object} | |
93 | can be used for that purpose, together with "rev-parse --verify". | |
94 | ||
048d4d98 JH |
95 | |
96 | Performance, Internal Implementation, etc. | |
97 | ||
7b9a4198 | 98 | * Updates for building under msvc. |
048d4d98 | 99 | |
7b592fad JH |
100 | * A few codepaths knew how much data they need to put in the |
101 | hashtables they use upfront, but still started from a small table | |
102 | repeatedly growing and rehashing. | |
103 | ||
2bba2f0e JH |
104 | * The API to walk reflog entries from the latest to older, which was |
105 | necessary for operations such as "git checkout -", was cumbersome | |
106 | to use correctly and also inefficient. | |
107 | ||
cc3e4eba JH |
108 | * Codepaths that inspect log-message-to-be and decide when to add a |
109 | new Signed-off-by line in various commands have been consolidated. | |
110 | ||
111 | * The pkt-line API, implementation and its callers have been cleaned | |
112 | up to make them more robust. | |
113 | ||
961c5129 JH |
114 | * Cygwin port has a faster-but-lying lstat(2) emulation whose |
115 | incorrectness does not matter in practice except for a few | |
116 | codepaths, and setting permission bits to directories is a codepath | |
117 | that needs to use a more correct one. | |
118 | ||
8d994db4 JH |
119 | * "git checkout" had repeated pathspec matches on the same paths, |
120 | which have been consolidated. Also a bug in "git checkout dir/" | |
121 | that is started from an unmerged index has been fixed. | |
122 | ||
048d4d98 JH |
123 | |
124 | Also contains minor documentation updates and code clean-ups. | |
125 | ||
126 | ||
127 | Fixes since v1.8.2 | |
128 | ------------------ | |
129 | ||
130 | Unless otherwise noted, all the fixes since v1.8.2 in the maintenance | |
131 | track are contained in this release (see release notes to them for | |
132 | details). | |
7b9a4198 | 133 | |
8d994db4 JH |
134 | * Fix 1.8.1.x regression that stopped matching "dir" (without |
135 | trailing slash) to a directory "dir". | |
136 | (merge efa5f82 jc/directory-attrs-regression-fix later to maint-1.8.1). | |
137 | ||
138 | * "git apply --whitespace=fix" was not prepared to see a line getting | |
139 | longer after fixing whitespaces (e.g. tab-in-indent aka Python). | |
140 | (merge 329b26e jc/apply-ws-fix-tab-in-indent later to maint-1.8.1). | |
141 | ||
142 | * The prompt string generator (in contrib/completion/) did not notice | |
143 | when we are in a middle of a "git revert" session. | |
144 | (merge 3ee4452 rr/prompt-revert-head later to maint). | |
145 | ||
146 | * "submodule summary --summary-limit" option did not support | |
147 | "--option=value" form. | |
148 | (merge 862ae6c rs/submodule-summary-limit later to maint). | |
149 | ||
cc3e4eba JH |
150 | * "index-pack --fix-thin" used uninitialize value to compute delta |
151 | depths of objects it appends to the resulting pack. | |
152 | (merge 57165db jk/index-pack-correct-depth-fix later to maint). | |
153 | ||
154 | * "index-pack --verify-stat" used a few counters outside protection | |
155 | of mutex, possibly showing incorrect numbers. | |
156 | (merge 8f82aad nd/index-pack-threaded-fixes later to maint). | |
157 | ||
158 | * The code to keep track of what directory names are known to Git on | |
159 | platforms with case insensitive filesystems can get confused upon a | |
160 | hash collision between these pathnames and looped forever. | |
cc3e4eba | 161 | |
7632cd27 JH |
162 | * Annotated tags outside refs/tags/ hierarchy were not advertised |
163 | correctly to the ls-remote and fetch with recent version of Git. | |
7632cd27 JH |
164 | |
165 | * Recent optimization broke shallow clones. | |
166 | (merge f59de5d jk/peel-ref later to maint). | |
167 | ||
168 | * "git cmd -- ':(top'" was not diagnosed as an invalid syntax, and | |
169 | instead the parser kept reading beyond the end of the string. | |
7632cd27 JH |
170 | |
171 | * "git tag -f <tag>" always said "Updated tag '<tag>'" even when | |
172 | creating a new tag (i.e. not overwriting nor updating). | |
7632cd27 JH |
173 | |
174 | * "git p4" did not behave well when the path to the root of the P4 | |
175 | client was not its real path. | |
176 | (merge bbd8486 pw/p4-symlinked-root later to maint). | |
177 | ||
178 | * "git archive" reports a failure when asked to create an archive out | |
179 | of an empty tree. It would be more intuitive to give an empty | |
180 | archive back in such a case. | |
7632cd27 JH |
181 | |
182 | * When "format-patch" quoted a non-ascii strings on the header files, | |
183 | it incorrectly applied rfc2047 and chopped a single character in | |
184 | the middle of it. | |
7632cd27 JH |
185 | |
186 | * An aliased command spawned from a bare repository that does not say | |
187 | it is bare with "core.bare = yes" is treated as non-bare by mistake. | |
7632cd27 JH |
188 | |
189 | * In "git reflog expire", REACHABLE bit was not cleared from the | |
190 | correct objects. | |
7632cd27 JH |
191 | |
192 | * The logic used by "git diff -M --stat" to shorten the names of | |
193 | files before and after a rename did not work correctly when the | |
194 | common prefix and suffix between the two filenames overlapped. | |
7632cd27 JH |
195 | |
196 | * The "--match=<pattern>" option of "git describe", when used with | |
197 | "--all" to allow refs that are not annotated tags to be used as a | |
198 | base of description, did not restrict the output from the command | |
199 | to those that match the given pattern. | |
7632cd27 | 200 | |
7b592fad JH |
201 | * Clarify in the documentation "what" gets pushed to "where" when the |
202 | command line to "git push" does not say these explicitly. | |
7b592fad | 203 | |
7b9a4198 JH |
204 | * The "--color=<when>" argument to the commands in the diff family |
205 | was described poorly. | |
7b9a4198 JH |
206 | |
207 | * The arguments given to pre-rebase hook were not documented. | |
7b9a4198 JH |
208 | |
209 | * The v4 index format was not documented. | |
7b9a4198 JH |
210 | |
211 | * The "--match=<pattern>" argument "git describe" takes uses glob | |
212 | pattern but it wasn't obvious from the documentation. | |
7b9a4198 JH |
213 | |
214 | * Some sources failed to compile on systems that lack NI_MAXHOST in | |
215 | their system header (e.g. z/OS). | |
7b9a4198 JH |
216 | |
217 | * Add an example use of "--env-filter" in "filter-branch" | |
218 | documentation. | |
7b9a4198 JH |
219 | |
220 | * "git bundle verify" did not say "records a complete history" for a | |
221 | bundle that does not have any prerequisites. | |
7b9a4198 JH |
222 | |
223 | * In the v1.8.0 era, we changed symbols that do not have to be global | |
224 | to file scope static, but a few functions in graph.c were used by | |
225 | CGit from sideways bypassing the entry points of the API the | |
226 | in-tree users use. | |
7b592fad JH |
227 | |
228 | * "git update-index -h" did not do the usual "-h(elp)" thing. | |
229 | ||
230 | * "git index-pack" had a buffer-overflow while preparing an | |
231 | informational message when the translated version of it was too | |
232 | long. | |
7b592fad JH |
233 | |
234 | * 'git commit -m "$msg"' used to add an extra newline even when | |
235 | $msg already ended with one. | |
7b592fad JH |
236 | |
237 | * The SSL peer verification done by "git imap-send" did not ask for | |
238 | Server Name Indication (RFC 4366), failing to connect SSL/TLS | |
239 | sites that serve multiple hostnames on a single IP. | |
7b592fad JH |
240 | |
241 | * perl/Git.pm::cat_blob slurped everything in core only to write it | |
242 | out to a file descriptor, which was not a very smart thing to do. | |
7b592fad JH |
243 | |
244 | * "git branch" did not bother to check nonsense command line | |
245 | parameters and issue errors in many cases. | |
7b592fad JH |
246 | |
247 | * Verification of signed tags were not done correctly when not in C | |
248 | or en/US locale. | |
7b592fad JH |
249 | |
250 | * Some platforms and users spell UTF-8 differently; retry with the | |
251 | most official "UTF-8" when the system does not understand the | |
252 | user-supplied encoding name that are the common alternative | |
253 | spellings of UTF-8. | |
7b592fad JH |
254 | |
255 | * When export-subst is used, "zip" output recorded incorrect | |
256 | size of the file. | |
7b592fad JH |
257 | |
258 | * "git am $maildir/" applied messages in an unexpected order; sort | |
259 | filenames read from the maildir/ in a way that is more likely to | |
260 | sort messages in the order the writing MUA meant to, by sorting | |
261 | numeric segment in numeric order and non-numeric segment in | |
262 | alphabetical order. | |
7b592fad JH |
263 | |
264 | * "git submodule update", when recursed into sub-submodules, did not | |
265 | acccumulate the prefix paths. |