1Git v1.7.8 Release Notes (draft) 2================================ 3 4Updates since v1.7.7 5-------------------- 6 7 * Some git-svn and git-gui updates. 8 9 * Updates to bash completion scripts. 10 11 * The build procedure has been taught to take advantage of computed 12 dependency automatically when the complier supports it. 13 14 * The date parser now accepts timezone designators that lack minutes 15 part and also has a colon between "hh:mm". 16 17 * On some BSD systems, adding +s bit on directories is detrimental 18 (it is not necessary on BSD to begin with). The installation 19 procedure has been updated to take this into account. 20 21 * The contents of the /etc/mailname file, if exists, is used as the 22 default value of the hostname part of the committer/author e-mail. 23 24 * "git am" learned how to read from patches generated by Hg. 25 26 * "git archive" talking with a remote repository can report errors 27 from the remote side in a more informative way. 28 29 * "git branch" learned an explicit --list option to ask for branches 30 listed, optionally with a glob matching pattern to limit its output. 31 32 * "git check-attr" learned "--cached" option to look at .gitattributes 33 files from the index, not from the working tree. 34 35 * Variants of "git cherry-pick" and "git revert" that take multiple 36 commits learned to "--continue". 37 38 * Errors at the network layer is logged by "git daemon". 39 40 * "git diff" learned "--minimal" option to spend extra cycles to come 41 up with a minimal patch output. 42 43 * "git fetch" learned to honor transfer.fsckobjects configuration to 44 validate the objects that were received from the other end, just like 45 "git receive-pack" (the receiving end of "git push") does. 46 47 * "git fetch" makes sure that the set of objects it received from the 48 other end actually completes the history before updating the refs. 49 "git receive-pack" (the receiving end of "git push") learned to do the 50 same. 51 52 * "git for-each-ref" learned "%(contents:subject)", "%(contents:body)" 53 and "%(contents:signature)". The last one is useful for signed tags. 54 55 * "git grep" used to incorrectly pay attention to .gitignore files 56 scattered in the directory it was working in even when "--no-index" 57 option was used. It no longer does this. The "--exclude-standard" 58 option needs to be given to explicitly activate the ignore 59 mechanism. 60 61 * "git grep" learned "--untracked" option, where given patterns are 62 searched in untracked (but not ignored) files as well as tracked 63 files in the working tree, so that matches in new but not yet 64 added files do not get missed. 65 66 * "git ls-remote" learned to respond to "-h"(elp) requests. 67 68 * "git send-email" learned to respond to "-h"(elp) requests. 69 70 * "git send-email" allows the value given to sendemail.aliasfile to begin 71 with "~/" to refer to the $HOME directory. 72 73 * "git send-email" forces use of Authen::SASL::Perl to work around 74 issues between Authen::SASL::Cyrus and AUTH PLAIN/LOGIN. 75 76 * "git stash" learned "--include-untracked" option to stash away 77 untracked/ignored cruft from the working tree. 78 79 * "git submodule update" learned to honor "none" as the value for 80 submodule.<name>.update to specify that the named submodule should 81 not be checked out by default. 82 83 * When populating a new submodule directory with "git submodule init", 84 the $GIT_DIR metainformation directory for submodules is created inside 85 $GIT_DIR/modules/<name>/ directory of the superproject and referenced 86 via the gitfile mechanism. This is to make it possible to switch 87 between commits in the superproject that has and does not have the 88 submodule in the tree without re-cloning. 89 90 * "mediawiki" remote helper can interact with (surprise!) MediaWiki 91 with "git fetch" & "git push". 92 93 * "gitweb" leaked unescaped control characters from syntax hiliter 94 outputs. 95 96 97Also contains other documentation updates and minor code cleanups. 98 99 100Fixes since v1.7.7 101------------------ 102 103Unless otherwise noted, all fixes in the 1.7.7.X maintenance track are 104included in this release. 105 106 * We used to drop error messages from libcurl on certain kinds of 107 errors. 108 (merge be22d92eac8 jn/maint-http-error-message later to maint). 109 110 * Error report from smart HTTP transport, when the connection was 111 broken in the middle of a transfer, showed a useless message on 112 a corrupt packet. 113 (merge 6cdf022 sp/smart-http-failure later to maint). 114 115 * HTTP transport did not use pushurl correctly, and also did not tell 116 what host it is trying to authenticate with when asking for 117 credentials. 118 (merge deba493 jk/http-auth later to maint). 119 120 * Adding many refs to the local repository in one go (e.g. "git fetch" 121 that fetches many tags) and looking up a ref by name in a repository 122 with too many refs were unnecessarily slow. 123 (merge 17d68a54d jp/get-ref-dir-unsorted later to maint). 124 125 * After incorrectly written third-party tools store a tag object in 126 HEAD, git diagnosed it as a repository corruption and refused to 127 proceed in order to avoid spreading the damage. We now gracefully 128 recover from such a situation by pretending as if the commit that 129 is pointed at by the tag were in HEAD. 130 (merge baf18fc nd/maint-autofix-tag-in-head later to maint). 131 132 * Report from "git commit" on untracked files was confused under 133 core.ignorecase option. 134 (merge 2548183b jk/name-hash-dirent later to maint). 135 136 * The attribute mechanism did not use case insensitive match when 137 core.ignorecase was set. 138 (merge 6eba621 bc/attr-ignore-case later to maint). 139 140 * "git apply --whitespace=error" did not bother to report the exact 141 line number in the patch that introduced new blank lines at the end 142 of the file. 143 (merge 8557263 jc/apply-blank-at-eof-fix later to maint). 144 145 * "git bisect" did not notice when it failed to update the working tree 146 to the next commit to be tested. 147 (merge 1acf11717 js/bisect-no-checkout later to maint). 148 149 * "git checkout $tree $directory/" resurrected paths locally removed or 150 modified only in the working tree in $directory/ that did not appear 151 in $directory of the given $tree. They should have been kept intact. 152 (merge 0a1283b jc/checkout-from-tree-keep-local-changes later to maint). 153 154 * "git config --bool --get-regexp" failed to separate the variable name 155 and its value "true" when the variable is defined without "= true". 156 (merge 880e3cc mm/maint-config-explicit-bool-display later to maint). 157 158 * "git remote rename $a $b" were not careful to match the remote name 159 against $a (i.e. source side of the remote nickname). 160 (merge b52d00aed mz/remote-rename later to maint). 161 162 * "git diff --[num]stat" used to use the number of lines of context 163 different from the default, potentially giving different results from 164 "git diff | diffstat" and confusing the users. 165 (merge f01cae918 jc/maint-diffstat-numstat-context later to maint). 166 167 * "git merge" did not understand ":/<pattern>" as a way to name a commit. 168 169 * "git mergetool" learned to use its arguments as pathspec, not a path to 170 the file that may not even have any conflict. 171 (merge 6d9990a jm/mergetool-pathspec later to maint). 172 173 * "git pull" and "git rebase" did not work well even when GIT_WORK_TREE is 174 set correctly with GIT_DIR if the current directory is outside the working 175 tree. 176 (merge 035b5bf jk/pull-rebase-with-work-tree later to maint). 177 178 " "git push" on the receiving end used to call post-receive and post-update 179 hooks for attempted removal of non-existing refs. 180 (merge 160b81ed ph/push-to-delete-nothing later to maint). 181 182 * "gitweb" used to produce a non-working link while showing the contents 183 of a blob, when JavaScript actions are enabled. 184 (merge 2b07ff3ff ps/gitweb-js-with-lineno later to maint). 185 186--- 187exec >/var/tmp/1 188O=v1.7.7-368-g9638384 189echo O=$(git describe --always master) 190git log --first-parent --oneline --reverse ^$O master 191echo 192git shortlog --no-merges ^$O master