1GIT v1.5.3 Release Notes 2======================== 3 4Updates since v1.5.2 5-------------------- 6 7* The commit walkers other than http are officially deprecated, 8 but still supported for now. 9 10* The submodule support has Porcelain layer. 11 12* There are a handful pack-objects changes to help you cope better 13 with repositories with pathologically large blobs in them. 14 15* For people who need to import from Perforce, a front-end for 16 fast-import is in contrib/fast-import/. 17 18* Comes with git-gui 0.8.0. 19 20* Comes with updated gitk. 21 22* New commands and options. 23 24 - The hunk header output from "git diff" family can be customized 25 with the attributes mechanism. See gitattributes(5) for details. 26 27 - "git stash" allows you to quickly save away your work in 28 progress and replay it later on an updated state. 29 30 - "git rebase" learned an "interactive" mode that let you 31 pick and reorder which commits to rebuild. 32 33 - "git fsck" can save its findings in $GIT_DIR/lost-found, 34 without a separate invocation of "git lost-found" command. 35 36 - $GIT_WORK_TREE environment variable can be used together with 37 $GIT_DIR to work in a subdirectory of a working tree that is 38 not located at "$GIT_DIR/..". 39 40 - "git log" learned a new option "--follow", to follow 41 renaming history of a single file. 42 43 - "git-filter-branch" lets you rewrite the revision history of 44 the current branch, creating a new branch. You can specify a 45 number of filters to modify the commits, files and trees. 46 47 - "git-cvsserver" learned new options (--base-path, --export-all, 48 --strict-paths) inspired by git-daemon. 49 50 - "git-submodule" command helps you manage the projects from 51 the superproject that contain them. 52 53 - In addition to core.compression configuration option, 54 core.loosecompression and pack.compression options can 55 independently tweak zlib compression levels used for loose 56 and packed objects. 57 58 - "git-ls-tree -l" shows size of blobs pointed at by the 59 tree entries, similar to "/bin/ls -l". 60 61 - "git-rev-list" learned --regexp-ignore-case and 62 --extended-regexp options to tweak its matching logic used 63 for --grep fitering. 64 65 - "git-describe --contains" is a handier way to call more 66 obscure command "git-name-rev --tags". 67 68 - "git gc --aggressive" tells the command to spend more cycles 69 to optimize the repository harder. 70 71 - "git repack" can be told to split resulting packs to avoid 72 exceeding limit specified with "--max-pack-size". 73 74 - "git fsck" gained --verbose option. This is really really 75 verbose but it might help you identify exact commit that is 76 corrupt in your repository. 77 78 - "git format-patch" learned --numbered-files option. This 79 may be useful for MH users. 80 81 - "git format-patch" learned format.subjectprefix configuration 82 variable, which serves the same purpose as "--subject-prefix" 83 option. 84 85 - "git tag -n -l" shows tag annotations while listing tags. 86 87 - "git cvsimport" can optionally use the separate-remote layout. 88 89 - "git blame" can be told to see through commits that change 90 whitespaces and indentation levels with "-w" option. 91 92 - "git send-email" can be told not to thread the messages when 93 sending out more than one patches. 94 95 - "git config" learned NUL terminated output format via -z to 96 help scripts. 97 98 - "git init -q" makes the command quieter. 99 100* Updated behavior of existing commands. 101 102 - "git svn dcommit" retains local merge information. 103 104 - "git config" to set values also honors type flags like --bool 105 and --int. 106 107 - core.quotepath configuration can be used to make textual git 108 output to emit most of the characters in the path literally. 109 110 - "git mergetool" chooses its backend more wisely, taking 111 notice of its environment such as use of X, Gnome/KDE, etc. 112 113 - "gitweb" shows merge commits a lot nicer than before. The 114 default view uses more compact --cc format, while the UI 115 allows to choose normal diff with any parent. 116 117 - snapshot files "gitweb" creates from a repository at 118 $path/$project/.git are more useful. We use $project part 119 in the filename, which we used to discard. 120 121 - "git cvsimport" creates lightweight tags; there is no 122 interesting information we can record in an annotated tag, 123 and the handcrafted ones the old code created was not 124 properly formed anyway. 125 126 - "git-push" pretends that you immediately fetched back from 127 the remote by updating corresponding remote tracking 128 branches if you have any. 129 130 - The diffstat given after a merge (or a pull) honors the 131 color.diff configuration. 132 133 - "git-apply --whitespace=strip" removes blank lines added at 134 the end of the file. 135 136 - "git-fetch" over git native protocols with "-v" option shows 137 connection status, and the IP address of the other end, to 138 help diagnosing problems. 139 140 - We used to have core.legacyheaders configuration, when 141 set to false, allowed git to write loose objects in a format 142 that mimicks the format used by objects stored in packs. It 143 turns out that this was not so useful. Although we will 144 continue to read objects written in that format, we do not 145 honor that configuration anymore and create loose objects in 146 the legacy/traditional format. 147 148 - "--find-copies-harder" option to diff family can now be 149 spelled as "-C -C" for brevity. 150 151 - "git-mailsplit" (hence "git-am") can read from Maildir 152 formatted mailboxes. 153 154 - "git-cvsserver" does not barf upon seeing "cvs login" 155 request. 156 157 - "pack-objects" honors "delta" attribute set in 158 .gitattributes. It does not attempt to deltify blobs that 159 come from paths with delta attribute set to false. 160 161 - "new-workdir" script (in contrib) can now be used with a 162 bare repository. 163 164 - "git-mergetool" learned to use gvimdiff. 165 166 - "gitview" (in contrib) has a better blame interface. 167 168 - "git log" and friends did not handle a commit log message 169 that is larger than 16kB; they do now. 170 171 - "--pretty=oneline" output format for "git log" and friends 172 deals with "malformed" commit log messages that have more 173 than one lines in the first paragraph better. We used to 174 show the first line, cutting the title at mid-sentence; we 175 concatenate them into a single line and treat the result as 176 "oneline". 177 178* Builds 179 180 - old-style function definitions (most notably, a function 181 without parameter defined with "func()", not "func(void)") 182 have been eradicated. 183 184* Performance Tweaks 185 186 - git-pack-objects avoids re-deltification cost by caching 187 small enough delta results it creates while looking for the 188 best delta candidates. 189 190 - git-pack-objects learned a new heuristcs to prefer delta 191 that is shallower in depth over the smallest delta 192 possible. This improves both overall packfile access 193 performance and packfile density. 194 195 - diff-delta code that is used for packing has been improved 196 to work better on big files. 197 198 - when there are more than one pack files in the repository, 199 the runtime used to try finding an object always from the 200 newest packfile; it now tries the same packfile as we found 201 the object requested the last time, which exploits the 202 locality of references. 203 204 - verifying pack contents done by "git fsck --full" got boost 205 by carefully choosing the order to verify objects in them. 206 207 208Fixes since v1.5.2 209------------------ 210 211All of the fixes in v1.5.2 maintenance series are included in 212this release, unless otherwise noted. 213 214* Bugfixes 215 216 - "gitweb" had trouble handling non UTF-8 text with older 217 Encode.pm Perl module. 218 219-- 220exec >/var/tmp/1 221O=v1.5.3-rc1 222echo O=`git describe refs/heads/master` 223git shortlog --no-merges $O..refs/heads/master ^refs/heads/maint