Junio C Hamano | 85da4d4 | 2012-01-29 13:46:18 -0800 | [diff] [blame] | 1 | Git v1.7.10 Release Notes |
| 2 | ========================= |
| 3 | |
Junio C Hamano | 56a33c8 | 2012-03-07 12:51:55 -0800 | [diff] [blame] | 4 | Compatibility Notes |
| 5 | ------------------- |
| 6 | |
| 7 | * From this release on, the "git merge" command in an interactive |
| 8 | session will start an editor when it automatically resolves the |
| 9 | merge for the user to explain the resulting commit, just like the |
| 10 | "git commit" command does when it wasn't given a commit message. |
| 11 | |
| 12 | If you have a script that runs "git merge" and keeps its standard |
| 13 | input and output attached to the user's terminal, and if you do not |
| 14 | want the user to explain the resulting merge commits, you can |
| 15 | export GIT_MERGE_AUTOEDIT environment variable set to "no", like |
| 16 | this: |
| 17 | |
| 18 | #!/bin/sh |
| 19 | GIT_MERGE_AUTOEDIT=no |
| 20 | export GIT_MERGE_AUTOEDIT |
| 21 | |
Junio C Hamano | e8dde3e | 2012-04-06 10:47:58 -0700 | [diff] [blame] | 22 | to disable this behavior (if you want your users to explain their |
Junio C Hamano | 56a33c8 | 2012-03-07 12:51:55 -0800 | [diff] [blame] | 23 | merge commits, you do not have to do anything). Alternatively, you |
| 24 | can give the "--no-edit" option to individual invocations of the |
| 25 | "git merge" command if you know everybody who uses your script has |
| 26 | Git v1.7.8 or newer. |
| 27 | |
Junio C Hamano | fa678fe | 2012-03-12 15:59:06 -0700 | [diff] [blame] | 28 | * The "--binary/-b" options to "git am" have been a no-op for quite a |
Junio C Hamano | 6c15a1c | 2012-03-13 11:38:27 -0700 | [diff] [blame] | 29 | while and were deprecated in mid 2008 (v1.6.0). When you give these |
| 30 | options to "git am", it will now warn and ask you not to use them. |
Junio C Hamano | fa678fe | 2012-03-12 15:59:06 -0700 | [diff] [blame] | 31 | |
Junio C Hamano | e8dde3e | 2012-04-06 10:47:58 -0700 | [diff] [blame] | 32 | * When you do not tell which branches and tags to push to the "git |
| 33 | push" command in any way, the command used "matching refs" rule to |
| 34 | update remote branches and tags with branches and tags with the |
| 35 | same name you locally have. In future versions of Git, this will |
| 36 | change to push out only your current branch according to either the |
| 37 | "upstream" or the "current" rule. Although "upstream" may be more |
| 38 | powerful once the user understands Git better, the semantics |
| 39 | "current" gives is simpler and easier to understand for beginners |
| 40 | and may be a safer and better default option. We haven't decided |
| 41 | yet which one to switch to. |
Junio C Hamano | c16df57 | 2012-03-23 14:50:23 -0700 | [diff] [blame] | 42 | |
Junio C Hamano | 56a33c8 | 2012-03-07 12:51:55 -0800 | [diff] [blame] | 43 | |
Junio C Hamano | 85da4d4 | 2012-01-29 13:46:18 -0800 | [diff] [blame] | 44 | Updates since v1.7.9 |
| 45 | -------------------- |
| 46 | |
| 47 | UI, Workflows & Features |
| 48 | |
Junio C Hamano | fae9d76 | 2012-03-26 12:38:34 -0700 | [diff] [blame] | 49 | * various "gitk" updates. |
Junio C Hamano | 455cf26 | 2012-03-28 10:51:00 -0700 | [diff] [blame] | 50 | - show the path to the top level directory in the window title |
| 51 | - update preference edit dialog |
| 52 | - display file list correctly when directories are given on command line |
| 53 | - make "git-describe" output in the log message into a clickable link |
| 54 | - avoid matching the UNIX timestamp part when searching all fields |
| 55 | - give preference to symbolic font names like sans & monospace |
| 56 | - allow comparing two commits using a mark |
| 57 | - "gitk" honors log.showroot configuration. |
Junio C Hamano | fae9d76 | 2012-03-26 12:38:34 -0700 | [diff] [blame] | 58 | |
Junio C Hamano | 66b8800 | 2012-03-01 20:59:31 -0800 | [diff] [blame] | 59 | * Teams for localizing the messages from the Porcelain layer of |
| 60 | commands are starting to form, thanks to Jiang Xin who volunteered |
Junio C Hamano | 455cf26 | 2012-03-28 10:51:00 -0700 | [diff] [blame] | 61 | to be the localization coordinator. Translated messages for |
Junio C Hamano | e5056c0 | 2012-04-03 09:25:49 -0700 | [diff] [blame] | 62 | simplified Chinese, Swedish and Portuguese are available. |
Junio C Hamano | 66b8800 | 2012-03-01 20:59:31 -0800 | [diff] [blame] | 63 | |
Junio C Hamano | ba998d3 | 2012-02-23 13:38:50 -0800 | [diff] [blame] | 64 | * The configuration mechanism learned an "include" facility; an |
| 65 | assignment to the include.path pseudo-variable causes the named |
| 66 | file to be included in-place when Git looks up configuration |
| 67 | variables. |
| 68 | |
Junio C Hamano | f051ad6 | 2012-02-28 13:31:05 -0800 | [diff] [blame] | 69 | * A content filter (clean/smudge) used to be just a way to make the |
| 70 | recorded contents "more useful", and allowed to fail; a filter can |
Junio C Hamano | 42e52e3 | 2012-03-08 13:08:26 -0800 | [diff] [blame] | 71 | now optionally be marked as "required". |
Junio C Hamano | f051ad6 | 2012-02-28 13:31:05 -0800 | [diff] [blame] | 72 | |
Junio C Hamano | 222433e | 2012-03-01 21:08:07 -0800 | [diff] [blame] | 73 | * Options whose names begin with "--no-" (e.g. the "--no-verify" |
| 74 | option of the "git commit" command) can be negated by omitting |
| 75 | "no-" from its name, e.g. "git commit --verify". |
| 76 | |
Junio C Hamano | 85da4d4 | 2012-01-29 13:46:18 -0800 | [diff] [blame] | 77 | * "git am" learned to pass "-b" option to underlying "git mailinfo", so |
Junio C Hamano | 42e52e3 | 2012-03-08 13:08:26 -0800 | [diff] [blame] | 78 | that a bracketed string other than "PATCH" at the beginning can be kept. |
Junio C Hamano | 85da4d4 | 2012-01-29 13:46:18 -0800 | [diff] [blame] | 79 | |
| 80 | * "git clone" learned "--single-branch" option to limit cloning to a |
Junio C Hamano | 42e52e3 | 2012-03-08 13:08:26 -0800 | [diff] [blame] | 81 | single branch (surprise!); tags that do not point into the history |
| 82 | of the branch are not fetched. |
Junio C Hamano | 85da4d4 | 2012-01-29 13:46:18 -0800 | [diff] [blame] | 83 | |
Junio C Hamano | f3fb075 | 2012-01-31 22:31:35 -0800 | [diff] [blame] | 84 | * "git clone" learned to detach the HEAD in the resulting repository |
Junio C Hamano | 42e52e3 | 2012-03-08 13:08:26 -0800 | [diff] [blame] | 85 | when the user specifies a tag with "--branch" (e.g., "--branch=v1.0"). |
| 86 | Clone also learned to print the usual "detached HEAD" advice in such |
| 87 | a case, similar to "git checkout v1.0". |
Junio C Hamano | f3fb075 | 2012-01-31 22:31:35 -0800 | [diff] [blame] | 88 | |
Junio C Hamano | 85da4d4 | 2012-01-29 13:46:18 -0800 | [diff] [blame] | 89 | * When showing a patch while ignoring whitespace changes, the context |
| 90 | lines are taken from the postimage, in order to make it easier to |
| 91 | view the output. |
| 92 | |
Junio C Hamano | 56a33c8 | 2012-03-07 12:51:55 -0800 | [diff] [blame] | 93 | * "git diff --stat" learned to adjust the width of the output on |
| 94 | wider terminals, and give more columns to pathnames as needed. |
| 95 | |
Junio C Hamano | bd444ca | 2012-02-21 15:29:29 -0800 | [diff] [blame] | 96 | * "diff-highlight" filter (in contrib/) was updated to produce more |
| 97 | aesthetically pleasing output. |
Junio C Hamano | b3a769d | 2012-02-20 00:29:40 -0800 | [diff] [blame] | 98 | |
Junio C Hamano | 222433e | 2012-03-01 21:08:07 -0800 | [diff] [blame] | 99 | * "fsck" learned "--no-dangling" option to omit dangling object |
| 100 | information. |
| 101 | |
Junio C Hamano | 42e52e3 | 2012-03-08 13:08:26 -0800 | [diff] [blame] | 102 | * "git log -G" and "git log -S" learned to pay attention to the "-i" |
| 103 | option. With "-i", "log -G" ignores the case when finding patch |
| 104 | hunks that introduce or remove a string that matches the given |
| 105 | pattern. Similarly with "-i", "log -S" ignores the case when |
| 106 | finding the commit the given block of text appears or disappears |
| 107 | from the file. |
Junio C Hamano | 56a33c8 | 2012-03-07 12:51:55 -0800 | [diff] [blame] | 108 | |
Junio C Hamano | f3fb075 | 2012-01-31 22:31:35 -0800 | [diff] [blame] | 109 | * "git merge" in an interactive session learned to spawn the editor |
| 110 | by default to let the user edit the auto-generated merge message, |
| 111 | to encourage people to explain their merges better. Legacy scripts |
Junio C Hamano | 3724cc7 | 2012-02-26 23:11:10 -0800 | [diff] [blame] | 112 | can export GIT_MERGE_AUTOEDIT=no to retain the historical behavior. |
Junio C Hamano | b3a769d | 2012-02-20 00:29:40 -0800 | [diff] [blame] | 113 | Both "git merge" and "git pull" can be given --no-edit from the |
| 114 | command line to accept the auto-generated merge message. |
Junio C Hamano | f3fb075 | 2012-01-31 22:31:35 -0800 | [diff] [blame] | 115 | |
Junio C Hamano | 42e52e3 | 2012-03-08 13:08:26 -0800 | [diff] [blame] | 116 | * The advice message given when the user didn't give enough clue on |
Junio C Hamano | 56a33c8 | 2012-03-07 12:51:55 -0800 | [diff] [blame] | 117 | what to merge to "git pull" and "git merge" has been updated to |
| 118 | be more concise and easier to understand. |
| 119 | |
Junio C Hamano | 3724cc7 | 2012-02-26 23:11:10 -0800 | [diff] [blame] | 120 | * "git push" learned the "--prune" option, similar to "git fetch". |
| 121 | |
Junio C Hamano | 42e52e3 | 2012-03-08 13:08:26 -0800 | [diff] [blame] | 122 | * The whole directory that houses a top-level superproject managed by |
| 123 | "git submodule" can be moved to another place. |
| 124 | |
Junio C Hamano | 4a92a17 | 2012-03-04 23:38:02 -0800 | [diff] [blame] | 125 | * "git symbolic-ref" learned the "--short" option to abbreviate the |
| 126 | refname it shows unambiguously. |
| 127 | |
Junio C Hamano | 3724cc7 | 2012-02-26 23:11:10 -0800 | [diff] [blame] | 128 | * "git tag --list" can be given "--points-at <object>" to limit its |
| 129 | output to those that point at the given object. |
| 130 | |
Junio C Hamano | 1276686 | 2012-02-07 13:01:56 -0800 | [diff] [blame] | 131 | * "gitweb" allows intermediate entries in the directory hierarchy |
Junio C Hamano | 42e52e3 | 2012-03-08 13:08:26 -0800 | [diff] [blame] | 132 | that leads to a project to be clicked, which in turn shows the |
Junio C Hamano | 1276686 | 2012-02-07 13:01:56 -0800 | [diff] [blame] | 133 | list of projects inside that directory. |
| 134 | |
Junio C Hamano | 3724cc7 | 2012-02-26 23:11:10 -0800 | [diff] [blame] | 135 | * "gitweb" learned to read various pieces of information for the |
| 136 | repositories lazily, instead of reading everything that could be |
| 137 | needed (including the ones that are not necessary for a specific |
| 138 | task). |
| 139 | |
Junio C Hamano | 4a92a17 | 2012-03-04 23:38:02 -0800 | [diff] [blame] | 140 | * Project search in "gitweb" shows the substring that matched in the |
| 141 | project name and description highlighted. |
| 142 | |
Junio C Hamano | e8dde3e | 2012-04-06 10:47:58 -0700 | [diff] [blame] | 143 | * HTTP transport learned to authenticate with a proxy if needed. |
| 144 | |
Junio C Hamano | 0e2d57f | 2012-03-14 15:38:47 -0700 | [diff] [blame] | 145 | * A new script "diffall" is added to contrib/; it drives an |
| 146 | external tool to perform a directory diff of two Git revisions |
Junio C Hamano | fa678fe | 2012-03-12 15:59:06 -0700 | [diff] [blame] | 147 | in one go, unlike "difftool" that compares one file at a time. |
| 148 | |
Junio C Hamano | 222433e | 2012-03-01 21:08:07 -0800 | [diff] [blame] | 149 | Foreign Interface |
| 150 | |
Junio C Hamano | 56a33c8 | 2012-03-07 12:51:55 -0800 | [diff] [blame] | 151 | * Improved handling of views, labels and branches in "git-p4" (in contrib). |
Junio C Hamano | 222433e | 2012-03-01 21:08:07 -0800 | [diff] [blame] | 152 | |
| 153 | * "git-p4" (in contrib) suffered from unnecessary merge conflicts when |
| 154 | p4 expanded the embedded $RCS$-like keywords; it can be now told to |
| 155 | unexpand them. |
| 156 | |
| 157 | * Some "git-svn" updates. |
| 158 | |
| 159 | * "vcs-svn"/"svn-fe" learned to read dumps with svn-deltas and |
| 160 | support incremental imports. |
| 161 | |
Junio C Hamano | 56a33c8 | 2012-03-07 12:51:55 -0800 | [diff] [blame] | 162 | * "git difftool/mergetool" learned to drive DeltaWalker. |
| 163 | |
Junio C Hamano | 85da4d4 | 2012-01-29 13:46:18 -0800 | [diff] [blame] | 164 | Performance |
| 165 | |
Junio C Hamano | 56a33c8 | 2012-03-07 12:51:55 -0800 | [diff] [blame] | 166 | * Unnecessary calls to parse_object() "git upload-pack" makes in |
| 167 | response to "git fetch", have been eliminated, to help performance |
| 168 | in repositories with excessive number of refs. |
Junio C Hamano | 85da4d4 | 2012-01-29 13:46:18 -0800 | [diff] [blame] | 169 | |
Junio C Hamano | b3a769d | 2012-02-20 00:29:40 -0800 | [diff] [blame] | 170 | Internal Implementation (please report possible regressions) |
Junio C Hamano | 85da4d4 | 2012-01-29 13:46:18 -0800 | [diff] [blame] | 171 | |
| 172 | * Recursive call chains in "git index-pack" to deal with long delta |
| 173 | chains have been flattened, to reduce the stack footprint. |
| 174 | |
Junio C Hamano | b3a769d | 2012-02-20 00:29:40 -0800 | [diff] [blame] | 175 | * Use of add_extra_ref() API is now gone, to make it possible to |
| 176 | cleanly restructure the overall refs API. |
| 177 | |
| 178 | * The command line parser of "git pack-objects" now uses parse-options |
| 179 | API. |
Junio C Hamano | 85da4d4 | 2012-01-29 13:46:18 -0800 | [diff] [blame] | 180 | |
| 181 | * The test suite supports the new "test_pause" helper function. |
| 182 | |
Junio C Hamano | ba998d3 | 2012-02-23 13:38:50 -0800 | [diff] [blame] | 183 | * Parallel to the test suite, there is a beginning of performance |
| 184 | benchmarking framework. |
| 185 | |
Junio C Hamano | f3fb075 | 2012-01-31 22:31:35 -0800 | [diff] [blame] | 186 | * t/Makefile is adjusted to prevent newer versions of GNU make from |
| 187 | running tests in seemingly random order. |
| 188 | |
Junio C Hamano | 56a33c8 | 2012-03-07 12:51:55 -0800 | [diff] [blame] | 189 | * The code to check if a path points at a file beyond a symbolic link |
| 190 | has been restructured to be thread-safe. |
| 191 | |
Junio C Hamano | 42e52e3 | 2012-03-08 13:08:26 -0800 | [diff] [blame] | 192 | * When pruning directories that has become empty during "git prune" |
| 193 | and "git prune-packed", call closedir() that iterates over a |
| 194 | directory before rmdir() it. |
| 195 | |
Junio C Hamano | 85da4d4 | 2012-01-29 13:46:18 -0800 | [diff] [blame] | 196 | Also contains minor documentation updates and code clean-ups. |
| 197 | |
| 198 | |
| 199 | Fixes since v1.7.9 |
| 200 | ------------------ |
| 201 | |
| 202 | Unless otherwise noted, all the fixes since v1.7.9 in the maintenance |
| 203 | releases are contained in this release (see release notes to them for |
| 204 | details). |
| 205 | |
Junio C Hamano | c16df57 | 2012-03-23 14:50:23 -0700 | [diff] [blame] | 206 | * Build with NO_PERL_MAKEMAKER was broken and Git::I18N did not work |
| 207 | with versions of Perl older than 5.8.3. |
| 208 | (merge 5eb660e ab/perl-i18n later to maint). |
| 209 | |
Junio C Hamano | fa678fe | 2012-03-12 15:59:06 -0700 | [diff] [blame] | 210 | * "git tag -s" honored "gpg.program" configuration variable since |
| 211 | 1.7.9, but "git tag -v" and "git verify-tag" didn't. |
| 212 | (merge a2c2506 az/verify-tag-use-gpg-config later to maint). |
Junio C Hamano | 3724cc7 | 2012-02-26 23:11:10 -0800 | [diff] [blame] | 213 | |
Junio C Hamano | fae9d76 | 2012-03-26 12:38:34 -0700 | [diff] [blame] | 214 | * "configure" script learned to take "--with-sane-tool-path" from the |
| 215 | command line to record SANE_TOOL_PATH (used to avoid broken platform |
| 216 | tools in /usr/bin) in config.mak.autogen. This may be useful for |
| 217 | people on Solaris who have saner tools outside /usr/xpg[46]/bin. |
Junio C Hamano | bc62ca1 | 2012-03-16 08:42:22 -0700 | [diff] [blame] | 218 | |
Junio C Hamano | c16df57 | 2012-03-23 14:50:23 -0700 | [diff] [blame] | 219 | * zsh port of bash completion script needed another workaround. |