Documentation / RelNotes / 1.7.7.txton commit Minor update to how-to maintain git (d4e5896)
   1Git v1.7.7 Release Notes
   2========================
   3
   4Updates since v1.7.6
   5--------------------
   6
   7 * The scripting part of the codebase is getting prepared for i18n/l10n.
   8
   9 * Interix, Cygwin and Minix ports got updated.
  10
  11 * Various updates git-p4 (in contrib/), fast-import, and git-svn.
  12
  13 * Gitweb learned to read from /etc/gitweb-common.conf when it exists,
  14   before reading from gitweb_config.perl or from /etc/gitweb.conf
  15   (this last one is read only when per-repository gitweb_config.perl
  16   does not exist).
  17
  18 * Various codepaths that invoked zlib deflate/inflate assumed that these
  19   functions can compress or uncompress more than 4GB data in one call on
  20   platforms with 64-bit long, which has been corrected.
  21
  22 * Git now recognizes loose objects written by other implementations that
  23   uses non-standard window size for zlib deflation (e.g. Agit running on
  24   Android with 4kb window). We used to reject anything that was not
  25   deflated with 32kb window.
  26
  27 * Interaction between the use of pager and coloring of the output has
  28   been improved, especially when a command that is not built-in was
  29   involved.
  30
  31 * "git am" learned to pass "--exclude=<path>" option through to underlying
  32   "git apply".
  33
  34 * You can now feed many empty lines before feeding a mbox file to
  35   "git am".
  36
  37 * "git archive" can be told to pass the output to gzip compression and
  38   produce "archive.tar.gz".
  39
  40 * "git bisect" can be used in a bare repository (provided if the test
  41   you perform per each iteration does not need a working tree, of
  42   course).
  43
  44 * The length of abbreviated object names in "git branch -v" output
  45   now honors core.abbrev configuration variable.
  46
  47 * "git check-attr" can take relative paths from the command line.
  48
  49 * "git check-attr" learned "--all" option to list the attributes for a
  50   given path.
  51
  52 * "git checkout" (both the code to update the files upon checking out a
  53   different branch, the code to checkout specific set of files) learned
  54   to stream the data from object store when possible, without having to
  55   read the entire contents of a file in memory first. An earlier round
  56   of this code that is not in any released version had a large leak but
  57   now it has been plugged.
  58
  59 * "git clone" can now take "--config key=value" option to set the
  60   repository configuration options that affect the initial checkout.
  61
  62 * "git commit <paths>..." now lets you feed relative pathspecs that
  63   refer outside your current subdirectory.
  64
  65 * "git diff --stat" learned --stat-count option to limit the output of
  66   diffstat report.
  67
  68 * "git diff" learned "--histogram" option, to use a different diff
  69   generation machinery stolen from jgit, which might give better
  70   performance.
  71
  72 * "git diff" had a wierd worst case behaviour that can be triggered
  73   when comparing files with potentially many places that could match.
  74
  75 * "git fetch", "git push" and friends no longer show connection
  76   errors for addresses that couldn't be connected when at least one
  77   address succeeds (this is arguably a regression but a deliberate
  78   one).
  79
  80 * "git grep" learned --break and --heading options, to let users mimic
  81   output format of "ack".
  82
  83 * "git grep" learned "-W" option that shows wider context using the same
  84   logic used by "git diff" to determine the hunk header.
  85
  86 * Invoking the low-level "git http-fetch" without "-a" option (which
  87   git itself never did---normal users should not have to worry about
  88   this) is now deprecated.
  89
  90 * The "--decorate" option to "git log" and its family learned to
  91   highlight grafted and replaced commits.
  92
  93 * "git rebase master topci" no longer spews usage hints after giving
  94   "fatal: no such branch: topci" error message.
  95
  96 * The recursive merge strategy implementation got a fairly large
  97   fixes for many corner cases that may rarely happen in real world
  98   projects (it has been verified that none of the 16000+ merges in
  99   the Linux kernel history back to v2.6.12 is affected with the
 100   corner case bugs this update fixes).
 101
 102 * "git stash" learned --include-untracked option.
 103
 104 * "git submodule update" used to stop at the first error updating a
 105   submodule; it now goes on to update other submodules that can be
 106   updated, and reports the ones with errors at the end.
 107
 108 * "git push" can be told with --recurse-submodules=check option to
 109   refuse pushing of the supermodule, if any of its submodules'
 110   commits hasn't been pushed out to their remotes.
 111
 112 * "git upload-pack" and "git receive-pack" learned to pretend only a
 113   subset of the refs exist in a repository. This may help a site to
 114   put many tiny repositories into one repository (this would not be
 115   useful for larger repositories as repacking would be problematic).
 116
 117 * "git verify-pack" has been rewritten to use the "index-pack" machinery
 118   that is more efficient in reading objects in packfiles.
 119
 120 * test scripts for gitweb tried to run even when CGI-related perl modules
 121   are not installed; it now exits early when they are unavailable.
 122
 123Also contains various documentation updates and minor miscellaneous
 124changes.
 125
 126
 127Fixes since v1.7.6
 128------------------
 129
 130Unless otherwise noted, all the fixes in 1.7.6.X maintenance track are
 131included in this release.
 132
 133 * The error reporting logic of "git am" when the command is fed a file
 134   whose mail-storage format is unknown was fixed.
 135   (merge dff4b0e gb/maint-am-patch-format-error-message later to 'maint').
 136
 137 * "git branch --set-upstream @{-1} foo" did not expand @{-1} correctly.
 138   (merge e9d4f74 mg/branch-set-upstream-previous later to 'maint').
 139
 140 * "git branch -m" and "git checkout -b" incorrectly allowed the tip
 141   of the branch that is currently checked out updated.
 142   (merge 55c4a67 ci/forbid-unwanted-current-branch-update later to 'maint').
 143
 144 * "git check-ref-format --print" used to parrot a candidate string that
 145   began with a slash (e.g. /refs/heads/master) without stripping it, to make
 146   the result a suitably normalized string the caller can append to "$GIT_DIR/".
 147   (merge f3738c1 mh/check-ref-format-print-normalize later to 'maint').
 148
 149 * "git clone" failed to clone locally from a ".git" file that itself
 150   is not a directory but is a pointer to one.
 151   (merge 9b0ebc7 nd/maint-clone-gitdir later to 'maint').
 152
 153 * "git clone" from a local repository that borrows from another
 154   object store using a relative path in its objects/info/alternates
 155   file did not adjust the alternates in the resulting repository.
 156   (merge e6baf4a1 jc/maint-clone-alternates later to 'maint').
 157
 158 * "git describe --dirty" did not refresh the index before checking the
 159   state of the working tree files.
 160   (cherry-pick bb57148 ac/describe-dirty-refresh later to 'maint').
 161
 162 * "git ls-files ../$path" that is run from a subdirectory reported errors
 163   incorrectly when there is no such path that matches the given pathspec.
 164   (merge 0f64bfa cb/maint-ls-files-error-report later to 'maint').
 165
 166--
 167exec >/var/tmp/1
 168echo O=$(git describe master)
 169O=v1.7.7-rc0-185-gb648557
 170git log --first-parent --oneline $O..master
 171echo
 172git shortlog --no-merges ^maint ^$O master