Update draft release notes to 1.8.4
[gitweb.git] / Documentation / RelNotes / 1.8.4.txt
index 4250e5a3a90e39cad45d90c9ef836ce2ba04cce8..ba36cc45879aa143bd26a70df3a607a993ed112e 100644 (file)
@@ -79,6 +79,27 @@ Foreign interfaces, subsystems and ports.
 
 UI, Workflows & Features
 
+ * 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"
+   configuration variable.
+
+ * "git submodule update" can optionally clone the submodule
+   repositories shallowly.
+
+ * "git format-patch" learned "--from[=whom]" option, which sets the
+   "From: " header to the specified person (or the person who runs the
+   command, if "=whom" part is missing) and move the original author
+   information to an in-body From: header as necessary.
+
+ * The configuration variable "merge.ff" was cleary a tri-state to
+   choose one from "favor fast-forward when possible", "always create
+   a merge even when the history could fast-forward" and "do not
+   create any merge, only update when the history fast-forwards", but
+   the command line parser did not implement the usual convention of
+   "last one wins, and command line overrides the configuration"
+   correctly.
+
  * "gitweb" learned to optionally place extra links that point at the
    levels higher than the Gitweb pages themselves in the breadcrumbs,
    so that it can be used as part of a larger installation.
@@ -179,6 +200,9 @@ UI, Workflows & Features
 
 Performance, Internal Implementation, etc.
 
+ * Fetching between repositories with many refs employed O(n^2)
+   algorithm to match up the common objects, which has been corrected.
+
  * The original way to specify remote repository using .git/branches/
    used to have a nifty feature.  The code to support the feature was
    still in a function but the caller was changed not to call it 5
@@ -244,6 +268,11 @@ 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).
 
+ * 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.
+   (merge 1a741bf bc/send-email-use-port-as-separate-param later to maint).
+
  * "git diff" refused to even show difference when core.safecrlf is
    set to true (i.e. error out) and there are offending lines in the
    working tree files.
@@ -279,22 +308,17 @@ 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.
-   (merge 212eb96 tr/maint-apply-non-git-patch-parsefix later to maint).
 
  * 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.
-   (merge a94cf2c bc/http-keep-memory-given-to-curl later to maint).
 
  * "git pull" into nothing trashed "local changes" that were in the
    index, and this avoids it.
-   (merge b4dc085 jk/pull-into-dirty-unborn later to maint).
 
  * Many "git submodule" operations do not work on a submodule at a
    path whose name is not in ASCII.
-   (merge bed9470 fg/submodule-non-ascii-path later to maint).
 
  * "cherry-pick" had a small leak in an error codepath.
-   (merge 706728a fc/sequencer-plug-leak later to maint).
 
  * Logic used by git-send-email to suppress cc mishandled names like
    "A U. Thor" <author@example.xz>, where the human readable part
@@ -302,7 +326,6 @@ details).
    around the name, and comparison was done between quoted and
    unquoted strings).  It also mishandled names that need RFC2047
    quoting.
-   (merge 1495266 mt/send-email-cc-match-fix later to maint).
 
  * Call to discard_cache/discard_index (used when we use different
    contents of the index in-core, in many operations like commit,
@@ -313,102 +336,79 @@ details).
  * "gitweb" forgot to clear a global variable $search_regexp upon each
    request, mistakenly carrying over the previous search to a new one
    when used as a persistent CGI.
-   (merge ca7a5dc cm/gitweb-project-list-persistent-cgi-fix later to maint).
 
  * The wildmatch engine did not honor WM_CASEFOLD option correctly.
-   (merge b79c0c3 ar/wildmatch-foldcase later to maint).
 
  * "git log -c --follow $path" segfaulted upon hitting the commit that
    renamed the $path being followed.
-   (merge 46ec510 cb/log-follow-with-combined later to maint).
 
  * When a reflog notation is used for implicit "current branch", we
    did not say which branch and worse said "branch ''".
-   (merge 305ebea rr/die-on-missing-upstream later to maint).
 
  * "difftool --dir-diff" did not copy back changes made by the
    end-user in the diff tool backend to the working tree in some
    cases.
-   (merge 32eaf1d ks/difftool-dir-diff-copy-fix later to maint).
 
  * "git push $there HEAD:branch" did not resolve HEAD early enough, so
    it was easy to flip it around while push is still going on and push
    out a branch that the user did not originally intended when the
    command was started.
-   (merge 0f075b2 rr/push-head later to maint).
 
  * The bash prompt code (in contrib/) displayed the name of the branch
    being rebased when "rebase -i/-m/-p" modes are in use, but not the
    plain vanilla "rebase".
-   (merge 1306321 fc/show-branch-in-rebase-am later to maint).
 
  * Handling of negative exclude pattern for directories "!dir" was
    broken in the update to v1.8.3.
-   (merge c3c327d kb/status-ignored-optim-2 later to maint).
 
  * zsh prompt script that borrowed from bash prompt script did not
    work due to slight differences in array variable notation between
    these two shells.
-   (merge d0583da tg/maint-zsh-svn-remote-prompt later to maint).
 
  * An entry for "file://" scheme in the enumeration of URL types Git
    can take in the HTML documentation was made into a clickable link
    by mistake.
-   (merge 4c32e36 nd/urls-doc-no-file-hyperlink-fix later to maint).
 
  * "git push --[no-]verify" was not documented.
-   (merge 90d32d1 tr/push-no-verify-doc later to maint).
 
  * Stop installing the git-remote-testpy script that is only used for
    testing.
-   (merge 416fda6 fc/makefile later to maint).
 
  * "git commit --allow-empty-message -m ''" should not start an
    editor.
-   (merge 2520677 rs/commit-m-no-edit later to maint).
 
  * "git merge @{-1}~22" was rewritten to "git merge frotz@{1}~22"
    incorrectly when your previous branch was "frotz" (it should be
    rewritten to "git merge frotz~22" instead).
-   (merge 84cf246 jc/strbuf-branchname-fix later to maint).
 
  * "git diff -c -p" was not showing a deleted line from a hunk when
    another hunk immediately begins where the earlier one ends.
-   (merge aac3857 mk/combine-diff-context-horizon-fix later to maint).
 
  * "git log --ancestry-path A...B" did not work as expected, as it did
    not pay attention to the fact that the merge base between A and B
    was the bottom of the range being specified.
-   (merge a765499 kb/ancestry-path-threedots later to maint).
 
  * Mac OS X does not like to write(2) more than INT_MAX number of
    bytes; work it around by chopping write(2) into smaller pieces.
-   (merge 6c642a8 fc/macos-x-clipped-write later to maint).
 
  * Newer MacOS X encourages the programs to compile and link with
    their CommonCrypto, not with OpenSSL.
-   (merge be4c828 da/darwin later to maint).
 
  * "git clone foo/bar:baz" cannot be a request to clone from a remote
    over git-over-ssh specified in the scp style.  This case is now
    detected and clones from a local repository at "foo/bar:baz".
-   (merge 6000334 nd/clone-local-with-colon later to maint).
 
  * When $HOME is misconfigured to point at an unreadable directory, we
    used to complain and die. Loosen the check.
-   (merge 4698c8f jn/config-ignore-inaccessible later to maint).
 
  * "git subtree" (in contrib/) had one codepath with loose error
    checks to lose data at the remote side.
-   (merge 3212d56 jk/subtree-do-not-push-if-split-fails later to maint).
 
  * "git fetch" into a shallow repository from a repository that does
    not know about the shallow boundary commits (e.g. a different fork
    from the repository the current shallow repository was cloned from)
    did not work correctly.
-   (merge 71d5f93 mh/fetch-into-shallow later to maint).
 
  * "git checkout foo" DWIMs the intended "upstream" and turns it into
    "git checkout -t -b foo remotes/origin/foo". This codepath has been
    updated to correctly take existing remote definitions into account.
-   (merge 229177a jh/checkout-auto-tracking later to maint).