Junio C Hamano | 401939f | 2007-07-01 06:34:30 | [diff] [blame] | 1 | GIT v1.5.3 Release Notes |
Junio C Hamano | 38b693c | 2007-06-03 08:40:14 | [diff] [blame] | 2 | ======================== |
| 3 | |
| 4 | Updates since v1.5.2 |
| 5 | -------------------- |
| 6 | |
Junio C Hamano | bb0f404 | 2007-07-04 06:41:40 | [diff] [blame] | 7 | * The commit walkers other than http are officially deprecated, |
| 8 | but still supported for now. |
Junio C Hamano | 38b693c | 2007-06-03 08:40:14 | [diff] [blame] | 9 | |
Junio C Hamano | bb0f404 | 2007-07-04 06:41:40 | [diff] [blame] | 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. |
Junio C Hamano | 38b693c | 2007-06-03 08:40:14 | [diff] [blame] | 14 | |
Junio C Hamano | 401939f | 2007-07-01 06:34:30 | [diff] [blame] | 15 | * For people who need to import from Perforce, a front-end for |
Junio C Hamano | bb0f404 | 2007-07-04 06:41:40 | [diff] [blame] | 16 | fast-import is in contrib/fast-import/. |
Junio C Hamano | 401939f | 2007-07-01 06:34:30 | [diff] [blame] | 17 | |
| 18 | * Comes with git-gui 0.8.0. |
| 19 | |
| 20 | * Comes with updated gitk. |
| 21 | |
Junio C Hamano | 38b693c | 2007-06-03 08:40:14 | [diff] [blame] | 22 | * New commands and options. |
| 23 | |
Junio C Hamano | 235d53f | 2007-07-13 00:25:15 | [diff] [blame^] | 24 | - The hunk header output from "git diff" family can be customized |
| 25 | with the attributes mechanism. See gitattributes(5) for details. |
| 26 | |
Junio C Hamano | bb0f404 | 2007-07-04 06:41:40 | [diff] [blame] | 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 |
Junio C Hamano | 401939f | 2007-07-01 06:34:30 | [diff] [blame] | 41 | renaming history of a single file. |
| 42 | |
Junio C Hamano | bb0f404 | 2007-07-04 06:41:40 | [diff] [blame] | 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. |
Junio C Hamano | 401939f | 2007-07-01 06:34:30 | [diff] [blame] | 46 | |
| 47 | - "git-cvsserver" learned new options (--base-path, --export-all, |
| 48 | --strict-paths) inspired by git-daemon. |
| 49 | |
Junio C Hamano | 38b693c | 2007-06-03 08:40:14 | [diff] [blame] | 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 | |
Junio C Hamano | 401939f | 2007-07-01 06:34:30 | [diff] [blame] | 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 | |
Junio C Hamano | bb0f404 | 2007-07-04 06:41:40 | [diff] [blame] | 81 | - "git format-patch" learned format.subjectprefix configuration |
| 82 | variable, which serves the same purpose as "--subject-prefix" |
| 83 | option. |
| 84 | |
Junio C Hamano | 401939f | 2007-07-01 06:34:30 | [diff] [blame] | 85 | - "git tag -n -l" shows tag annotations while listing tags. |
| 86 | |
| 87 | - "git cvsimport" can optionally use the separate-remote layout. |
| 88 | |
Junio C Hamano | bb0f404 | 2007-07-04 06:41:40 | [diff] [blame] | 89 | - "git blame" can be told to see through commits that change |
Junio C Hamano | 401939f | 2007-07-01 06:34:30 | [diff] [blame] | 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 | |
Junio C Hamano | bb0f404 | 2007-07-04 06:41:40 | [diff] [blame] | 98 | - "git init -q" makes the command quieter. |
| 99 | |
Junio C Hamano | 38b693c | 2007-06-03 08:40:14 | [diff] [blame] | 100 | * Updated behavior of existing commands. |
| 101 | |
Junio C Hamano | bb0f404 | 2007-07-04 06:41:40 | [diff] [blame] | 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 | |
Junio C Hamano | 401939f | 2007-07-01 06:34:30 | [diff] [blame] | 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 | |
Junio C Hamano | bb0f404 | 2007-07-04 06:41:40 | [diff] [blame] | 121 | - "git cvsimport" creates lightweight tags; there is no |
Junio C Hamano | 401939f | 2007-07-01 06:34:30 | [diff] [blame] | 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 |
Junio C Hamano | 38b693c | 2007-06-03 08:40:14 | [diff] [blame] | 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 | |
Junio C Hamano | bb0f404 | 2007-07-04 06:41:40 | [diff] [blame] | 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. |
Junio C Hamano | 38b693c | 2007-06-03 08:40:14 | [diff] [blame] | 139 | |
Junio C Hamano | 401939f | 2007-07-01 06:34:30 | [diff] [blame] | 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. |
Junio C Hamano | 38b693c | 2007-06-03 08:40:14 | [diff] [blame] | 150 | |
| 151 | - "git-mailsplit" (hence "git-am") can read from Maildir |
| 152 | formatted mailboxes. |
| 153 | |
Junio C Hamano | 401939f | 2007-07-01 06:34:30 | [diff] [blame] | 154 | - "git-cvsserver" does not barf upon seeing "cvs login" |
Junio C Hamano | 38b693c | 2007-06-03 08:40:14 | [diff] [blame] | 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 | |
Junio C Hamano | bb0f404 | 2007-07-04 06:41:40 | [diff] [blame] | 161 | - "new-workdir" script (in contrib) can now be used with a |
| 162 | bare repository. |
Junio C Hamano | 38b693c | 2007-06-03 08:40:14 | [diff] [blame] | 163 | |
Junio C Hamano | 401939f | 2007-07-01 06:34:30 | [diff] [blame] | 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". |
Junio C Hamano | 38b693c | 2007-06-03 08:40:14 | [diff] [blame] | 177 | |
| 178 | * Builds |
| 179 | |
Junio C Hamano | 401939f | 2007-07-01 06:34:30 | [diff] [blame] | 180 | - old-style function definitions (most notably, a function |
| 181 | without parameter defined with "func()", not "func(void)") |
| 182 | have been eradicated. |
Junio C Hamano | 38b693c | 2007-06-03 08:40:14 | [diff] [blame] | 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 | |
Junio C Hamano | 235d53f | 2007-07-13 00:25:15 | [diff] [blame^] | 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 | |
Junio C Hamano | 38b693c | 2007-06-03 08:40:14 | [diff] [blame] | 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 | |
Junio C Hamano | 401939f | 2007-07-01 06:34:30 | [diff] [blame] | 204 | - verifying pack contents done by "git fsck --full" got boost |
| 205 | by carefully choosing the order to verify objects in them. |
| 206 | |
| 207 | |
Junio C Hamano | 38b693c | 2007-06-03 08:40:14 | [diff] [blame] | 208 | Fixes since v1.5.2 |
| 209 | ------------------ |
| 210 | |
| 211 | All of the fixes in v1.5.2 maintenance series are included in |
| 212 | this release, unless otherwise noted. |
| 213 | |
| 214 | * Bugfixes |
| 215 | |
Junio C Hamano | 401939f | 2007-07-01 06:34:30 | [diff] [blame] | 216 | - "gitweb" had trouble handling non UTF-8 text with older |
| 217 | Encode.pm Perl module. |
Junio C Hamano | 38b693c | 2007-06-03 08:40:14 | [diff] [blame] | 218 | |
| 219 | -- |
| 220 | exec >/var/tmp/1 |
Junio C Hamano | 235d53f | 2007-07-13 00:25:15 | [diff] [blame^] | 221 | O=v1.5.3-rc1 |
Junio C Hamano | 38b693c | 2007-06-03 08:40:14 | [diff] [blame] | 222 | echo O=`git describe refs/heads/master` |
| 223 | git shortlog --no-merges $O..refs/heads/master ^refs/heads/maint |