Documentation / RelNotes / 1.7.12.txton commit Fifth batch for 1.7.12 (2a4dd93)
   1Git v1.7.12 Release Notes
   2=========================
   3
   4Updates since v1.7.11
   5---------------------
   6
   7UI, Workflows & Features
   8
   9 * Per-user $HOME/.gitconfig file can optionally be stored in
  10   $HOME/.config/git/config instead, which is in line with XDG.
  11
  12 * The value of core.attributesfile and core.excludesfile default to
  13   $HOME/.config/attributes and $HOME/.config/ignore respectively when
  14   these files exist.
  15
  16 * Scripted Porcelain writers now have access to the credential API via
  17   the "git credential" plumbing command.
  18
  19 * "git help" used to always default to "man" format even on platforms
  20   where "man" viewer is not widely available.
  21
  22 * "git clone --local $path" started its life as an experiment to
  23   optionally use link/copy when cloning a repository on the disk, but
  24   we didn't deprecate it after we made the option a no-op to always
  25   use the optimization.  The command learned "--no-local" option to
  26   turn this off, as a more explicit alternative over use of file://
  27   URL.
  28
  29 * "git fetch" and friends used to say "remote side hung up
  30   unexpectedly" when they failed to get response they expect from the
  31   other side, but one common reason why they don't get expected
  32   response is that the remote repository does not exist or cannot be
  33   read. The error message in this case was updated to give better
  34   hints to the user.
  35
  36 * git native protocol agents learned to show software version over
  37   the wire, so that the server log can be examined to see the vintage
  38   distribution of clients.
  39
  40 * "git help -w $cmd" can show HTML version of documentation for
  41   "git-$cmd" by setting help.htmlpath to somewhere other than the
  42   default location where the build procedure installs them locally;
  43   the variable can even point at a http:// URL.
  44
  45 * "git rebase -i" learned "-x <cmd>" to insert "exec <cmd>" after
  46   each commit in the resulting history.
  47
  48 * "git status" gives finer classification to various states of paths
  49   in conflicted state and offer advice messages in its output.
  50
  51 * "git submodule" learned to deal with nested submodule structure
  52   where a module is contained within a module whose origin is
  53   specified as a relative URL to its superproject's origin.
  54
  55 * A rather heavy-ish "git completion" script has been split to create
  56   a separate "git prompting" script, to help lazy-autoloading of the
  57   completion part while making prompting part always available.
  58
  59
  60Foreign Interface
  61
  62
  63Performance, Internal Implementation, etc. (please report possible regressions)
  64
  65 * Some tests showed false failures caused by a bug in ecryptofs.
  66
  67 * We no longer use AsciiDoc7 syntax in our documentation and favor a
  68   more modern style.
  69
  70 * "git index-pack" and "git pack-objects" use streaming API to read
  71   from the object store to avoid having to hold a large blob object
  72   in-core while they are doing their thing.
  73
  74 * Code to match paths with exclude patterns learned to avoid calling
  75   fnmatch() by comparing fixed leading substring literally when
  76   possible.
  77
  78
  79Also contains minor documentation updates and code clean-ups.
  80
  81
  82Fixes since v1.7.11
  83-------------------
  84
  85Unless otherwise noted, all the fixes since v1.7.11 in the maintenance
  86releases are contained in this release (see release notes to them for
  87details).
  88
  89 * We did not have test to make sure "git rebase" without extra options
  90   filters out an empty commit in the original history.
  91   (merge 2b5ba7b mz/empty-rebase-test later to maint).
  92
  93 * "git fast-export" produced an input stream for fast-import without
  94   properly quoting pathnames when they contain SPs in them.
  95   (merge ff59f6d js/fast-export-paths-with-spaces later to maint).
  96
  97 * "git checkout --detach", when you are still on an unborn branch,
  98   should be forbidden, but it wasn't.
  99   (merge 8ced1aa cw/no-detaching-an-unborn later to maint).
 100
 101 * Some implementations of Perl terminates "lines" with CRLF even when
 102   the script is operating on just a sequence of bytes.  Make sure to
 103   use "$PERL_PATH", the version of Perl the user told Git to use, in
 104   our tests to avoid unnecessary breakages in tests.
 105   (merge ad78585 vr/use-our-perl-in-tests later to maint).
 106
 107 * "git blame" did not try to make sure that the abbreviated commit
 108   object names in its output are unique.
 109   (merge b31272f jc/maint-blame-unique-abbrev later to maint).
 110
 111 * On Cygwin, the platform pread(2) is not thread safe, just like our
 112   own compat/ emulation, and cannot be used in the index-pack
 113   program.  Makefile variable NO_THREAD_SAFE_PREAD can be defined to
 114   avoid use of this function in a threaded program.
 115   (merge c0f8654 rj/platform-pread-may-be-thread-unsafe later to maint).
 116
 117 * "git clone --single-branch" to clone a single branch did not limit
 118   the cloning to the specified branch.
 119   (merge 0ec4b16 nd/clone-single-fix later to maint).
 120
 121 * "git diff --no-index" did not correctly handle relative paths and
 122   did not correctly give exit codes when run under "--quiet" option.
 123   (merge 304970d th/diff-no-index-fixes later to maint).
 124
 125 * When "git log" gets "--simplify-merges/by-decoration" together with
 126   "--first-parent", the combination of these options makes the
 127   simplification logic to use in-core commit objects that haven't
 128   been examined for relevance, either producing incorrect result or
 129   taking too long to produce any output.  Teach the simplification
 130   logic to ignore commits that the first-parent traversal logic
 131   ignored when both are in effect to work around the issue.
 132   (merge 6e513ba jc/rev-list-simplify-merges-first-parent later to maint).
 133
 134 * "git add" allows adding a regular file to the path where a
 135   submodule used to exist, but "git update-index" does not allow an
 136   equivalent operation to Porcelain writers.
 137   (merge 242f55f hv/submodule-update-nuke-submodules later to maint).
 138
 139 * "git diff --no-index" did not work with pagers correctly.
 140   (merge af63b54 jk/diff-no-index-pager later to maint).
 141
 142 * "git diff COPYING HEAD:COPYING" gave a nonsense error message that
 143   claimed that the treeish HEAD did not have COPYING in it.
 144   (merge 023e37c mm/verify-filename-fix later to maint).
 145
 146 * The documentation for "git cherry-pick A B..C" was misleading.
 147   (merge b98878e cn/cherry-pick-range-docs later to maint).
 148
 149 * "git archive" incorrectly computed the header checksum; the symptom
 150   was observed only when using pathnames with hi-bit set.
 151   (merge a5a46eb jc/ustar-checksum-is-unsigned later to maint).
 152
 153 * Running "git bundle verify" on a bundle that records a complete
 154   history said "it requires these 0 commits".
 155   (merge 8c3710f jc/bundle-complete-notice later to maint).
 156
 157 * "git ls-files --exclude=t -i" did not consider anything under t/ as
 158   excluded, as it did not pay attention to exclusion of leading paths
 159   while walking the index.  Other two users of excluded() are also
 160   updated.
 161   (merge 0d316f0 jc/ls-files-i-dir later to maint).
 162
 163 * "git request-pull $url dev" when the tip of "dev" branch was tagged
 164   with "ext4-for-linus" used the contents from the tag in the output
 165   but still asked the "dev" branch to be pulled, not the tag.
 166   (merge 682853e jc/request-pull-match-tagname later to maint).