Merge branch 'jc/push-cert'
[gitweb.git] / Documentation / RelNotes / 2.2.0.txt
index 438f92e34427d9bd30676c4e45d975d0ee028b79..8d413feb8c242bb1a783cd69cad5c5d04c3ba395 100644 (file)
@@ -12,6 +12,8 @@ Ports
 
 UI, Workflows & Features
 
+ * "git archive" learned to filter what gets archived with pathspec.
+
  * "git config --edit --global" starts from a skeletal per-user
    configuration file contents, instead of a total blank, when the
    user does not already have any.  This immediately reduces the
@@ -40,6 +42,15 @@ UI, Workflows & Features
    forgot to remove higher stage entries, or if it wanted to unresolve
    and forgot to remove the stage#0 entry).
 
+ * The temporary files "git mergetool" uses are named to avoid too
+   many dots in them (e.g. a temporary file for "hello.c" used to be
+   named e.g. "hello.BASE.4321.c" but now uses underscore instead,
+   e.g. "hello_BASE_4321.c").
+
+ * The temporary files "git mergetools" uses can be placed in a newly
+   creted temporary directory, instead of the current directory, by
+   setting the mergetool.writeToTemp configuration variable.
+
  * The "pre-receive" and "post-receive" hooks are no longer required
    to consume their input fully (not following this requirement used
    to result in intermittent errors in "git push").
@@ -48,12 +59,30 @@ UI, Workflows & Features
    for a tagged commit, gained a cousin "%D" that just gives the
    "tagname" without frills.
 
+ * "git push" learned "--signed" push, that allows a push (i.e.
+   request to update the refs on the other side to point at a new
+   history, together with the transmission of necessary objects) to be
+   signed, so that it can be verified and audited, using the GPG
+   signature of the person who pushed, that the tips of branches at a
+   public repository really point the commits the pusher wanted to,
+   without having to "trust" the server.
+
+ * "git interpret-trailers" is a new filter to programatically edit
+    the tail end of the commit log messages.
+
+ * "git help everyday" shows the "Everyday Git in 20 commands or so"
+   document, whose contents have been updated to more modern Git
+   practice.
+
+
 Performance, Internal Implementation, etc.
 
- * The API to manipulate the "refs" is currently undergoing a revamp
-   to make it more transactional, with the eventual goal to allow
-   all-or-none atomic updates and migrating the storage to something
-   other than the traditional filesystem based one (e.g. databases).
+ * The API to manipulate the "refs" has been restructured to make it
+   more transactional, with the eventual goal to allow all-or-none
+   atomic updates and migrating the storage to something other than
+   the traditional filesystem based one (e.g. databases).
+
+ * The lockfile API and its users have been cleaned up.
 
  * We no longer attempt to keep track of individual dependencies to
    the header files in the build procedure, relying on automated
@@ -108,6 +137,13 @@ Performance, Internal Implementation, etc.
  * "git hash-object" was taught a "--literally" option to help
    debugging.
 
+ * When running a required clean filter, we do not have to mmap the
+   original before feeding the filter.  Instead, stream the file
+   contents directly to the filter and process its output.
+
+ * The scripts in the test suite can be run with "-x" option to show
+   a shell-trace of each command run in them.
+
 
 Also contains various documentation updates and code clean-ups.
 
@@ -123,11 +159,6 @@ notes for details).
    mean the more obvious "No output whatsoever" but "Use default
    format", which was counterintuitive.
 
- * Implementations of "tar" that do not understand an extended pax
-   header would extract the contents of it in a regular file; make
-   sure the permission bits of this file follows the same tar.umask
-   configuration setting.
-
  * "git -c section.var command" and "git -c section.var= command"
    should pass the configuration differently (the former should be a
    boolean true, the latter should be an empty string).
@@ -151,6 +182,11 @@ notes for details).
  * "git checkout -m" did not switch to another branch while carrying
    the local changes forward when a path was deleted from the index.
 
+ * "git daemon" (with NO_IPV6 build configuration) used to incorrectly
+   use the hostname even when gethostbyname() reported that the given
+   hostname is not found.
+   (merge 107efbe rs/daemon-fixes later to maint).
+
  * With sufficiently long refnames, "git fast-import" could have
    overflown an on-stack buffer.
 
@@ -202,3 +238,26 @@ notes for details).
  * "rev-parse --verify --quiet $name" is meant to quietly exit with a
    non-zero status when $name is not a valid object name, but still
    gave error messages in some cases.
+
+ * A handful of C source files have been updated to include
+   "git-compat-util.h" as the first thing, to conform better to our
+   coding guidelines.
+   (merge 1c4b660 da/include-compat-util-first-in-c later to maint).
+
+ * t7004 test, which tried to run Git with small stack space, has been
+   updated to give a bit larger stack to avoid false breakage on some
+   platforms.
+   (merge b9a1907 sk/tag-contains-wo-recursion later to maint).
+
+ * A few documentation pages had example sections marked up not quite
+   correctly, which passed AsciiDoc but failed with AsciiDoctor.
+   (merge c30c43c bc/asciidoc-pretty-formats-fix later to maint).
+   (merge f8a48af bc/asciidoc later to maint).
+
+ * "gitweb" used deprecated CGI::startfrom, which was removed from
+   CGI.pm as of 4.04; use CGI::start_from instead.
+   (merge 4750f4b rm/gitweb-start-form later to maint).
+
+ * Newer versions of 'meld' breaks the auto-detection we use to see if
+   they are new enough to support the `--output` option.
+   (merge b12d045 da/mergetool-meld later to maint).