[ANNOUNCE] Git v2.8.3

Junio C Hamano gitster at pobox.com
Thu May 19 18:48:49 BST 2016

The latest maintenance release Git v2.8.3 is now available at
the usual places.

The tarballs are found at:


The following public repositories all have a copy of the 'v2.8.3'
tag and the 'maint' branch that the tag points at:

  url = https://kernel.googlesource.com/pub/scm/git/git
  url = git://repo.or.cz/alt-git.git
  url = git://git.sourceforge.jp/gitroot/git-core/git.git
  url = git://git-core.git.sourceforge.net/gitroot/git-core/git-core
  url = https://github.com/gitster/git


Git v2.8.3 Release Notes

Fixes since v2.8.2

 * "git send-email" now uses a more readable timestamps when
   formulating a message ID.

 * The repository set-up sequence has been streamlined (the biggest
   change is that there is no longer git_config_early()), so that we
   do not attempt to look into refs/* when we know we do not have a
   Git repository.

 * When "git worktree" feature is in use, "git branch -d" allowed
   deletion of a branch that is checked out in another worktree

 * When "git worktree" feature is in use, "git branch -m" renamed a
   branch that is checked out in another worktree without adjusting
   the HEAD symbolic ref for the worktree.

 * "git format-patch --help" showed `-s` and `--no-patch` as if these
   are valid options to the command.  We already hide `--patch` option
   from the documentation, because format-patch is about showing the
   diff, and the documentation now hides these options as well.

 * A change back in version 2.7 to "git branch" broke display of a
   symbolic ref in a non-standard place in the refs/ hierarchy (we
   expect symbolic refs to appear in refs/remotes/*/HEAD to point at
   the primary branch the remote has, and as .git/HEAD to point at the
   branch we locally checked out).

 * A partial rewrite of "git submodule" in the 2.7 timeframe changed
   the way the gitdir: pointer in the submodules point at the real
   repository location to use absolute paths by accident.  This has
   been corrected.

 * "git commit" misbehaved in a few minor ways when an empty message
   is given via -m '', all of which has been corrected.

 * Support for CRAM-MD5 authentication method in "git imap-send" did
   not work well.

 * The socks5:// proxy support added back in 2.6.4 days was not aware
   that socks5h:// proxies behave differently.

 * "git config" had a codepath that tried to pass a NULL to
   printf("%s"), which nobody seems to have noticed.

 * On Cygwin, object creation uses the "create a temporary and then
   rename it to the final name" pattern, not "create a temporary,
   hardlink it to the final name and then unlink the temporary"

   This is necessary to use Git on Windows shared directories, and is
   already enabled for the MinGW and plain Windows builds.  It also
   has been used in Cygwin packaged versions of Git for quite a while.
   See http://thread.gmane.org/gmane.comp.version-control.git/291853
   and http://thread.gmane.org/gmane.comp.version-control.git/275680.

 * "git replace -e" did not honour "core.editor" configuration.

 * Upcoming OpenSSL 1.1.0 will break compilation b updating a few APIs
   we use in imap-send, which has been adjusted for the change.

 * "git submodule" reports the paths of submodules the command
   recurses into, but this was incorrect when the command was not run
   from the root level of the superproject.

 * The test scripts for "git p4" (but not "git p4" implementation
   itself) has been updated so that they would work even on a system
   where the installed version of Python is python 3.

 * The "user.useConfigOnly" configuration variable makes it an error
   if users do not explicitly set user.name and user.email.  However,
   its check was not done early enough and allowed another error to
   trigger, reporting that the default value we guessed from the
   system setting was unusable.  This was a suboptimal end-user
   experience as we want the users to set user.name/user.email without
   relying on the auto-detection at all.

 * "git mv old new" did not adjust the path for a submodule that lives
   as a subdirectory inside old/ directory correctly.

 * "git push" from a corrupt repository that attempts to push a large
   number of refs deadlocked; the thread to relay rejection notices
   for these ref updates blocked on writing them to the main thread,
   after the main thread at the receiving end notices that the push
   failed and decides not to read these notices and return a failure.

 * A question by "git send-email" to ask the identity of the sender
   has been updated.

 * Recent update to Git LFS broke "git p4" by changing the output from
   its "lfs pointer" subcommand.

 * Some multi-byte encoding can have a backslash byte as a later part
   of one letter, which would confuse "highlight" filter used in

Also contains minor documentation updates and code clean-ups.


Changes since v2.8.2 are as follows:

Adam Dinwoodie (2):
      config.mak.uname: Cygwin needs OBJECT_CREATION_USES_RENAMES
      commit: --amend -m '' silently fails to wipe message

Christian Couder (3):
      builtin/apply: get rid of useless 'name' variable
      builtin/apply: handle parse_binary() failure
      builtin/apply: free patch when parse_chunk() fails

Eric Sunshine (1):
      git-format-patch.txt: don't show -s as shorthand for multiple options

Eric Wong (4):
      send-email: more meaningful Message-ID
      send-email: do not load Data::Dumper
      pack-objects: warn on split packs disabling bitmaps
      .mailmap: update to my shorter email address

Jeff King (22):
      setup: document check_repository_format()
      wrap shared_repository global in get/set accessors
      lazily load core.sharedrepository
      check_repository_format_gently: stop using git_config_early
      config: drop git_config_early
      setup: refactor repo format reading and verification
      init: use setup.c's repo version verification
      setup: unify repository version callbacks
      setup: drop repository_format_version global
      verify_repository_format: mark messages for translation
      branch: fix shortening of non-remote symrefs
      commit: do not ignore an empty message given by -m ''
      config: lower-case first word of error strings
      git_config_set_multivar_in_file: all non-zero returns are errors
      git_config_set_multivar_in_file: handle "unset" errors
      t5532: use write_script
      send-pack: close demux pipe before finishing async process
      run-command: teach async threads to ignore SIGPIPE
      send-pack: isolate sigpipe in demuxer thread
      fetch-pack: isolate sigpipe in demuxer thread
      t5504: drop sigpipe=ok from push tests
      remote.c: spell __attribute__ correctly

Johannes Schindelin (5):
      replace --edit: respect core.editor
      win32mmap: set errno appropriately
      mmap(win32): avoid copy-on-write when it is unnecessary
      mmap(win32): avoid expensive fstat() call
      Windows: only add a no-op pthread_sigmask() when needed

Johannes Sixt (1):
      Windows: add pthread_sigmask() that does nothing

Junio C Hamano (10):
      apply: remove unused call to free() in gitdiff_{old,new}name()
      submodule--helper: do not borrow absolute_path() result for too long
      setup.c: do not feed NULL to "%.*s" even with precision 0
      http: differentiate socks5:// and socks5h://
      t1020: do not overuse printf and use write_script
      t3404: use write_script
      send-email: fix grammo in the prompt that asks e-mail recipients
      Start preparing for 2.8.3
      Almost ready for 2.8.3
      Git 2.8.3

Kazuki Yamaguchi (10):
      branch -d: refuse deleting a branch which is currently checked out
      refs: add a new function set_worktree_head_symref
      branch -m: update all per-worktree HEADs
      set_worktree_head_symref(): fix error message
      imap-send: use HMAC() function provided by OpenSSL
      imap-send: check NULL return of SSL_CTX_new()
      imap-send: avoid deprecated TLSv1_method()
      configure: remove checking for HMAC_CTX_cleanup
      imap-send: check for NOLOGIN capability only when using LOGIN command
      imap-send: fix CRAM-MD5 response calculation

Lars Schneider (5):
      travis-ci: update Git-LFS and P4 to the latest version
      travis-ci: express Linux/OS X dependency versions more clearly
      git-p4: fix Git LFS pointer parsing
      t9824: fix wrong reference value
      Documentation: add setup instructions for Travis CI

Luke Diamand (3):
      git-p4 tests: cd to / before running python
      git-p4 tests: work with python3 as well as python2
      git-p4 tests: time_in_seconds should use $PYTHON_PATH

Marios Titas (2):
      ident: check for useConfigOnly before auto-detection of name/email
      ident: give "please tell me" message upon useConfigOnly error

Matthieu Moy (1):
      git-multimail: update to release 1.3.0

Nguyễn Thái Ngọc Duy (2):
      dir.c: remove dead function fnmatch_icase()
      wrapper.c: delete dead function git_mkstemps()

Nikola Forró (1):
      difftool/mergetool: make the form of yes/no questions consistent

Ralf Thielow (1):
      string_list: use string-list API in unsorted_string_list_lookup()

René Nyffenegger (1):
      Documentation: fix typo 'In such these cases'

SZEDER Gábor (4):
      for-each-ref: fix description of '--contains' in manpage
      test-lib: simplify '--option=value' parsing
      t9824: fix broken &&-chain in a subshell
      t5510: run auto-gc in the foreground

Shin Kojima (1):
      gitweb: apply fallback encoding before highlight

Stefan Beller (20):
      submodule foreach: correct path display in recursive submodules
      submodule update --init: correct path handling in recursive submodules
      submodule status: correct path handling in recursive submodules
      submodule update: align reporting path for custom command execution
      submodule update: test recursive path reporting from subdirectory
      t7407: make expectation as clear as possible
      recursive submodules: test for relative paths
      submodule--helper: fix potential NULL-dereference
      submodule--helper clone: create the submodule path just once
      notes: don't leak memory in git_config_get_notes_strategy
      abbrev_sha1_in_line: don't leak memory
      bundle: don't leak an fd in case of early return
      credential-cache, send_request: close fd when done
      submodule--helper, module_clone: always operate on absolute paths
      submodule--helper, module_clone: catch fprintf failure
      mv: allow moving nested submodules
      config doc: improve exit code listing
      config.c: drop local variable
      submodule-config: don't shadow `cache`
      t7300: mark test with SANITY

To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo at vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

More information about the git-announce mailing list