Merge branch 'ak/add-i-empty-candidates' into maint
[gitweb.git] / Documentation / RelNotes / 1.8.4.txt
index ba36cc45879aa143bd26a70df3a607a993ed112e..02f681b71051a9c964511d8f317b024f4bf1c74e 100644 (file)
@@ -48,6 +48,8 @@ Updates since v1.8.3
 
 Foreign interfaces, subsystems and ports.
 
+ * Cygwin port has been updated for more recent Cygwin 1.7.
+
  * "git rebase -i" now honors --strategy and -X options.
 
  * Git-gui has been updated to its 0.18.0 version.
@@ -76,9 +78,49 @@ Foreign interfaces, subsystems and ports.
  * git-remote-mw (in contrib/) hints users to check the certificate,
    when https:// connection failed.
 
+ * git-remote-mw (in contrib/) adds a command to allow previewing the
+   contents locally before pushing it out, when working with a
+   MediaWiki remote.
+
 
 UI, Workflows & Features
 
+ * Sample "post-receive-email" hook script got an enhanced replacement
+   "multimail" (in contrib/).
+
+ * Also in contrib/ is a new "contacts" script that runs "git blame"
+   to find out the people who may be interested in a set of changes.
+
+ * "git clean" command learned an interactive mode.
+
+ * The "--head" option to "git show-ref" was only to add "HEAD" to the
+   list of candidate refs to be filtered by the usual rules
+   (e.g. "--heads" that only show refs under refs/heads).  The meaning
+   of the option has been changed to always show "HEAD" regardless of
+   what filtering will be applied to any other ref.
+
+   This is a backward incompatible change and might cause breakages to
+   people's existing scripts.
+
+ * "git show -s" was less discoverable than it should have been.  It
+   now has a natural synonym "git show --no-patch".
+
+ * "git check-mailmap" is a new command that lets you map usernames
+   and e-mail addresses through the mailmap mechanism, just like many
+   built-in commands do.
+
+ * "git name-rev" learned to name an annotated tag object back to its
+   tagname; "git name-rev $(git rev-parse v1.0.0)" gives "tags/v1.0.0",
+   for example.
+
+ * "git cat-file --batch-check=<format>" is added, primarily to allow
+   on-disk footprint of objects in packfiles (often they are a lot
+   smaller than their true size, when expressed as deltas) to be
+   reported.
+
+ * "git rebase [-i]" used to leave just "rebase" as its reflog messages
+   for some operations. They have been reworded to be more informative.
+
  * In addition to the choice from "rebase, merge, or checkout-detach",
    "submodule update" can allow a custom command to be used in to
    update the working tree of submodules via the "submodule.*.update"
@@ -148,7 +190,7 @@ UI, Workflows & Features
    directly uses the 40-hex string as an object name, even if a ref
    "refs/<some hierarchy>/<name>" exists.  This disambiguation order
    is unlikely to change, but we should warn about the ambiguity just
-   like we warn when more than one refs/ hierachies share the same
+   like we warn when more than one refs/ hierarchies share the same
    name.
 
  * "git rebase" learned "--[no-]autostash" option to save local
@@ -156,9 +198,6 @@ UI, Workflows & Features
    response was to stash them and re-run).  This introduced a corner
    case breakage to "git am --abort" but it has been fixed.
 
- * Instead of typing four capital letters "HEAD", you can say "@" now,
-   e.g. "git log @".
-
  * "check-ignore" (new feature since 1.8.2) has been updated to work
    more like "check-attr" over bidi-pipes.
 
@@ -200,6 +239,21 @@ UI, Workflows & Features
 
 Performance, Internal Implementation, etc.
 
+ * On Cygwin, we used to use our own lstat(2) emulation that is
+   allegedly faster than the platform one in codepaths where some of
+   the information it returns did not matter, but it started to bite
+   us in a few codepaths where the trick it uses to cheat does show
+   breakages. This emulation has been removed and we use the native
+   lstat(2) emulation supplied by Cygwin now.
+
+ * The function attributes extensions are used to catch mistakes in
+   use of our own variadic functions that use NULL sentinel at the end
+   (i.e. like execl(3)) and format strings (i.e. like printf(3)).
+
+ * The code to allow configuration data to be read from in-tree blob
+   objects is in.  This may help working in a bare repository and
+   submodule updates.
+
  * Fetching between repositories with many refs employed O(n^2)
    algorithm to match up the common objects, which has been corrected.
 
@@ -213,7 +267,7 @@ Performance, Internal Implementation, etc.
    been susceptible to lossage of refs under right conditions, which
    has been tightened up.
 
- * We read loose and packed rerferences in two steps, but after
+ * We read loose and packed references in two steps, but after
    deciding to read a loose ref but before actually opening it to read
    it, another process racing with us can unlink it, which would cause
    us to barf.  The codepath has been updated to retry when such a
@@ -268,6 +322,30 @@ Unless otherwise noted, all the fixes since v1.8.3 in the maintenance
 track are contained in this release (see release notes to them for
 details).
 
+ * Newer Net::SMTP::SSL module does not want the user programs to use
+   the default behaviour to let server certificate go without
+   verification, so by default enable the verification with a
+   mechanism to turn it off if needed.
+   (merge 35035bb rr/send-email-ssl-verify later to maint).
+
+ * When "git" is spawned in such a way that any of the low 3 file
+   descriptors is closed, our first open() may yield file descriptor 2,
+   and writing error message to it would screw things up in a big way.
+   (merge a11c396 tr/protect-low-3-fds later to maint).
+
+ * The mailmap mechanism unnecessarily downcased the e-mail addresses
+   in the output, and also ignored the human name when it is a single
+   character name.
+   (merge bd23794 jc/mailmap-case-insensitivity later to maint).
+
+ * In two places we did not check return value (expected to be a file
+   descriptor) correctly.
+   (merge a77f106 tr/fd-gotcha-fixes later to maint).
+
+ * Logic to auto-detect character encodings in the commit log message
+   did not reject overlong and invalid UTF-8 characters.
+   (merge 81050ac bc/commit-invalid-utf8 later to maint).
+
  * Pass port number as a separate argument when "send-email" initializes
    Net::SMTP, instead of as a part of the hostname, i.e. host:port.
    This allows GSSAPI codepath to match with the hostname given.
@@ -291,12 +369,6 @@ details).
    the user to an unexpected place.
    (merge 3bed291 rr/rebase-checkout-reflog later to maint).
 
- * "git stash save", when your local change turns a tracked file into
-   a directory, has to remove files in that directory in order to
-   revert your working tree to a pristine state.  This will lose
-   untracked files in such a directory, and the command now requires
-   you to "--force" it.
-
  * The configuration variable column.ui was poorly documented.
    (merge 5e62cc1 rr/column-doc later to maint).
 
@@ -307,7 +379,7 @@ details).
 
  * "git apply" parsed patches that add new files, generated by
    programs other than Git, incorrectly.  This is an old breakage in
-   v1.7.11 and will need to be merged down to the maintanance tracks.
+   v1.7.11 and will need to be merged down to the maintenance tracks.
 
  * Older cURL wanted piece of memory we call it with to be stable, but
    we updated the auth material after handing it to a call.