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