xread, xwrite: limit size of IO to 8MB
[gitweb.git] / Documentation / RelNotes / 1.8.4.txt
index ba36cc45879aa143bd26a70df3a607a993ed112e..f7bff4d635baac766e8fbe33cafbd077aa4f4c1f 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.
 
@@ -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).