Re: [ANNOUNCE] Git v1.8.4-rc4

2013-08-19 Thread Kyle J. McKay

On Aug 19, 2013, at 12:59, Junio C Hamano wrote:


Performance, Internal Implementation, etc.

* On Cygwin, we used to use our own lstat(2) emulation that is
  allegedly faster than the platform one in codepaths where some of
  the information it returns did not matter, but it started to bite
  us in a few codepaths where the trick it uses to cheat does show
  breakages. This emulation has been removed and we use the native
  lstat(2) emulation supplied by Cygwin now.

* The function attributes extensions are used to catch mistakes in
  use of our own variadic functions that use NULL sentinel at the end
  (i.e. like execl(3)) and format strings (i.e. like printf(3)).

* The code to allow configuration data to be read from in-tree blob
  objects is in.  This may help working in a bare repository and
  submodule updates.

* 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
  years ago, breaking that feature and leaving the supporting code
  unreachable.  The dead code has been removed.

* "git pack-refs" that races with new ref creation or deletion have
  been susceptible to lossage of refs under right conditions, which
  has been tightened up.

* We read loose and packed rerferences in two steps, but after

^^

  deciding to read a loose ref but before actually opening it to read


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


[ANNOUNCE] Git v1.8.4-rc4

2013-08-19 Thread Junio C Hamano
A release candidate Git v1.8.4-rc4 is now available for testing
at the usual places.

The only changes since -rc3 are reversion of two topics that
introduced regressions.  Hopefully the final at the end of this week
and then we will start the next cycle, most likely to be for 1.8.5.

This is a bit delayed than I planned early last week, but sometimes
real life happens.

The release tarballs are found at:

http://code.google.com/p/git-core/downloads/list

and their SHA-1 checksums are:

f390da8ea032c92c673d4cc6c4d8818379db344d  git-1.8.4.rc4.tar.gz
90a9df6b2ada9a0ab9c8711e03d77244e7310c1e  git-htmldocs-1.8.4.rc4.tar.gz
4e6ed2c0307ba538257bdc9f233dd574b419f411  git-manpages-1.8.4.rc4.tar.gz

The following public repositories all have a copy of the v1.8.4-rc4
tag and the master branch that the tag points at:

  url = https://kernel.googlesource.com/pub/scm/git/git
  url = git://repo.or.cz/alt-git.git
  url = https://code.google.com/p/git-core/
  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 v1.8.4 Release Notes (draft)


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:

 - only the current branch to the branch with the same name, and only
   when the current branch is set to integrate with that remote
   branch, if you are pushing to the same remote as you fetch from; or

 - only the current branch to the branch with the same name, if you
   are pushing to a remote that is not where you usually fetch from.

Use the 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 the variable 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") is run inside a subdirectory and
does not specify which paths to add on the command line, it
will operate on the entire tree in Git 2.0 for consistency
with "git commit -a" and other commands.  There will be no
mechanism to make plain "git add -u" behave like "git add -u .".
Current users of "git add -u" (without a pathspec) should start
training their fingers to explicitly say "git add -u ."
before Git 2.0 comes.  A warning is issued when these commands are
run without a pathspec and when you have local changes outside the
current directory, because the behaviour in Git 2.0 will be different
from today's version in such a situation.

In Git 2.0, "git add " will behave as "git add -A ", so
that "git add dir/" will notice paths you removed from the directory
and record the removal.  Versions before Git 2.0, including this
release, will keep ignoring removals, but the users who rely on this
behaviour are encouraged to start using "git add --ignore-removal "
now before 2.0 is released.


Updates since v1.8.3


Foreign interfaces, subsystems and ports.

 * Cygwin port has been updated for more recent Cygwin 1.7.

 * "git rebase -i" now honors --strategy and -X options.

 * Git-gui has been updated to its 0.18.0 version.

 * MediaWiki remote helper (in contrib/) has been updated to use the
   credential helper interface from Git.pm.

 * Update build for Cygwin 1.[57].  Torsten Bögershausen reports that
   this is fine with Cygwin 1.7 ($gmane/225824) so let's try moving it
   ahead.

 * The credential helper to talk to keychain on OS X (in contrib/) has
   been updated to kick in not just when talking http/https but also
   imap(s) and smtp.

 * Remote transport helper has been updated to report errors and
   maintain ref hierarchy used to keep track of its own state better.

 * With "export" remote-helper protocol, (1) a push that tries to
   update a remote ref whose name is different from the pushing side
   does not work yet, and (2) the helper may not know how to do
   --dry-run; these problematic cases are disabled for now.

 * git-remote-hg/bzr (in contrib/) updates.

 * git-remote-mw (in contrib/) hints users to check the certificate,
   when https:// connection failed.

 * git-remote-mw (in contrib/) adds a command to allow previewing the
   contents locally before pushing it out, when working with a
   MediaWiki remote.


UI, Workflows & Features

 * Sample "post-receive-email" hook script got an enhanced replacement
   "multimail" (in contrib/).

 * Also in contrib/ is a new "contacts" script that runs "git blame"
   to find out the people who may be interested in a set of changes.

 * "git clean" command learned an interactive mode.

 * The "--head" op