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 * Update to more modern HP-UX port. 14 15 * The codebase is getting prepared for i18n/l10n; no translated/translatable 16 strings in the code yet. 17 18 * The bash completion script can now complete symmetric difference 19 for "git diff" command, e.g. "git diff ...bra<TAB>". 20 21 * "git apply -v" reports offset lines when the patch does not apply at 22 the exact location recorded in the diff output. 23 24 * "git branch --track" (and "git checkout --track --branch") used to 25 allow setting up a random non-branch that does not make sense to follow 26 as the "upstream". The command correctly diagnoses it as an error. 27 28 * "git config" used to be also known as "git repo-config", but the old 29 name is now officially deprecated. 30 31 * "git checkout --detach <commit>" is a more user friendly synonym for 32 "git checkout <commit>^0". 33 34 * "git checkout" performed on detached HEAD gives a warning and 35 advice when the commit being left behind will become unreachable from 36 any branch or tag. 37 38 * "git cherry-pick" and "git revert" can be told to use a custom merge 39 strategy, similar to "git rebase". 40 41 * "git cherry-pick" remembers which commit failed to apply when it is 42 stopped by conflicts, making it unnecessary to use "commit -c $commit" 43 to conclude it. 44 45 * "git cvsimport" bails out immediately when the cvs server cannot be 46 reached, without spewing unnecessary error messages that complain about 47 the server response it never got. 48 49 * "git fetch" vs "git upload-pack" transfer learned 'no-done' 50 protocol extension to save one round-trip after the content 51 negotiation is done. This saves one HTTP RPC, reducing the overall 52 latency for a trivial fetch. 53 54 * "git grep -f <filename>" learned to treat "-" as "read from the 55 standard input stream". 56 57 * "git grep --no-index" did not honor pathspecs correctly, returning 58 paths outside the specified area. 59 60 * "git log" type commands now understand globbing pathspecs. You 61 can say "git log -- '*.txt'" for example. 62 63 * "git log" family of commands learned --cherry and --cherry-mark 64 options that can be used to view two diverged branches while omitting 65 or highlighting equivalent changes that appear on both sides of a 66 symmetric difference (e.g. "log --cherry A...B"). 67 68 * "git mergetool" learned how to drive "beyond compare 3" as well. 69 70 * "git rerere forget" without pathspec used to forget all the saved 71 conflicts that relate to the current merge; it now requires you to 72 give it pathspecs. 73 74 * "git rev-list --objects $revs -- $pathspec" now limits the objects listed 75 in its output properly with the pathspec, in preparation for narrow 76 clones. 77 78 * "git push" with no parameters gives better advice messages when 79 "tracking" is used as the push.default semantics or there is no remote 80 configured yet. 81 82 * "git rerere" learned a new subcommand "remaining" that is similar to 83 "status" and lists the paths that had conflicts which are known to 84 rerere, but excludes the paths that have already been marked as 85 resolved in the index from its output. "git mergetool" has been 86 updated to use this facility. 87 88 * A possible value to the "push.default" configuration variable, 89 'tracking', gained a synonym that more naturally describes what it 90 does, 'upstream'. 91 92Also contains various documentation updates. 93 94 95Fixes since v1.7.4 96------------------ 97 98All of the fixes in the v1.7.4.X maintenance series are included in this 99release, unless otherwise noted. 100 101 * "git apply" used to confuse lines updated by previous hunks as lines 102 that existed before when applying a hunk, contributing misapplication 103 of patches with offsets. 104 105 * "git checkout $other_branch" silently removed untracked symbolic links 106 in the working tree that are in the way in order to check out paths 107 under it from the named branch (js/checkout-untracked-symlink). 108 109 * "git fetch" from a client that is mostly following the remote 110 needlessly told all of its refs to the server for both sides to 111 compute the set of objects that need to be transferred efficiently, 112 instead of stopping when the server heard enough. In a project with 113 many tags, this turns out to be extremely wasteful, especially over 114 the smart HTTP transport (sp/maint-{upload,fetch}-pack-stop-early~1). 115 116 * "git fetch" run from a repository that uses the same repository as 117 its alternate object store as the repository it is fetching from 118 did not tell the server that it already has access to objects 119 reachable from the refs in their common alternate object store, 120 causing it to fetch unnecessary objects (jc/maint-fetch-alt). 121 122--- 123exec >/var/tmp/1 124O=v1.7.4.1-352-gcdc3466 125O=v1.7.4.1-414-gaeb2aaa 126echo O=$(git describe 'master') 127git shortlog --no-merges ^maint ^$O master