submodule: print graph output next to submodule log
[gitweb.git] / Documentation / RelNotes / 1.8.3.txt
index 54b05db9d0b9d26b19892510581050e5c8c0a0de..822c0596a93bc43890aee8782f3a161020256652 100644 (file)
@@ -37,9 +37,17 @@ UI, Workflows & Features
    An explicit way to help the end users who connect to the service by
    issuing custom messages to refuse such an access has been added.
 
- * "git status" suggests users to look into using--untracked=no option
+ * In addition to the case where the user edits the log message with
+   the "e)dit" option of "am -i", replace the "Applying: this patch"
+   message with the final log message contents after applymsg hook
+   munges it.
+
+ * "git status" suggests users to look into using --untracked=no option
    when it takes too long.
 
+ * "git status" shows a bit more information to "git status" during a
+   rebase/bisect session.
+
  * "git fetch" learned to fetch a commit at the tip of an unadvertised
    ref by specifying a raw object name from the command line when the
    server side supports this feature.
@@ -62,9 +70,27 @@ UI, Workflows & Features
  * The new "--follow-tags" option tells "git push" to push relevant
    annotated tags when pushing branches out.
 
+ * "git mergetool" now feeds files to the "p4merge" backend in the
+   order that matches the p4 convention, where "theirs" is usually
+   shown on the left side, which is the opposite from other backend
+   expects.
+
+ * "show/log" now honors gpg.program configuration just like other
+   parts of the code that use GnuPG.
+
+ * "git log" that shows the difference between the parent and the
+   child has been optimized somewhat.
 
-Foreign Interface
+ * "git difftool" allows the user to write into the temporary files
+   being shown; if the user makes changes to the working tree at the
+   same time, one of the changes has to be lost in such a case, but it
+   tells the user what happened and refrains from overwriting the copy
+   in the working tree.
 
+ * There was no good way to ask "I have a random string that came from
+   outside world. I want to turn it into a 40-hex object name while
+   making sure such an object exists".  A new peeling suffix ^{object}
+   can be used for that purpose, together with "rev-parse --verify".
 
 
 Performance, Internal Implementation, etc.
@@ -75,6 +101,25 @@ Performance, Internal Implementation, etc.
    hashtables they use upfront, but still started from a small table
    repeatedly growing and rehashing.
 
+ * The API to walk reflog entries from the latest to older, which was
+   necessary for operations such as "git checkout -", was cumbersome
+   to use correctly and also inefficient.
+
+ * Codepaths that inspect log-message-to-be and decide when to add a
+   new Signed-off-by line in various commands have been consolidated.
+
+ * The pkt-line API, implementation and its callers have been cleaned
+   up to make them more robust.
+
+ * Cygwin port has a faster-but-lying lstat(2) emulation whose
+   incorrectness does not matter in practice except for a few
+   codepaths, and setting permission bits to directories is a codepath
+   that needs to use a more correct one.
+
+ * "git checkout" had repeated pathspec matches on the same paths,
+   which have been consolidated.  Also a bug in "git checkout dir/"
+   that is started from an unmerged index has been fixed.
+
 
 Also contains minor documentation updates and code clean-ups.
 
@@ -86,20 +131,45 @@ Unless otherwise noted, all the fixes since v1.8.2 in the maintenance
 track are contained in this release (see release notes to them for
 details).
 
+ * Fix 1.8.1.x regression that stopped matching "dir" (without
+   trailing slash) to a directory "dir".
+   (merge efa5f82 jc/directory-attrs-regression-fix later to maint-1.8.1).
+
+ * "git apply --whitespace=fix" was not prepared to see a line getting
+   longer after fixing whitespaces (e.g. tab-in-indent aka Python).
+   (merge 329b26e jc/apply-ws-fix-tab-in-indent later to maint-1.8.1).
+
+ * The prompt string generator (in contrib/completion/) did not notice
+   when we are in a middle of a "git revert" session.
+   (merge 3ee4452 rr/prompt-revert-head later to maint).
+
+ * "submodule summary --summary-limit" option did not support
+   "--option=value" form.
+   (merge 862ae6c rs/submodule-summary-limit later to maint).
+
+ * "index-pack --fix-thin" used uninitialize value to compute delta
+   depths of objects it appends to the resulting pack.
+   (merge 57165db jk/index-pack-correct-depth-fix later to maint).
+
+ * "index-pack --verify-stat" used a few counters outside protection
+   of mutex, possibly showing incorrect numbers.
+   (merge 8f82aad nd/index-pack-threaded-fixes later to maint).
+
+ * The code to keep track of what directory names are known to Git on
+   platforms with case insensitive filesystems can get confused upon a
+   hash collision between these pathnames and looped forever.
+
  * Annotated tags outside refs/tags/ hierarchy were not advertised
    correctly to the ls-remote and fetch with recent version of Git.
-   (merge c29c46f jk/fully-peeled-packed-ref later to maint).
 
  * Recent optimization broke shallow clones.
    (merge f59de5d jk/peel-ref later to maint).
 
  * "git cmd -- ':(top'" was not diagnosed as an invalid syntax, and
    instead the parser kept reading beyond the end of the string.
-   (merge f612a67 lf/setup-prefix-pathspec later to maint).
 
  * "git tag -f <tag>" always said "Updated tag '<tag>'" even when
    creating a new tag (i.e. not overwriting nor updating).
-   (merge 3ae851e ph/tag-force-no-warn-on-creation later to maint).
 
  * "git p4" did not behave well when the path to the root of the P4
    client was not its real path.
@@ -108,35 +178,28 @@ details).
  * "git archive" reports a failure when asked to create an archive out
    of an empty tree.  It would be more intuitive to give an empty
    archive back in such a case.
-   (merge bd54cf1 jk/empty-archive later to maint).
 
  * When "format-patch" quoted a non-ascii strings on the header files,
    it incorrectly applied rfc2047 and chopped a single character in
    the middle of it.
-   (merge 6cd3c05 ks/rfc2047-one-char-at-a-time later to maint).
 
  * An aliased command spawned from a bare repository that does not say
    it is bare with "core.bare = yes" is treated as non-bare by mistake.
-   (merge 2cd83d1 jk/alias-in-bare later to maint).
 
  * In "git reflog expire", REACHABLE bit was not cleared from the
    correct objects.
-   (merge e8e92e0 jc/maint-reflog-expire-clean-mark-typofix later to maint).
 
  * The logic used by "git diff -M --stat" to shorten the names of
    files before and after a rename did not work correctly when the
    common prefix and suffix between the two filenames overlapped.
-   (merge b174eb4 ap/maint-diff-rename-avoid-overlap later to maint).
 
  * The "--match=<pattern>" option of "git describe", when used with
    "--all" to allow refs that are not annotated tags to be used as a
    base of description, did not restrict the output from the command
    to those that match the given pattern.
-   (merge 46e1d6e jc/describe later to maint).
 
  * Clarify in the documentation "what" gets pushed to "where" when the
    command line to "git push" does not say these explicitly.
-   (merge cfe1348 jc/maint-push-refspec-default-doc later to maint).
 
  * The "--color=<when>" argument to the commands in the diff family
    was described poorly.
@@ -161,53 +224,42 @@ details).
    to file scope static, but a few functions in graph.c were used by
    CGit from sideways bypassing the entry points of the API the
    in-tree users use.
-   (merge ac751a0 jk/graph-c-expose-symbols-for-cgit later to maint).
 
  * "git update-index -h" did not do the usual "-h(elp)" thing.
 
  * "git index-pack" had a buffer-overflow while preparing an
    informational message when the translated version of it was too
    long.
-   (merge 5c3459f nd/index-pack-l10n-buf-overflow later to maint).
 
  * 'git commit -m "$msg"' used to add an extra newline even when
    $msg already ended with one.
-   (merge 46fbf75 bc/commit-complete-lines-given-via-m-option later to maint).
 
  * The SSL peer verification done by "git imap-send" did not ask for
    Server Name Indication (RFC 4366), failing to connect SSL/TLS
    sites that serve multiple hostnames on a single IP.
-   (merge 698a1ec ob/imap-send-ssl-verify later to maint).
 
  * perl/Git.pm::cat_blob slurped everything in core only to write it
    out to a file descriptor, which was not a very smart thing to do.
-   (merge 712c6ad jc/perl-cat-blob later to maint).
 
  * "git branch" did not bother to check nonsense command line
    parameters and issue errors in many cases.
-   (merge 8efb889 nd/branch-error-cases later to maint).
 
  * Verification of signed tags were not done correctly when not in C
    or en/US locale.
-   (merge 0174eea mg/gpg-interface-using-status later to maint).
 
  * Some platforms and users spell UTF-8 differently; retry with the
    most official "UTF-8" when the system does not understand the
    user-supplied encoding name that are the common alternative
    spellings of UTF-8.
-   (merge 5c680be jk/utf-8-can-be-spelled-differently later to maint).
 
  * When export-subst is used, "zip" output recorded incorrect
    size of the file.
-   (merge d3c1472 rs/zip-compresssed-size-with-export-subst later to maint).
 
  * "git am $maildir/" applied messages in an unexpected order; sort
    filenames read from the maildir/ in a way that is more likely to
    sort messages in the order the writing MUA meant to, by sorting
    numeric segment in numeric order and non-numeric segment in
    alphabetical order.
-   (merge 18505c3 jk/mailsplit-maildir-muttsort later to maint).
 
  * "git submodule update", when recursed into sub-submodules, did not
    acccumulate the prefix paths.
-   (merge 75bf5e6 we/submodule-update-prefix-output later to maint).