1Git v1.7.5 Release Notes (draft) 2======================== 3 4Updates since v1.7.4 5-------------------- 6 7 * Various MinGW portability fixes. 8 9 * Various git-p4 enhancements (in contrib). 10 11 * Various vcs-svn enhancements. 12 13 * Various git-gui updates (0.14.0). 14 15 * Update to more modern HP-UX port. 16 17 * The codebase is getting prepared for i18n/l10n; no translated 18 strings nor translation mechanism in the code yet, but the strings 19 are being marked for l10n. 20 21 * The bash completion script can now complete symmetric difference 22 for "git diff" command, e.g. "git diff ...bra<TAB>". 23 24 * The default minimum length of abbreviated and unique object names 25 can now be configured by setting the core.abbrev configuration 26 variable. 27 28 * "git apply -v" reports offset lines when the patch does not apply at 29 the exact location recorded in the diff output. 30 31 * "git config" used to be also known as "git repo-config", but the old 32 name is now officially deprecated. 33 34 * "git checkout --detach <commit>" is a more user friendly synonym for 35 "git checkout <commit>^0". 36 37 * "git checkout" performed on detached HEAD gives a warning and 38 advice when the commit being left behind will become unreachable from 39 any branch or tag. 40 41 * "git cherry-pick" and "git revert" can be told to use a custom merge 42 strategy, similar to "git rebase". 43 44 * "git cherry-pick" remembers which commit failed to apply when it is 45 stopped by conflicts, making it unnecessary to use "commit -c $commit" 46 to conclude it. 47 48 * "git cvsimport" bails out immediately when the cvs server cannot be 49 reached, without spewing unnecessary error messages that complain about 50 the server response it never got. 51 52 * "git fetch" vs "git upload-pack" transfer learned 'no-done' 53 protocol extension to save one round-trip after the content 54 negotiation is done. This saves one HTTP RPC, reducing the overall 55 latency for a trivial fetch. 56 57 * "git grep -f <filename>" learned to treat "-" as "read from the 58 standard input stream". 59 60 * "git grep --no-index" did not honor pathspecs correctly, returning 61 paths outside the specified area. 62 63 * "git init" learned the --separate-git-dir option to allow the git 64 directory for a new repository created elsewhere and linked via the 65 gitdir mechanism. This is primarily to help submodule support later 66 to switch between a branch of superproject that has the submodule 67 and another that does not. 68 69 * "git log" type commands now understand globbing pathspecs. You 70 can say "git log -- '*.txt'" for example. 71 72 * "git log" family of commands learned --cherry and --cherry-mark 73 options that can be used to view two diverged branches while omitting 74 or highlighting equivalent changes that appear on both sides of a 75 symmetric difference (e.g. "log --cherry A...B"). 76 77 * A lazy "git merge" that didn't say what to merge used to be an error. 78 When run on a branch that has an upstream defined, however, the command 79 now merges from the configured upstream. 80 81 * "git mergetool" learned how to drive "beyond compare 3" as well. 82 83 * "git rerere forget" without pathspec used to forget all the saved 84 conflicts that relate to the current merge; it now requires you to 85 give it pathspecs. 86 87 * "git rev-list --objects $revs -- $pathspec" now limits the objects listed 88 in its output properly with the pathspec, in preparation for narrow 89 clones. 90 91 * "git push" with no parameters gives better advice messages when 92 "tracking" is used as the push.default semantics or there is no remote 93 configured yet. 94 95 * "git rerere" learned a new subcommand "remaining" that is similar to 96 "status" and lists the paths that had conflicts which are known to 97 rerere, but excludes the paths that have already been marked as 98 resolved in the index from its output. "git mergetool" has been 99 updated to use this facility. 100 101 * A possible value to the "push.default" configuration variable, 102 'tracking', gained a synonym that more naturally describes what it 103 does, 'upstream'. 104 105Also contains various documentation updates. 106 107 108Fixes since v1.7.4 109------------------ 110 111All of the fixes in the v1.7.4.X maintenance series are included in this 112release, unless otherwise noted. 113 114 * "git fetch" from a client that is mostly following the remote 115 needlessly told all of its refs to the server for both sides to 116 compute the set of objects that need to be transferred efficiently, 117 instead of stopping when the server heard enough. In a project with 118 many tags, this turns out to be extremely wasteful, especially over 119 the smart HTTP transport (sp/maint-{upload,fetch}-pack-stop-early~1). 120 121 * "git fetch" run from a repository that uses the same repository as 122 its alternate object store as the repository it is fetching from 123 did not tell the server that it already has access to objects 124 reachable from the refs in their common alternate object store, 125 causing it to fetch unnecessary objects (jc/maint-fetch-alt). 126 127 * "git pull" into an empty branch should have behaved as if 128 fast-forwarding from emptiness to the version being pulled, with 129 the usual protection against overwriting untracked files (need to 130 cherry-pick 4b3ffe5). 131 132--- 133exec >/var/tmp/1 134O=v1.7.5-rc0-99-g8f84c95 135echo O=$(git describe 'master') 136git shortlog --no-merges ^maint ^$O master