]>
Commit | Line | Data |
---|---|---|
1e61b764 JH |
1 | GIT v1.5.4 Release Notes |
2 | ======================== | |
3 | ||
1c46ab1f JH |
4 | Removal |
5 | ------- | |
6 | ||
afc67036 JH |
7 | * "git svnimport" was removed in favor of "git svn". It is still there |
8 | in the source tree (contrib/examples) but unsupported. | |
1c46ab1f | 9 | |
7680087e JH |
10 | * As git-commit and git-status have been rewritten, "git runstatus" |
11 | helper script lost all its users and has been removed. | |
12 | ||
4f5f998f | 13 | |
bf5aeb15 | 14 | Temporarily disabled |
4f5f998f JH |
15 | -------------------- |
16 | ||
17 | * "git http-push" is known not to work well with cURL library older | |
18 | than 7.16, and we had reports of repository corruption. It is | |
19 | disabled on such platforms for now. Unfortunately, 1.5.3.8 shares | |
20 | the same issue. In other words, this does not mean you will be | |
21 | fine if you stick to an older git release. For now, please do not | |
22 | use http-push from older git with cURL older than 7.16 if you | |
23 | value your data. A proper fix will hopefully materialize in | |
24 | later versions. | |
ce33288e | 25 | |
1c46ab1f | 26 | |
2221a675 JH |
27 | Deprecation notices |
28 | ------------------- | |
29 | ||
bf5aeb15 JH |
30 | * From v1.6.0, git will by default install dashed form of commands |
31 | (e.g. "git-commit") outside of users' normal $PATH, and will install | |
32 | only selected commands ("git" itself, and "gitk") in $PATH. This | |
33 | implies: | |
2221a675 | 34 | |
6a7f14c4 | 35 | - Using dashed forms of git commands (e.g. "git-commit") from the |
2221a675 JH |
36 | command line has been informally deprecated since early 2006, but |
37 | now it officially is, and will be removed in the future. Use | |
c3c13529 | 38 | dash-less forms (e.g. "git commit") instead. |
2221a675 | 39 | |
6a7f14c4 | 40 | - Using dashed forms from your scripts, without first prepending the |
2221a675 JH |
41 | return value from "git --exec-path" to the scripts' PATH, has been |
42 | informally deprecated since early 2006, but now it officially is. | |
43 | ||
6a7f14c4 | 44 | - Use of dashed forms with "PATH=$(git --exec-path):$PATH; export |
2221a675 JH |
45 | PATH" early in your script is not deprecated with this change. |
46 | ||
bf5aeb15 JH |
47 | Users are strongly encouraged to adjust their habits and scripts now |
48 | to prepare for this change. | |
2221a675 JH |
49 | |
50 | * The post-receive hook was introduced in March 2007 to supersede | |
6a7f14c4 | 51 | the post-update hook, primarily to overcome the command line length |
2221a675 | 52 | limitation of the latter. Use of post-update hook will be deprecated |
74f6b03c | 53 | in future versions of git, starting from v1.6.0. |
2221a675 | 54 | |
1c46ab1f JH |
55 | * "git lost-found" was deprecated in favor of "git fsck"'s --lost-found |
56 | option, and will be removed in the future. | |
57 | ||
58 | * "git peek-remote" is deprecated, as "git ls-remote" was written in C | |
6a7f14c4 JK |
59 | and works for all transports; "git peek-remote" will be removed in |
60 | the future. | |
1c46ab1f | 61 | |
5c66d0d4 JH |
62 | * "git repo-config" which was an old name for "git config" command |
63 | has been supported without being advertised for a long time. The | |
64 | next feature release will remove it. | |
65 | ||
74f6b03c | 66 | * From v1.6.0, the repack.usedeltabaseoffset config option will default |
6a7f14c4 | 67 | to true, which will give denser packfiles (i.e. more efficient storage). |
792c1583 NP |
68 | The downside is that git older than version 1.4.4 will not be able |
69 | to directly use a repository packed using this setting. | |
70 | ||
74f6b03c | 71 | * From v1.6.0, the pack.indexversion config option will default to 2, |
792c1583 NP |
72 | which is slightly more efficient, and makes repacking more immune to |
73 | data corruptions. Git older than version 1.5.2 may revert to version 1 | |
74 | of the pack index with a manual "git index-pack" to be able to directly | |
75 | access corresponding pack files. | |
76 | ||
2221a675 | 77 | |
1e61b764 JH |
78 | Updates since v1.5.3 |
79 | -------------------- | |
80 | ||
145d0824 | 81 | * Comes with much improved gitk, with i18n. |
79f3368d | 82 | |
bf5aeb15 | 83 | * Comes with git-gui 0.9.2 with i18n. |
afc67036 JH |
84 | |
85 | * gitk is now merged as a subdirectory of git.git project, in | |
86 | preparation for its i18n. | |
92b7ba16 | 87 | |
6a7f14c4 | 88 | * progress displays from many commands are a lot nicer to the eye. |
1c46ab1f | 89 | Transfer commands show throughput data. |
92b7ba16 | 90 | |
1c46ab1f JH |
91 | * many commands that pay attention to per-directory .gitignore now do |
92 | so lazily, which makes the usual case go much faster. | |
92b7ba16 | 93 | |
1c46ab1f JH |
94 | * Output processing for '--pretty=format:<user format>' has been |
95 | optimized. | |
2221a675 | 96 | |
6a7f14c4 | 97 | * Rename detection of diff family while detecting exact matches has |
1c46ab1f | 98 | been greatly optimized. |
c238dad4 | 99 | |
6a7f14c4 JK |
100 | * Rename detection of diff family tries to make more natural looking |
101 | pairing. Earlier, if multiple identical rename sources were | |
102 | found in the preimage, the source used was picked pretty much at random. | |
2221a675 | 103 | |
afc67036 JH |
104 | * Value "true" for color.diff and color.status configuration used to |
105 | mean "always" (even when the output is not going to a terminal). | |
106 | This has been corrected to mean the same thing as "auto". | |
107 | ||
74f6b03c JH |
108 | * "git diff" Porcelain now respects diff.external configuration, which |
109 | is another way to specify GIT_EXTERNAL_DIFF. | |
110 | ||
bbff2dce JH |
111 | * "git diff" can be told to use different prefixes other than |
112 | "a/" and "b/" e.g. "git diff --src-prefix=l/ --dst-prefix=k/". | |
113 | ||
114 | * "git diff" sometimes did not quote paths with funny | |
115 | characters properly. | |
116 | ||
117 | * "git log" (and any revision traversal commands) misbehaved | |
118 | when --diff-filter is given but was not asked to actually | |
119 | produce diff. | |
120 | ||
afc67036 JH |
121 | * HTTP proxy can be specified per remote repository using |
122 | remote.*.httpproxy configuration, or global http.proxy configuration | |
123 | variable. | |
124 | ||
125 | * Various Perforce importer updates. | |
126 | ||
127 | * Example update and post-receive hooks have been improved. | |
128 | ||
129 | * Any command that wants to take a commit object name can now use | |
130 | ":/string" syntax to name a commit. | |
131 | ||
1c46ab1f | 132 | * "git reset" is now built-in and its output can be squelched with -q. |
1e61b764 | 133 | |
d6da3cde JH |
134 | * "git reset --hard" does not make any sense in a bare |
135 | repository, but did not error out; fixed. | |
136 | ||
1c46ab1f | 137 | * "git send-email" can optionally talk over ssmtp and use SMTP-AUTH. |
bc12651b | 138 | |
1c46ab1f | 139 | * "git rebase" learned --whitespace option. |
bc12651b | 140 | |
1c46ab1f JH |
141 | * In "git rebase", when you decide not to replay a particular change |
142 | after the command stopped with a conflict, you can say "git rebase | |
92b7ba16 | 143 | --skip" without first running "git reset --hard", as the command now |
e0fda6ab | 144 | runs it for you. |
92b7ba16 | 145 | |
afc67036 JH |
146 | * "git rebase --interactive" mode can now work on detached HEAD. |
147 | ||
6a7f14c4 | 148 | * Other minor to serious bugs in "git rebase -i" have been fixed. |
74f6b03c | 149 | |
afc67036 JH |
150 | * "git rebase" now detaches head during its operation, so after a |
151 | successful "git rebase" operation, the reflog entry branch@{1} for | |
152 | the current branch points at the commit before the rebase was | |
153 | started. | |
154 | ||
155 | * "git rebase -i" also triggers rerere to help your repeated merges. | |
156 | ||
1c46ab1f | 157 | * "git merge" can call the "post-merge" hook. |
bc12651b | 158 | |
1c46ab1f JH |
159 | * "git pack-objects" can optionally run deltification with multiple |
160 | threads. | |
bc12651b | 161 | |
1c46ab1f | 162 | * "git archive" can optionally substitute keywords in files marked with |
bc12651b JH |
163 | export-subst attribute. |
164 | ||
1c46ab1f JH |
165 | * "git cherry-pick" made a misguided attempt to repeat the original |
166 | command line in the generated log message, when told to cherry-pick a | |
167 | commit by naming a tag that points at it. It does not anymore. | |
79f3368d | 168 | |
c3c13529 | 169 | * "git for-each-ref" learned %(xxxdate:<date-format>) syntax to show the |
1c46ab1f | 170 | various date fields in different formats. |
79f3368d | 171 | |
1c46ab1f JH |
172 | * "git gc --auto" is a low-impact way to automatically run a variant of |
173 | "git repack" that does not lose unreferenced objects (read: safer | |
174 | than the usual one) after the user accumulates too many loose | |
175 | objects. | |
dee1b1ea | 176 | |
afc67036 JH |
177 | * "git clean" has been rewritten in C. |
178 | ||
1c46ab1f JH |
179 | * You need to explicitly set clean.requireForce to "false" to allow |
180 | "git clean" without -f to do any damage (lack of the configuration | |
181 | variable used to mean "do not require -f option to lose untracked | |
182 | files", but we now use the safer default). | |
92b7ba16 | 183 | |
591aa253 JH |
184 | * The kinds of whitespace errors "git diff" and "git apply" notice (and |
185 | fix) can be controlled via 'core.whitespace' configuration variable | |
186 | and 'whitespace' attribute in .gitattributes file. | |
187 | ||
1c46ab1f JH |
188 | * "git push" learned --dry-run option to show what would happen if a |
189 | push is run. | |
79f3368d | 190 | |
1c46ab1f | 191 | * "git push" does not update a tracking ref on the local side when the |
92b7ba16 JH |
192 | remote refused to update the corresponding ref. |
193 | ||
1c46ab1f | 194 | * "git push" learned --mirror option. This is to push the local refs |
92b7ba16 JH |
195 | one-to-one to the remote, and deletes refs from the remote that do |
196 | not exist anymore in the repository on the pushing side. | |
197 | ||
afc67036 JH |
198 | * "git push" can remove a corrupt ref at the remote site with the usual |
199 | ":ref" refspec. | |
200 | ||
1c46ab1f JH |
201 | * "git remote" knows --mirror mode. This is to set up configuration to |
202 | push into a remote repository to store local branch heads to the same | |
203 | branch on the remote side, and remove branch heads locally removed | |
204 | from local repository at the same time. Suitable for pushing into a | |
205 | back-up repository. | |
206 | ||
207 | * "git remote" learned "rm" subcommand. | |
79f3368d | 208 | |
cdd85915 JS |
209 | * "git cvsserver" can be run via "git shell". Also, "cvs" is |
210 | recognized as a synonym for "git cvsserver", so that CVS users | |
211 | can be switched to git just by changing their login shell. | |
79f3368d | 212 | |
9758ecde JH |
213 | * "git cvsserver" acts more like receive-pack by running post-receive |
214 | and post-update hooks. | |
215 | ||
1c46ab1f | 216 | * "git am" and "git rebase" are far less verbose. |
79f3368d | 217 | |
1c46ab1f JH |
218 | * "git pull" learned to pass --[no-]ff option to underlying "git |
219 | merge". | |
79f3368d | 220 | |
afc67036 JH |
221 | * "git pull --rebase" is a different way to integrate what you fetched |
222 | into your current branch. | |
223 | ||
c3c13529 | 224 | * "git fast-export" produces data-stream that can be fed to fast-import |
afc67036 JH |
225 | to reproduce the history recorded in a git repository. |
226 | ||
9758ecde JH |
227 | * "git add -i" takes pathspecs to limit the set of files to work on. |
228 | ||
229 | * "git add -p" is a short-hand to go directly to the selective patch | |
230 | subcommand in the interactive command loop and to exit when done. | |
231 | ||
b2e62a7d JH |
232 | * "git add -i" UI has been colorized. The interactive prompt |
233 | and menu can be colored by setting color.interactive | |
234 | configuration. The diff output (including the hunk picker) | |
235 | are colored with color.diff configuration. | |
9758ecde | 236 | |
afc67036 JH |
237 | * "git commit --allow-empty" allows you to create a single-parent |
238 | commit that records the same tree as its parent, overriding the usual | |
239 | safety valve. | |
240 | ||
241 | * "git commit --amend" can amend a merge that does not change the tree | |
242 | from its first parent. | |
243 | ||
bbff2dce | 244 | * "git commit" used to unconditionally strip comment lines that |
bf5aeb15 JH |
245 | began with '#' and removed excess blank lines. This behavior has |
246 | been made configurable. | |
bbff2dce | 247 | |
9758ecde JH |
248 | * "git commit" has been rewritten in C. |
249 | ||
afc67036 JH |
250 | * "git stash random-text" does not create a new stash anymore. It was |
251 | a UI mistake. Use "git stash save random-text", or "git stash" | |
252 | (without extra args) for that. | |
253 | ||
b2e62a7d JH |
254 | * "git stash clear extra-text" does not clear the whole stash |
255 | anymore. It is tempting to expect "git stash clear stash@{2}" | |
256 | to drop only a single named stash entry, and it is rude to | |
257 | discard everything when that is asked (but not provided). | |
258 | ||
afc67036 JH |
259 | * "git prune --expire <time>" can exempt young loose objects from |
260 | getting pruned. | |
261 | ||
262 | * "git branch --contains <commit>" can list branches that are | |
263 | descendants of a given commit. | |
1e61b764 | 264 | |
1c46ab1f JH |
265 | * "git log" learned --early-output option to help interactive GUI |
266 | implementations. | |
ea559605 | 267 | |
1c46ab1f | 268 | * "git bisect" learned "skip" action to mark untestable commits. |
c238dad4 | 269 | |
591aa253 JH |
270 | * "git bisect visualize" learned a shorter synonym "git bisect view". |
271 | ||
272 | * "git bisect visualize" runs "git log" in a non-windowed | |
273 | environments. It also can be told what command to run (e.g. "git | |
274 | bisect visualize tig"). | |
275 | ||
1c46ab1f JH |
276 | * "git format-patch" learned "format.numbered" configuration variable |
277 | to automatically turn --numbered option on when more than one commits | |
278 | are formatted. | |
c238dad4 | 279 | |
1c46ab1f JH |
280 | * "git ls-files" learned "--exclude-standard" to use the canned set of |
281 | exclude files. | |
dee1b1ea | 282 | |
1c46ab1f JH |
283 | * "git tag -a -f existing" begins the editor session using the existing |
284 | annotation message. | |
dee1b1ea | 285 | |
1c46ab1f JH |
286 | * "git tag -m one -m bar" (multiple -m options) behaves similarly to |
287 | "git commit"; the parameters to -m options are formatted as separate | |
288 | paragraphs. | |
dee1b1ea | 289 | |
74f6b03c JH |
290 | * The format "git show" outputs an annotated tag has been updated to |
291 | include "Tagger: " and "Date: " lines from the tag itself. Strictly | |
292 | speaking this is a backward incompatible change, but this is a | |
6a7f14c4 | 293 | reasonable usability fix and people's scripts shouldn't have been |
74f6b03c JH |
294 | relying on the exact output from "git show" Porcelain anyway. |
295 | ||
bbff2dce JH |
296 | * "git cvsimport" did not notice errors from underlying "cvsps" |
297 | and produced a corrupt import silently. | |
298 | ||
1c46ab1f JH |
299 | * "git cvsexportcommit" learned -w option to specify and switch to the |
300 | CVS working directory. | |
dee1b1ea | 301 | |
1c46ab1f JH |
302 | * "git checkout" from a subdirectory learned to use "../path" to allow |
303 | checking out a path outside the current directory without cd'ing up. | |
ea559605 | 304 | |
591aa253 JH |
305 | * "git checkout" from and to detached HEAD leaves a bit more |
306 | information in the reflog. | |
307 | ||
1c46ab1f | 308 | * "git send-email --dry-run" shows full headers for easier diagnosis. |
92b7ba16 | 309 | |
1c46ab1f | 310 | * "git merge-ours" is now built-in. |
92b7ba16 | 311 | |
2221a675 JH |
312 | * "git svn" learned "info" and "show-externals" subcommands. |
313 | ||
1c46ab1f | 314 | * "git svn" run from a subdirectory failed to read settings from the |
2221a675 JH |
315 | .git/config. |
316 | ||
317 | * "git svn" learned --use-log-author option, which picks up more | |
318 | descriptive name from From: and Signed-off-by: lines in the commit | |
319 | message. | |
92b7ba16 | 320 | |
1e8df762 JH |
321 | * "git svn" wasted way too much disk to record revision mappings |
322 | between svn and git; a new representation that is much more compact | |
323 | for this information has been introduced to correct this. | |
324 | ||
7680087e JH |
325 | * "git svn" left temporary index files it used without cleaning them |
326 | up; this was corrected. | |
327 | ||
591aa253 JH |
328 | * "git status" from a subdirectory now shows relative paths, which |
329 | makes copy-and-pasting for git-checkout/git-add/git-rm easier. The | |
bf5aeb15 | 330 | traditional behavior to show the full path relative to the top of |
591aa253 | 331 | the work tree can be had by setting status.relativepaths |
6a7f14c4 | 332 | configuration variable to false. |
2221a675 | 333 | |
1e8df762 JH |
334 | * "git blame" kept text for each annotated revision in core needlessly; |
335 | this has been corrected. | |
336 | ||
337 | * "git shortlog" learned to default to HEAD when the standard input is | |
338 | a terminal and the user did not give any revision parameter. | |
339 | ||
340 | * "git shortlog" learned "-e" option to show e-mail addresses as well as | |
341 | authors' names. | |
342 | ||
343 | * "git help" learned "-w" option to show documentation in browsers. | |
344 | ||
c3c13529 | 345 | * In addition there are quite a few internal clean-ups. Notably: |
c238dad4 JH |
346 | |
347 | - many fork/exec have been replaced with run-command API, | |
348 | brought from the msysgit effort. | |
349 | ||
350 | - introduction and more use of the option parser API. | |
351 | ||
352 | - enhancement and more use of the strbuf API. | |
353 | ||
bf5aeb15 | 354 | * Makefile tweaks to support HP-UX is in. |
c238dad4 | 355 | |
1e61b764 JH |
356 | Fixes since v1.5.3 |
357 | ------------------ | |
358 | ||
359 | All of the fixes in v1.5.3 maintenance series are included in | |
360 | this release, unless otherwise noted. | |
361 | ||
1c46ab1f JH |
362 | These fixes are only in v1.5.4 and not backported to v1.5.3 maintenance |
363 | series. | |
dee1b1ea | 364 | |
7680087e JH |
365 | * The way "git diff --check" behaves is much more consistent with the way |
366 | "git apply --whitespace=warn" works. | |
367 | ||
c3c13529 | 368 | * "git svn" talking with the SVN over HTTP will correctly quote branch |
1c46ab1f | 369 | and project names. |
ea559605 | 370 | |
9758ecde JH |
371 | * "git config" did not work correctly on platforms that define |
372 | REG_NOMATCH to an even number. | |
373 | ||
b2e62a7d JH |
374 | * Recent versions of AsciiDoc 8 has a change to break our |
375 | documentation; a workaround has been implemented. | |
376 | ||
ce33288e | 377 | * "git diff --color-words" colored context lines in a wrong color. |