]>
Commit | Line | Data |
---|---|---|
851f7e68 JH |
1 | Git v1.8.0 Release Notes |
2 | ======================== | |
3 | ||
31e0100e JH |
4 | Backward compatibility notes |
5 | ---------------------------- | |
6 | ||
8c7a786b JH |
7 | In the next major release (not *this* one), we will change the |
8 | behavior of the "git push" command. | |
9 | ||
10 | When "git push [$there]" does not say what to push, we have used the | |
11 | traditional "matching" semantics so far (all your branches were sent | |
12 | to the remote as long as there already are branches of the same name | |
13 | over there). We will use the "simple" semantics that pushes the | |
14 | current branch to the branch with the same name, only when the current | |
31e0100e JH |
15 | branch is set to integrate with that remote branch. There is a user |
16 | preference configuration variable "push.default" to change this, and | |
17 | "git push" will warn about the upcoming change until you set this | |
8c7a786b | 18 | variable in this release. |
31e0100e | 19 | |
682ce8bb JH |
20 | "git branch --set-upstream" is deprecated and may be removed in a |
21 | relatively distant future. "git branch [-u|--set-upstream-to]" has | |
22 | been introduced with a saner order of arguments. | |
23 | ||
31e0100e | 24 | |
851f7e68 JH |
25 | Updates since v1.7.12 |
26 | --------------------- | |
27 | ||
28 | UI, Workflows & Features | |
29 | ||
16d26b16 JH |
30 | * A credential helper for Win32 to allow access to the keychain of |
31 | the logged-in user has been added. | |
32 | ||
652398a8 JH |
33 | * An initial port to HP NonStop. |
34 | ||
682ce8bb JH |
35 | * A credential helper to allow access to the Gnome keyring has been |
36 | added. | |
37 | ||
d117dd20 | 38 | * When "git am" sanitizes the "Subject:" line, we strip the prefix from |
83379df0 | 39 | "Re: subject" and also from a less common "re: subject", but left |
8c7a786b | 40 | the even less common "RE: subject" intact. Now we strip that too. |
83379df0 | 41 | |
682ce8bb JH |
42 | * It was tempting to say "git branch --set-upstream origin/master", |
43 | but that tells Git to arrange the local branch "origin/master" to | |
44 | integrate with the currently checked out branch, which is highly | |
45 | unlikely what the user meant. The option is deprecated; use the | |
46 | new "--set-upstream-to" (with a short-and-sweet "-u") option | |
47 | instead. | |
48 | ||
a2e78c2d JH |
49 | * "git cherry-pick" learned the "--allow-empty-message" option to |
50 | allow it to replay a commit without any log message. | |
51 | ||
b0576a6a JH |
52 | * After "git cherry-pick -s" gave control back to the user asking |
53 | help to resolve conflicts, concluding "git commit" used to need to | |
54 | be run with "-s" if the user wants to sign it off; now the command | |
55 | leaves the sign-off line in the log template. | |
56 | ||
a2e78c2d JH |
57 | * "git daemon" learned the "--access-hook" option to allow an |
58 | external command to decline service based on the client address, | |
59 | repository path, etc. | |
60 | ||
31e0100e | 61 | * "git difftool --dir-diff" learned to use symbolic links to prepare |
d117dd20 | 62 | a temporary copy of the working tree when available. |
31e0100e JH |
63 | |
64 | * "git grep" learned to use a non-standard pattern type by default if | |
65 | a configuration variable tells it to. | |
851f7e68 | 66 | |
8c7a786b JH |
67 | * Accumulated updates to "git gui" has been merged. |
68 | ||
f84667de JH |
69 | * "git log -g" learned the "--grep-reflog=<pattern>" option to limit |
70 | its output to commits with a reflog message that matches the given | |
71 | pattern. | |
72 | ||
d117dd20 | 73 | * "git merge-base" learned the "--is-ancestor A B" option to tell if A is |
53284de7 JH |
74 | an ancestor of B. The result is indicated by its exit status code. |
75 | ||
d117dd20 | 76 | * "git mergetool" now allows users to override the actual command used |
b0ec16b4 JH |
77 | with the mergetool.$name.cmd configuration variable even for built-in |
78 | mergetool backends. | |
79 | ||
f65ed83c | 80 | * "git rebase -i" learned the "--edit-todo" option to open an editor |
d117dd20 | 81 | to edit the instruction sheet. |
f65ed83c | 82 | |
53284de7 | 83 | |
851f7e68 JH |
84 | Foreign Interface |
85 | ||
86 | * "git svn" has been updated to work with SVN 1.7. | |
87 | ||
d117dd20 | 88 | * "git p4" learned the "--conflicts" option to specify what to do when |
b0576a6a JH |
89 | encountering a conflict during "p4 submit". |
90 | ||
6b149cee | 91 | |
8c7a786b | 92 | Performance, Internal Implementation, etc. |
851f7e68 | 93 | |
53284de7 JH |
94 | * Git ships with a fall-back regexp implementation for platforms with |
95 | buggy regexp library, but it was easy for people to keep using their | |
d117dd20 | 96 | platform regexp by mistake. A new test has been added to check this. |
53284de7 | 97 | |
851f7e68 JH |
98 | * The "check-docs" build target has been updated and greatly |
99 | simplified. | |
100 | ||
d117dd20 | 101 | * The test suite is run under MALLOC_CHECK_ when running with a glibc |
652398a8 JH |
102 | that supports the feature. |
103 | ||
31e0100e JH |
104 | * The documentation in the TeXinfo format was using indented output |
105 | for materials meant to be examples that are better typeset in | |
106 | monospace. | |
851f7e68 | 107 | |
a2e78c2d | 108 | * Compatibility wrapper around some mkdir(2) implementations that |
d117dd20 | 109 | reject parameters with trailing slash has been introduced. |
a2e78c2d | 110 | |
6b149cee JH |
111 | * Compatibility wrapper for systems that lack usable setitimer() has |
112 | been added. | |
113 | ||
1084f3b8 JH |
114 | * The option parsing of "git checkout" had error checking, dwim and |
115 | defaulting missing options, all mixed in the code, and issuing an | |
116 | appropriate error message with useful context was getting harder. | |
117 | The code has been reorganized to allow giving a proper diagnosis | |
118 | when the user says "git checkout -b -t foo bar" (e.g. "-t" is not a | |
119 | good name for a branch). | |
120 | ||
d117dd20 | 121 | * Many internal uses of a "git merge-base" equivalent were only to see |
53284de7 JH |
122 | if one commit fast-forwards to the other, which did not need the |
123 | full set of merge bases to be computed. They have been updated to | |
124 | use less expensive checks. | |
125 | ||
0ce98644 JH |
126 | * The heuristics to detect and silently convert latin1 to utf8 when |
127 | we were told to use utf-8 in the log message has been transplanted | |
128 | from "mailinfo" to "commit" and "commit-tree". | |
129 | ||
130 | * Messages given by "git <subcommand> -h" from many subcommands have | |
131 | been marked for translation. | |
132 | ||
6b149cee | 133 | |
851f7e68 JH |
134 | Also contains minor documentation updates and code clean-ups. |
135 | ||
136 | ||
137 | Fixes since v1.7.12 | |
138 | ------------------- | |
139 | ||
140 | Unless otherwise noted, all the fixes since v1.7.12 in the | |
141 | maintenance track are contained in this release (see release notes | |
142 | to them for details). | |
143 | ||
f65ed83c JH |
144 | * The attribute system may be asked for a path that itself or its |
145 | leading directories no longer exists in the working tree, and it is | |
146 | fine if we cannot open .gitattribute file in such a case. Failure | |
147 | to open per-directory .gitattributes with error status other than | |
148 | ENOENT and ENOTDIR should be diagnosed, but it wasn't. | |
149 | ||
150 | * When looking for $HOME/.gitconfig etc., it is OK if we cannot read | |
151 | them because they do not exist, but we did not diagnose existing | |
152 | files that we cannot read. | |
153 | ||
652398a8 JH |
154 | * When "git am" is fed an input that has multiple "Content-type: ..." |
155 | header, it did not grok charset= attribute correctly. | |
652398a8 | 156 | |
4c6c949c JH |
157 | * "git am" mishandled a patch attached as application/octet-stream |
158 | (e.g. not text/*); Content-Transfer-Encoding (e.g. base64) was not | |
159 | honored correctly. | |
f84667de | 160 | |
5976753e JH |
161 | * "git blame MAKEFILE" run in a history that has "Makefile" but not |
162 | "MAKEFILE" should say "No such file MAKEFILE in HEAD", but got | |
163 | confused on a case insensitive filesystem and failed to do so. | |
5976753e JH |
164 | |
165 | * Even during a conflicted merge, "git blame $path" always meant to | |
166 | blame uncommitted changes to the "working tree" version; make it | |
167 | more useful by showing cleanly merged parts as coming from the other | |
168 | branch that is being merged. | |
f65ed83c | 169 | |
b0ec16b4 JH |
170 | * It was unclear in the documentation for "git blame" that it is |
171 | unnecessary for users to use the "--follow" option. | |
b0ec16b4 | 172 | |
f65ed83c JH |
173 | * Output from "git branch -v" contains "(no branch)" that could be |
174 | localized, but the code to align it along with the names of | |
d117dd20 | 175 | branches was counting in bytes, not in display columns. |
f65ed83c JH |
176 | |
177 | * "git cherry-pick A C B" used to replay changes in A and then B and | |
178 | then C if these three commits had committer timestamps in that | |
179 | order, which is not what the user who said "A C B" naturally | |
180 | expects. | |
5976753e | 181 | |
b0ec16b4 JH |
182 | * A repository created with "git clone --single" had its fetch |
183 | refspecs set up just like a clone without "--single", leading the | |
184 | subsequent "git fetch" to slurp all the other branches, defeating | |
185 | the whole point of specifying "only this branch". | |
b0ec16b4 | 186 | |
5976753e JH |
187 | * Documentation talked about "first line of commit log" when it meant |
188 | the title of the commit. The description was clarified by defining | |
189 | how the title is decided and rewording the casual mention of "first | |
190 | line" to "title". | |
5976753e | 191 | |
f65ed83c JH |
192 | * "git cvsimport" did not thoroughly cleanse tag names that it |
193 | inferred from the names of the tags it obtained from CVS, which | |
194 | caused "git tag" to barf and stop the import in the middle. | |
5976753e JH |
195 | |
196 | * Earlier we made the diffstat summary line that shows the number of | |
197 | lines added/deleted localizable, but it was found irritating having | |
198 | to see them in various languages on a list whose discussion language | |
d117dd20 | 199 | is English, and this change has been reverted. |
5976753e | 200 | |
1084f3b8 JH |
201 | * "git fetch --all", when passed "--no-tags", did not honor the |
202 | "--no-tags" option while fetching from individual remotes (the same | |
d117dd20 | 203 | issue existed with "--tags", but the combination "--all --tags" makes |
1084f3b8 | 204 | much less sense than "--all --no-tags"). |
1084f3b8 | 205 | |
f65ed83c JH |
206 | * "git fetch" over http had an old workaround for an unlikely server |
207 | misconfiguration; it turns out that this hurts debuggability of the | |
208 | configuration in general, and has been reverted. | |
f65ed83c JH |
209 | |
210 | * "git fetch" over http advertised that it supports "deflate", which | |
d117dd20 | 211 | is much less common, and did not advertise the more common "gzip" on |
f65ed83c | 212 | its Accept-Encoding header. |
6b149cee | 213 | |
4a182f61 JH |
214 | * "git fetch" over the dumb-http revision walker could segfault when |
215 | curl's multi interface was used. | |
4a182f61 | 216 | |
f84667de JH |
217 | * "git gc --auto" notified the user that auto-packing has triggered |
218 | even under the "--quiet" option. | |
219 | ||
6b149cee | 220 | * After "gitk" showed the contents of a tag, neither "Reread |
d117dd20 MG |
221 | references" nor "Reload" updated what is shown as the |
222 | contents of it when the user overwrote the tag with "git tag -f". | |
6b149cee | 223 | |
f65ed83c JH |
224 | * "git log --all-match --grep=A --grep=B" ought to show commits that |
225 | mention both A and B, but when these three options are used with | |
226 | --author or --committer, it showed commits that mention either A or | |
227 | B (or both) instead. | |
682ce8bb | 228 | |
87a5461f JH |
229 | * The "-Xours" backend option to "git merge -s recursive" was ignored |
230 | for binary files. | |
231 | ||
0ce98644 JH |
232 | * "git p4", when "--use-client-spec" and "--detect-branches" are used |
233 | together, misdetected branches. | |
0ce98644 | 234 | |
b0ec16b4 JH |
235 | * "git receive-pack" (the counterpart to "git push") did not give |
236 | progress output while processing objects it received to the puser | |
237 | when run over the smart-http protocol. | |
b0ec16b4 | 238 | |
f65ed83c | 239 | * When you misspell the command name you give to the "exec" action in |
d117dd20 | 240 | the "git rebase -i" instruction sheet you were told that 'rebase' is not a |
f65ed83c | 241 | git subcommand from "git rebase --continue". |
0ce98644 | 242 | |
f65ed83c JH |
243 | * The subcommand in "git remote" to remove a defined remote was |
244 | "rm" and the command did not take a fully-spelled "remove". | |
0ce98644 | 245 | |
d117dd20 | 246 | * The interactive prompt that "git send-email" gives was error prone. It |
a2e78c2d JH |
247 | asked "What e-mail address do you want to use?" with the address it |
248 | guessed (correctly) the user would want to use in its prompt, | |
249 | tempting the user to say "y". But the response was taken as "No, | |
250 | please use 'y' as the e-mail address instead", which is most | |
251 | certainly not what the user meant. | |
f65ed83c | 252 | |
d117dd20 MG |
253 | * "git show --format='%ci'" did not give the timestamp correctly for |
254 | commits created without human readable name on the "committer" line. | |
f65ed83c JH |
255 | |
256 | * "git show --quiet" ought to be a synonym for "git show -s", but | |
257 | wasn't. | |
258 | ||
259 | * "git submodule frotz" was not diagnosed as "frotz" being an unknown | |
260 | subcommand to "git submodule"; the user instead got a complaint | |
261 | that "git submodule status" was run with an unknown path "frotz". | |
b0ec16b4 JH |
262 | |
263 | * "git status" honored the ignore=dirty settings in .gitmodules but | |
264 | "git commit" didn't. | |
4a182f61 JH |
265 | |
266 | * "gitweb" did not give the correct committer timezone in its feed | |
267 | output due to a typo. |