Git v1.8.3 Release Notes
========================

Backward compatibility notes (for Git 2.0)
------------------------------------------

When "git push [$there]" does not say what to push, we have used the
traditional "matching" semantics so far (all your branches were sent
to the remote as long as there already are branches of the same name
over there).  In Git 2.0, the default will change to the "simple"
semantics that pushes the current branch to the branch with the same
name, only when the current branch is set to integrate with that
remote branch.  There is a user preference configuration variable
"push.default" to change this.  If you are an old-timer who is used
to the "matching" semantics, you can set it to "matching" to keep the
traditional behaviour.  If you want to live in the future early,
you can set it to "simple" today without waiting for Git 2.0.

When "git add -u" and "git add -A", that does not specify what paths
to add on the command line is run from inside a subdirectory, these
commands will operate on the entire tree in Git 2.0 for consistency
with "git commit -a" and other commands. Because there will be no
mechanism to make "git add -u" behave as if "git add -u .", it is
important for those who are used to "git add -u" (without pathspec)
updating the index only for paths in the current subdirectory to start
training their fingers to explicitly say "git add -u ." when they mean
it before Git 2.0 comes.


Updates since v1.8.2
--------------------

UI, Workflows & Features

 * When the interactive access to git-shell is not enabled, it issues
   a message meant to help the system admininstrator to enable it.
   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
   when it takes too long.

 * "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.

 * "git count-objects -v" learned to report leftover temporary
   packfiles and other garbage in the object store.

 * A new read-only credential helper (in contrib/) to interact with
   the .netrc/.authinfo files has been added.

 * "git send-email" can be used with the credential helper system.

 * There was no Porcelain way to say "I no longer am interested in
   this submodule", once you express your interest in a submodule with
   "submodule init".  "submodule deinit" is the way to do so.

 * "git pull --rebase" learned to pass "-v/-q" options to underlying
   "git rebase".

 * The new "--follow-tags" option tells "git push" to push relevant
   annotated tags when pushing branches out.


Foreign Interface



Performance, Internal Implementation, etc.

 * Updates for building under msvc.

 * A few codepaths knew how much data they need to put in the
   hashtables they use upfront, but still started from a small table
   repeatedly growing and rehashing.


Also contains minor documentation updates and code clean-ups.


Fixes since v1.8.2
------------------

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).

 * 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.
   (merge bbd8486 pw/p4-symlinked-root later to maint).

 * "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.

 * The arguments given to pre-rebase hook were not documented.

 * The v4 index format was not documented.

 * The "--match=<pattern>" argument "git describe" takes uses glob
   pattern but it wasn't obvious from the documentation.

 * Some sources failed to compile on systems that lack NI_MAXHOST in
   their system header (e.g. z/OS).

 * Add an example use of "--env-filter" in "filter-branch"
   documentation.

 * "git bundle verify" did not say "records a complete history" for a
   bundle that does not have any prerequisites.

 * In the v1.8.0 era, we changed symbols that do not have to be global
   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).
