<commit_before>GIT v1.6.5 Release Notes
========================

In git 1.7.0, which is planned to be the release after 1.6.5, "git push"
into a branch that is currently checked out will be refused by default.

You can choose what should happen upon such a push by setting the
configuration variable receive.denyCurrentBranch in the receiving
repository.

Also, "git push $there :$killed" to delete the branch $killed in a remote
repository $there, when $killed branch is the current branch pointed at by
its HEAD, will be refused by default.

You can choose what should happen upon such a push by setting the
configuration variable receive.denyDeleteCurrent in the receiving
repository.

To ease the transition plan, the receiving repository of such a
push running this release will issue a big warning when the
configuration variable is missing.  Please refer to:

  http://git.or.cz/gitwiki/GitFaq#non-bare
  http://thread.gmane.org/gmane.comp.version-control.git/107758/focus=108007

for more details on the reason why this change is needed and the
transition plan.

Updates since v1.6.4
--------------------

(subsystems)

(portability)

(performance)

(usability, bells and whistles)

(developers)

Fixes since v1.6.4
------------------

# All of the fixes in v1.6.4.X maintenance series are included in this
# release, unless otherwise noted.

# Here are fixes that this release has, but have not been backported to
# v1.6.4.X series.


<commit_msg>Draft release notes to 1.6.5 before -rc0<commit_after>GIT v1.6.5 Release Notes
========================

In git 1.7.0, which is planned to be the release after 1.6.5, "git push"
into a branch that is currently checked out will be refused by default.

You can choose what should happen upon such a push by setting the
configuration variable receive.denyCurrentBranch in the receiving
repository.

Also, "git push $there :$killed" to delete the branch $killed in a remote
repository $there, when $killed branch is the current branch pointed at by
its HEAD, will be refused by default.

You can choose what should happen upon such a push by setting the
configuration variable receive.denyDeleteCurrent in the receiving
repository.

To ease the transition plan, the receiving repository of such a
push running this release will issue a big warning when the
configuration variable is missing.  Please refer to:

  http://git.or.cz/gitwiki/GitFaq#non-bare
  http://thread.gmane.org/gmane.comp.version-control.git/107758/focus=108007

for more details on the reason why this change is needed and the
transition plan.

Updates since v1.6.4
--------------------

(subsystems)

 * various updates to git-svn and gitweb.

(portability)

 * more improvements on mingw port.

(performance)

 * On major platforms, the system can be compiled to use with Linus's
   block-sha1 implementation of the SHA-1 hash algorithm, which
   outperforms the default fallback implementation we borrowed from
   Mozzilla.

(usability, bells and whistles)

 * refs/replace/ hierarchy is designed to be usable as a replacement
   of the "grafts" mechanism, with the added advantage that it can be
   transferred across repositories.

 * "git am" learned to optionally ignore whitespace differences.

 * "git am" handles input e-mail files that has CRLF line endings sensibly.

 * "git commit --dry-run $args" is a new recommended way to ask "what would
   happen if I try to commit with these arguments."

 * "git cvsimport" now supports password-protected pserver access.

 * "git fast-export" learned --no-data option that can be useful when
   reordering commits and trees without touching the contents of
   blobs.

 * "git init" learned to mkdir/chdir into a directory when given an
   extra argument (i.e. "git init this").

 * "git instaweb" optionally can use mongoose as the web server.

 * "git log --decorate" can optionally be told with --decorate=full to
   give the reference name in full.

 * "git push" can be told to be --quiet.

 * informational output from "git reset" that lists the locally modified
   paths is made consistent with that of "git checkout $another_branch".

 * "git status" gives more descriptive output for unmerged paths.

 * "git submodule" learned to give submodule name to scripts run with
   "foreach" subcommand.

 * various subcommands to "git submodule" learned --recursive option.

 * "git submodule summary" learned --files option to compare the work
   tree vs the commit bound at submodule path, instead of comparing
   the index.

(developers)

 * With GIT_TEST_OPTS="--root=/p/a/t/h", tests can be run outside the
   source directory; using tmpfs may give faster turnaround.


Fixes since v1.6.4
------------------

# All of the fixes in v1.6.4.X maintenance series are included in this
# release, unless otherwise noted.

# Here are fixes that this release has, but have not been backported to
# v1.6.4.X series.

--
exec >/var/tmp/1
O=v1.6.4.1-266-g235db15
echo O=$(git describe master)
git shortlog --no-merges $O..master --not maint

{'fraction_non_alphanumeric': 0.08895093737534902, 'fraction_numerical': 0.016952532907857996, 'mean_word_length': 3.639222941720629, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 4, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 1, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2208182', 'n_tokens_mistral': 1466, 'n_tokens_neox': 1374, 'n_words': 681}