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