Junio C Hamano | 9f0ecaf | 2008-08-18 02:48:07 | [diff] [blame] | 1 | GIT v1.6.1 Release Notes |
| 2 | ======================== |
| 3 | |
| 4 | Updates since v1.6.0 |
| 5 | -------------------- |
| 6 | |
Junio C Hamano | 3580ad2 | 2008-08-21 00:27:40 | [diff] [blame] | 7 | When some commands (e.g. "git log", "git diff") spawn pager internally, we |
| 8 | used to make the pager the parent process of the git command that produces |
| 9 | output. This meant that the exit status of the whole thing comes from the |
| 10 | pager, not the underlying git command. We swapped the order of the |
| 11 | processes around and you will see the exit code from the command from now |
| 12 | on. |
| 13 | |
Junio C Hamano | 9f0ecaf | 2008-08-18 02:48:07 | [diff] [blame] | 14 | (subsystems) |
| 15 | |
Junio C Hamano | f87ade6 | 2008-09-07 06:05:51 | [diff] [blame] | 16 | * gitk can call out to git-gui to view "git blame" output; git-gui in turn |
| 17 | can run gitk from its blame view. |
Junio C Hamano | 9f0ecaf | 2008-08-18 02:48:07 | [diff] [blame] | 18 | |
Junio C Hamano | 1c5ef43 | 2008-10-14 21:33:25 | [diff] [blame] | 19 | * Various git-gui updates including updated translations. |
| 20 | |
| 21 | * Various gitweb updates from repo.or.cz installation. |
| 22 | |
Junio C Hamano | f95312b | 2008-12-01 09:45:49 | [diff] [blame] | 23 | * Updates to emacs bindings. |
| 24 | |
Junio C Hamano | 9f0ecaf | 2008-08-18 02:48:07 | [diff] [blame] | 25 | (portability) |
| 26 | |
Junio C Hamano | 1c5ef43 | 2008-10-14 21:33:25 | [diff] [blame] | 27 | * A few test scripts used nonportable "grep" that did not work well on |
| 28 | some platforms, e.g. Solaris. |
Junio C Hamano | 9f0ecaf | 2008-08-18 02:48:07 | [diff] [blame] | 29 | |
Junio C Hamano | 1c5ef43 | 2008-10-14 21:33:25 | [diff] [blame] | 30 | * Sample pre-auto-gc script has OS X support. |
Junio C Hamano | 9f0ecaf | 2008-08-18 02:48:07 | [diff] [blame] | 31 | |
Junio C Hamano | 2836349 | 2008-11-14 08:26:31 | [diff] [blame] | 32 | * Makefile has support for (ancient) FreeBSD 4.9. |
| 33 | |
Junio C Hamano | 9f0ecaf | 2008-08-18 02:48:07 | [diff] [blame] | 34 | (performance) |
| 35 | |
Junio C Hamano | f95312b | 2008-12-01 09:45:49 | [diff] [blame] | 36 | * Many operations that are lstat(3) heavy can be told to pre-execute |
| 37 | necessary lstat(3) in parallel before their main operations, which |
| 38 | potentially gives much improved performance for cold-cache cases or in |
| 39 | environments with weak metadata caching (e.g. NFS). |
| 40 | |
Junio C Hamano | 3580ad2 | 2008-08-21 00:27:40 | [diff] [blame] | 41 | * The underlying diff machinery to produce textual output has been |
| 42 | optimized, which would result in faster "git blame" processing. |
Junio C Hamano | 9f0ecaf | 2008-08-18 02:48:07 | [diff] [blame] | 43 | |
Junio C Hamano | 3727619 | 2008-09-04 00:24:07 | [diff] [blame] | 44 | * Most of the test scripts (but not the ones that try to run servers) |
| 45 | can be run in parallel. |
| 46 | |
Junio C Hamano | 7cc9129 | 2008-09-20 16:55:38 | [diff] [blame] | 47 | * Bash completion of refnames in a repository with massive number of |
| 48 | refs has been optimized. |
| 49 | |
Junio C Hamano | 1c5ef43 | 2008-10-14 21:33:25 | [diff] [blame] | 50 | * Cygwin port uses native stat/lstat implementations when applicable, |
| 51 | which leads to improved performance. |
| 52 | |
| 53 | * "git push" pays attention to alternate repositories to avoid sending |
| 54 | unnecessary objects. |
| 55 | |
| 56 | * "git svn" can rebuild an out-of-date rev_map file. |
| 57 | |
Junio C Hamano | 9f0ecaf | 2008-08-18 02:48:07 | [diff] [blame] | 58 | (usability, bells and whistles) |
| 59 | |
Junio C Hamano | 7cc9129 | 2008-09-20 16:55:38 | [diff] [blame] | 60 | * When you mistype a command name, git helpfully suggests what it guesses |
| 61 | you might have meant to say. help.autocorrect configuration can be set |
| 62 | to a non-zero value to accept the suggestion when git can uniquely |
| 63 | guess. |
| 64 | |
Junio C Hamano | 610d176 | 2008-11-28 06:27:13 | [diff] [blame] | 65 | * The packfile machinery hopefully is more robust when dealing with |
Junio C Hamano | 2836349 | 2008-11-14 08:26:31 | [diff] [blame] | 66 | corrupt packs if redundant objects involved in the corruption are |
Junio C Hamano | 610d176 | 2008-11-28 06:27:13 | [diff] [blame] | 67 | available elsewhere. |
Junio C Hamano | 2836349 | 2008-11-14 08:26:31 | [diff] [blame] | 68 | |
Junio C Hamano | 1c5ef43 | 2008-10-14 21:33:25 | [diff] [blame] | 69 | * "git add -N path..." adds the named paths as an empty blob, so that |
| 70 | subsequent "git diff" will show a diff as if they are creation events. |
| 71 | |
Junio C Hamano | 922ae28 | 2008-12-06 06:31:58 | [diff] [blame] | 72 | * "git add" gained a built-in synonym for people who want to say "stage |
Junio C Hamano | b402886 | 2008-12-08 02:03:49 | [diff] [blame] | 73 | changes" instead of "add contents to the staging area" which amounts |
Junio C Hamano | 922ae28 | 2008-12-06 06:31:58 | [diff] [blame] | 74 | to the same thing. |
| 75 | |
Junio C Hamano | 1c5ef43 | 2008-10-14 21:33:25 | [diff] [blame] | 76 | * "git apply" learned --include=paths option, similar to the existing |
| 77 | --exclude=paths option. |
| 78 | |
Junio C Hamano | 7cc9129 | 2008-09-20 16:55:38 | [diff] [blame] | 79 | * "git bisect" is careful about a user mistake and suggests testing of |
| 80 | merge base first when good is not a strict ancestor of bad. |
| 81 | |
Junio C Hamano | 922ae28 | 2008-12-06 06:31:58 | [diff] [blame] | 82 | * "git bisect skip" can take a range of commits. |
| 83 | |
Junio C Hamano | aa17c7c | 2008-11-03 04:36:58 | [diff] [blame] | 84 | * "git blame" re-encodes the commit metainfo to UTF-8 from i18n.commitEncoding |
| 85 | by default. |
| 86 | |
Junio C Hamano | f7e47ee | 2008-11-02 18:16:45 | [diff] [blame] | 87 | * "git check-attr --stdin" can check attributes for multiple paths. |
| 88 | |
Junio C Hamano | 3580ad2 | 2008-08-21 00:27:40 | [diff] [blame] | 89 | * "git checkout --track origin/hack" used to be a syntax error. It now |
| 90 | DWIMs to create a corresponding local branch "hack", i.e. acts as if you |
| 91 | said "git checkout --track -b hack origin/hack". |
| 92 | |
Junio C Hamano | 1c5ef43 | 2008-10-14 21:33:25 | [diff] [blame] | 93 | * "git checkout --ours/--theirs" can be used to check out one side of a |
| 94 | conflicting merge during conflict resolution. |
| 95 | |
| 96 | * "git checkout -m" can be used to recreate the initial conflicted state |
| 97 | during conflict resolution. |
| 98 | |
Junio C Hamano | 3727619 | 2008-09-04 00:24:07 | [diff] [blame] | 99 | * "git cherry-pick" can also utilize rerere for conflict resolution. |
| 100 | |
Junio C Hamano | f7e47ee | 2008-11-02 18:16:45 | [diff] [blame] | 101 | * "git clone" learned to be verbose with -v |
| 102 | |
Junio C Hamano | 3727619 | 2008-09-04 00:24:07 | [diff] [blame] | 103 | * "git commit --author=$name" can look up author name from existing |
| 104 | commits. |
| 105 | |
Junio C Hamano | a2deec5 | 2008-10-18 18:58:09 | [diff] [blame] | 106 | * output from "git commit" has been reworded in a more concise and yet |
| 107 | more informative way. |
| 108 | |
Junio C Hamano | 3727619 | 2008-09-04 00:24:07 | [diff] [blame] | 109 | * "git count-objects" reports the on-disk footprint for packfiles and |
| 110 | their corresponding idx files. |
| 111 | |
| 112 | * "git daemon" learned --max-connections=<count> option. |
| 113 | |
Junio C Hamano | f7e47ee | 2008-11-02 18:16:45 | [diff] [blame] | 114 | * "git daemon" exports REMOTE_ADDR to record client address, so that |
| 115 | spawned programs can act differently on it. |
| 116 | |
| 117 | * "git describe --tags" favours closer lightweight tags than farther |
| 118 | annotated tags now. |
| 119 | |
Junio C Hamano | a476efa | 2008-10-10 15:31:42 | [diff] [blame] | 120 | * "git diff" learned to mimic --suppress-blank-empty from GNU diff via a |
Junio C Hamano | 3580ad2 | 2008-08-21 00:27:40 | [diff] [blame] | 121 | configuration option. |
| 122 | |
Junio C Hamano | 1c5ef43 | 2008-10-14 21:33:25 | [diff] [blame] | 123 | * "git diff" learned to put more sensible hunk headers for Python, |
| 124 | HTML and ObjC contents. |
Junio C Hamano | 3727619 | 2008-09-04 00:24:07 | [diff] [blame] | 125 | |
Junio C Hamano | 7cc9129 | 2008-09-20 16:55:38 | [diff] [blame] | 126 | * "git diff" learned to vary the a/ vs b/ prefix depending on what are |
| 127 | being compared, controlled by diff.mnemonicprefix configuration. |
| 128 | |
Junio C Hamano | 1c5ef43 | 2008-10-14 21:33:25 | [diff] [blame] | 129 | * "git diff" learned --dirstat-by-file to count changed files, not number |
| 130 | of lines, when summarizing the global picture. |
| 131 | |
Junio C Hamano | 2836349 | 2008-11-14 08:26:31 | [diff] [blame] | 132 | * "git diff" learned "textconv" filters --- a binary or hard-to-read |
| 133 | contents can be munged into human readable form and the difference |
| 134 | between the results of the conversion can be viewed (obviously this |
| 135 | cannot produce a patch that can be applied, so this is disabled in |
| 136 | format-patch among other things). |
| 137 | |
Junio C Hamano | 2836349 | 2008-11-14 08:26:31 | [diff] [blame] | 138 | * "--cached" option to "git diff has an easier to remember synonym "--staged", |
| 139 | to ask "what is the difference between the given commit and the |
| 140 | contents staged in the index?" |
| 141 | |
Junio C Hamano | 7cc9129 | 2008-09-20 16:55:38 | [diff] [blame] | 142 | * "git for-each-ref" learned "refname:short" token that gives an |
| 143 | unambiguously abbreviated refname. |
| 144 | |
Junio C Hamano | f7e47ee | 2008-11-02 18:16:45 | [diff] [blame] | 145 | * Auto-numbering of the subject lines is the default for "git |
| 146 | format-patch" now. |
| 147 | |
Junio C Hamano | 1c5ef43 | 2008-10-14 21:33:25 | [diff] [blame] | 148 | * "git grep" learned to accept -z similar to GNU grep. |
| 149 | |
Junio C Hamano | 3727619 | 2008-09-04 00:24:07 | [diff] [blame] | 150 | * "git help" learned to use GIT_MAN_VIEWER environment variable before |
| 151 | using "man" program. |
| 152 | |
Junio C Hamano | 3580ad2 | 2008-08-21 00:27:40 | [diff] [blame] | 153 | * "git imap-send" can optionally talk SSL. |
Junio C Hamano | 9f0ecaf | 2008-08-18 02:48:07 | [diff] [blame] | 154 | |
Junio C Hamano | 3727619 | 2008-09-04 00:24:07 | [diff] [blame] | 155 | * "git index-pack" is more careful against disk corruption while |
| 156 | completing a thin pack. |
| 157 | |
| 158 | * "git log --check" and "git log --exit-code" passes their underlying diff |
| 159 | status with their exit status code. |
| 160 | |
| 161 | * "git log" learned --simplify-merges, a milder variant of --full-history; |
| 162 | "gitk --simplify-merges" is easier to view than with --full-history. |
| 163 | |
Junio C Hamano | 2836349 | 2008-11-14 08:26:31 | [diff] [blame] | 164 | * "git log" learned "--source" to show what ref each commit was reached |
| 165 | from. |
| 166 | |
Junio C Hamano | 610d176 | 2008-11-28 06:27:13 | [diff] [blame] | 167 | * "git log" also learned "--simplify-by-decoration" to show the |
Junio C Hamano | 2836349 | 2008-11-14 08:26:31 | [diff] [blame] | 168 | birds-eye-view of the topology of the history. |
| 169 | |
Junio C Hamano | 7cc9129 | 2008-09-20 16:55:38 | [diff] [blame] | 170 | * "git log --pretty=format:" learned "%d" format element that inserts |
| 171 | names of tags that point at the commit. |
| 172 | |
Junio C Hamano | 3727619 | 2008-09-04 00:24:07 | [diff] [blame] | 173 | * "git merge --squash" and "git merge --no-ff" into an unborn branch are |
| 174 | noticed as user errors. |
| 175 | |
| 176 | * "git merge -s $strategy" can use a custom built strategy if you have a |
| 177 | command "git-merge-$strategy" on your $PATH. |
| 178 | |
Junio C Hamano | f95312b | 2008-12-01 09:45:49 | [diff] [blame] | 179 | * "git pull" (and "git fetch") can be told to operate "-v"erbosely or |
| 180 | "-q"uietly. |
| 181 | |
Junio C Hamano | aa17c7c | 2008-11-03 04:36:58 | [diff] [blame] | 182 | * "git push" can be told to reject deletion of refs with receive.denyDeletes |
| 183 | configuration. |
| 184 | |
Junio C Hamano | f7e47ee | 2008-11-02 18:16:45 | [diff] [blame] | 185 | * "git rebase" honours pre-rebase hook; use --no-verify to bypass it. |
| 186 | |
| 187 | * "git rebase -p" uses interactive rebase machinery now to preserve the merges. |
| 188 | |
Junio C Hamano | 3727619 | 2008-09-04 00:24:07 | [diff] [blame] | 189 | * "git reflog expire branch" can be used in place of "git reflog expire |
| 190 | refs/heads/branch". |
| 191 | |
Junio C Hamano | f7e47ee | 2008-11-02 18:16:45 | [diff] [blame] | 192 | * "git remote show $remote" lists remote branches one-per-line now. |
| 193 | |
Junio C Hamano | f95312b | 2008-12-01 09:45:49 | [diff] [blame] | 194 | * "git send-email" can be given revision range instead of files and |
| 195 | maildirs on the command line, and automatically runs format-patch to |
| 196 | generate patches for the given revision range. |
| 197 | |
Junio C Hamano | 3727619 | 2008-09-04 00:24:07 | [diff] [blame] | 198 | * "git submodule foreach" subcommand allows you to iterate over checked |
| 199 | out submodules. |
| 200 | |
| 201 | * "git submodule sync" subcommands allows you to update the origin URL |
| 202 | recorded in submodule directories from the toplevel .gitmodules file. |
| 203 | |
Junio C Hamano | 1c5ef43 | 2008-10-14 21:33:25 | [diff] [blame] | 204 | * "git svn branch" can create new branches on the other end. |
| 205 | |
Junio C Hamano | aa17c7c | 2008-11-03 04:36:58 | [diff] [blame] | 206 | * "gitweb" can use more saner PATH_INFO based URL. |
| 207 | |
Junio C Hamano | 9f0ecaf | 2008-08-18 02:48:07 | [diff] [blame] | 208 | (internal) |
| 209 | |
Junio C Hamano | 3580ad2 | 2008-08-21 00:27:40 | [diff] [blame] | 210 | * "git hash-object" learned to lie about the path being hashed, so that |
| 211 | correct gitattributes processing can be done while hashing contents |
| 212 | stored in a temporary file. |
Junio C Hamano | 9f0ecaf | 2008-08-18 02:48:07 | [diff] [blame] | 213 | |
Junio C Hamano | 1c5ef43 | 2008-10-14 21:33:25 | [diff] [blame] | 214 | * various callers of git-merge-recursive avoid forking it as an external |
| 215 | process. |
| 216 | |
Junio C Hamano | aa17c7c | 2008-11-03 04:36:58 | [diff] [blame] | 217 | * Git class defined in "Git.pm" can be subclasses a bit more easily. |
| 218 | |
Junio C Hamano | 608332c | 2008-11-06 00:57:09 | [diff] [blame] | 219 | * We used to link GNU regex library as a compatibility layer for some |
| 220 | platforms, but it turns out it is not necessary on most of them. |
| 221 | |
| 222 | * Some path handling routines used fixed number of buffers used alternately |
| 223 | but depending on the call depth, this arrangement led to hard to track |
| 224 | bugs. This issue is being addressed. |
| 225 | |
Junio C Hamano | 1c5ef43 | 2008-10-14 21:33:25 | [diff] [blame] | 226 | |
Junio C Hamano | 9f0ecaf | 2008-08-18 02:48:07 | [diff] [blame] | 227 | Fixes since v1.6.0 |
| 228 | ------------------ |
| 229 | |
| 230 | All of the fixes in v1.6.0.X maintenance series are included in this |
| 231 | release, unless otherwise noted. |
| 232 | |
Junio C Hamano | f123149 | 2008-12-22 08:27:21 | [diff] [blame] | 233 | * Porcelains implemented as shell scripts were utterly confused when you |
| 234 | entered to a subdirectory of a work tree from sideways, following a |
| 235 | symbolic link (this may need to be backported to older releases later). |
| 236 | |
| 237 | * Tracking symbolic links would work better on filesystems whose lstat() |
| 238 | returns incorrect st_size value for them. |
| 239 | |
Junio C Hamano | 3727619 | 2008-09-04 00:24:07 | [diff] [blame] | 240 | * "git add" and "git update-index" incorrectly allowed adding S/F when S |
| 241 | is a tracked symlink that points at a directory D that has a path F in |
| 242 | it (we still need to fix a similar nonsense when S is a submodule and F |
| 243 | is a path in it). |
| 244 | |
Junio C Hamano | 922ae28 | 2008-12-06 06:31:58 | [diff] [blame] | 245 | * "git am" after stopping at a broken patch lost --whitespace, -C, -p and |
| 246 | --3way options given from the command line initially. |
| 247 | |
Junio C Hamano | 3727619 | 2008-09-04 00:24:07 | [diff] [blame] | 248 | * "git diff --stdin" used to take two trees on a line and compared them, |
Junio C Hamano | a476efa | 2008-10-10 15:31:42 | [diff] [blame] | 249 | but we dropped support for such a use case long time ago. This has |
Junio C Hamano | 3727619 | 2008-09-04 00:24:07 | [diff] [blame] | 250 | been resurrected. |
| 251 | |
| 252 | * "git filter-branch" failed to rewrite a tag name with slashes in it. |
| 253 | |
Junio C Hamano | f123149 | 2008-12-22 08:27:21 | [diff] [blame] | 254 | * "git http-push" did not understand URI scheme other than opaquelocktoken |
| 255 | when acquiring a lock from the server (this may need to be backported to |
| 256 | older releases later). |
| 257 | |
Junio C Hamano | 13016de | 2008-12-25 05:46:57 | [diff] [blame] | 258 | * After "git rebase -p" stopped with conflicts while replaying a merge, |
| 259 | "git rebase --continue" did not work (may need to be backported to older |
| 260 | releases). |
| 261 | |
Junio C Hamano | f123149 | 2008-12-22 08:27:21 | [diff] [blame] | 262 | * "git revert" records relative to which parent a revert was made when |
| 263 | reverting a merge. Together with new documentation that explains issues |
| 264 | around reverting a merge and merging from the updated branch later, this |
| 265 | hopefully will reduce user confusion (this may need to be backported to |
| 266 | older releases later). |
| 267 | |
Junio C Hamano | 922ae28 | 2008-12-06 06:31:58 | [diff] [blame] | 268 | * "git rm --cached" used to allow an empty blob that was added earlier to |
| 269 | be removed without --force, even when the file in the work tree has |
| 270 | since been modified. |
| 271 | |
Junio C Hamano | 3727619 | 2008-09-04 00:24:07 | [diff] [blame] | 272 | * "git push --tags --all $there" failed with generic usage message without |
| 273 | telling saying these two options are incompatible. |
| 274 | |
Junio C Hamano | f87ade6 | 2008-09-07 06:05:51 | [diff] [blame] | 275 | * "git log --author/--committer" match used to potentially match the |
| 276 | timestamp part, exposing internal implementation detail. Also these did |
| 277 | not work with --fixed-strings match at all. |
| 278 | |
Junio C Hamano | 922ae28 | 2008-12-06 06:31:58 | [diff] [blame] | 279 | * "gitweb" did not mark non-ASCII characters imported from external HTML fragments |
| 280 | correctly. |
| 281 | |
Junio C Hamano | 9f0ecaf | 2008-08-18 02:48:07 | [diff] [blame] | 282 | -- |
| 283 | exec >/var/tmp/1 |
Junio C Hamano | f123149 | 2008-12-22 08:27:21 | [diff] [blame] | 284 | O=v1.6.1-rc3-74-gf66bc5f |
Junio C Hamano | 9f0ecaf | 2008-08-18 02:48:07 | [diff] [blame] | 285 | echo O=$(git describe master) |
| 286 | git shortlog --no-merges $O..master ^maint |