<commit_before>Git v1.7.2 Release Notes (draft)
================================

Updates since v1.7.1
--------------------

 * The whitespace rules used in "git apply --whitespace" and "git diff"
   gained a new member in the family (tab-in-indent) to help projects with
   policy to indent only with spaces.

 * When working from a subdirectory, by default, git does not look for its
   metadirectory ".git" across filesystems, primarily to help people who
   have invocations of git in their custom PS1 prompts, as being outside
   of a git repository would look for ".git" all the way up to the root
   directory, and NFS mounts are often slow.  DISCOVERY_ACROSS_FILESYSTEM
   environment variable can be used to tell git not to stop at a
   filesystem boundary.

 * "git" wrapper learned "-c name=value" option to override configuration
   variable from the command line.

 * The message from "git am -3" has been improved when conflict
   resolution ended up making the patch a no-op.

 * "git checkout --orphan newbranch" is similar to "-b newbranch" but
   prepares to create a root commit that is not connected to any existing
   commit.

 * "git commit --amend" on a commit with an invalid author-name line that
   lacks the display name didn't work (fb7749e4).

 * "git cvsserver" can be told to use pserver; its password file can be
   stored outside the repository.

 * The output from the textconv filter used by "git diff" can be cached to
   speed up their reuse.

 * "git diff --word-diff=<mode>" extends the existing "--color-words"
   option, making it more useful in color-challenged environments.

 * The regexp to detect function headers used by "git diff" for PHP has
   been enhanced for visibility modifiers (public, protected, etc.) to
   better support PHP5.

 * "diff.noprefix" configuration variable can be used to implicitly
   ask for "diff --no-prefix" behaviour.

 * "git for-each-ref" learned "%(objectname:short)" that gives the object
   name abbreviated.

 * Various options to "git grep" (e.g. --count, --name-only) work better
   with binary files.

 * "git help -w" learned "chrome" and "chromium" browsers.

 * "git log --follow <path>" follows across copies (it used to only follow
   renames).  This may make the processing more expensive.

 * "git ls-files ../out/side/cwd" works now.

 * "git notes prune" learned "-n" (dry-run) and "-v" options, similar to
   what "git prune" has.

 * "git patch-id" can be fed a mbox without getting confused by the
   signature line in the format-patch output.

 * "git remote" learned "set-branches" subcommand.

 * "git revert" learned --strategy option to specify the merge strategy.

 * "git status [-s] --ignored" can be used to list ignored paths.

 * "git status -s -b" shows the current branch in the output.

 * Various "gitweb" enhancements and clean-ups, including syntax
   highlighting, "plackup" support for instaweb, etc.


Fixes since v1.7.1
------------------

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

 * We didn't URL decode "file:///path/to/repo" correctly when path/to/repo
   had percent-encoded characters (638794c, 9d2e942).

 * "git clone/fetch/pull" issued an incorrect error message when a ref and
   a symref that points to the ref were updated at the same time.  This
   obviously would update them to the same value, and should not result in
   an error condition (7223dcaf).

 * "git clone" did not configure remote.origin.url correctly for bare
   clones (df61c889).

 * "git diff --graph" works better with "--color-words" and other options
   (81fa024..4297c0a).

 * "git diff" could show ambiguous abbreviation of blob object names on
   its "index" line (3e5a188).

 * "git merge --log" used to replace the custom message given by "-m" with
   the shortlog, instead of appending to it (tc/merge-m-log).

 * "git reset --hard" started from a wrong directory and a working tree in
   a nonstandard location is in use got confused (560fb6a1).

 * "git show -C -C" and other corner cases lost diff metainfo output
   in 1.7.0 (296c6bb).

--
exec >/var/tmp/1
O=v1.7.1-423-gae391ec
echo O=$(git describe HEAD)
git shortlog --no-merges HEAD ^maint ^$O<commit_msg>Update draft release notes to 1.7.2<commit_after>Git v1.7.2 Release Notes (draft)
================================

Updates since v1.7.1
--------------------

 * core.eol configuration and eol attribute are the new way to control
   the end of line conventions for files in the working tree;
   core.autocrlf overrides it, keeping the traditional behaviour by
   default.

 * The whitespace rules used in "git apply --whitespace" and "git diff"
   gained a new member in the family (tab-in-indent) to help projects with
   policy to indent only with spaces.

 * When working from a subdirectory, by default, git does not look for its
   metadirectory ".git" across filesystems, primarily to help people who
   have invocations of git in their custom PS1 prompts, as being outside
   of a git repository would look for ".git" all the way up to the root
   directory, and NFS mounts are often slow.  DISCOVERY_ACROSS_FILESYSTEM
   environment variable can be used to tell git not to stop at a
   filesystem boundary.

 * Usage help messages generated by parse-options library (i.e. most
   of the Porcelain commands) are sent to the standard output now.

 * ':/<string>' notation to look for a commit now takes regular expression
   and it is not anchored at the beginning of the commit log message
   anymore (this is a backward incompatible change).

 * "git" wrapper learned "-c name=value" option to override configuration
   variable from the command line.

 * Improved portability for various platforms including older SunOS,
   HP-UX 10/11, AIX, Tru64, etc. and platforms with Python 2.4.

 * The message from "git am -3" has been improved when conflict
   resolution ended up making the patch a no-op.

 * "git checkout --orphan newbranch" is similar to "-b newbranch" but
   prepares to create a root commit that is not connected to any existing
   commit.

 * "git cherry-pick" learned to pick a range of commits (e.g. "cherry-pick
   A..B"); this does not have nicer sequencing control "rebase [-i]" has,
   though.

 * "git cvsserver" can be told to use pserver; its password file can be
   stored outside the repository.

 * The output from the textconv filter used by "git diff" can be cached to
   speed up their reuse.

 * "git diff --word-diff=<mode>" extends the existing "--color-words"
   option, making it more useful in color-challenged environments.

 * The regexp to detect function headers used by "git diff" for PHP has
   been enhanced for visibility modifiers (public, protected, etc.) to
   better support PHP5.

 * "diff.noprefix" configuration variable can be used to implicitly
   ask for "diff --no-prefix" behaviour.

 * "git for-each-ref" learned "%(objectname:short)" that gives the object
   name abbreviated.

 * "git format-patch" learned --signature option and format.signature
   configuration variable to customize the e-mail signature used in the
   output.

 * Various options to "git grep" (e.g. --count, --name-only) work better
   with binary files.

 * "git help -w" learned "chrome" and "chromium" browsers.

 * "git log --follow <path>" follows across copies (it used to only follow
   renames).  This may make the processing more expensive.

 * "git log --pretty=format:<template>" specifier learned "% <something>"
   magic that inserts a space only when %<something> expands to a
   non-empty string; this is similar to "%+<something>" magic, but is
   useful in a context to generate a single line output.

 * "git notes prune" learned "-n" (dry-run) and "-v" options, similar to
   what "git prune" has.

 * "git patch-id" can be fed a mbox without getting confused by the
   signature line in the format-patch output.

 * "git remote" learned "set-branches" subcommand.

 * "git revert" learned --strategy option to specify the merge strategy.

 * "git rev-list A..B" learned --ancestry-path option to further limit
   the result to the commits that are on the ancestry chain between A and
   B (i.e. commits that are not descendants of A are excluded).

 * "git status [-s] --ignored" can be used to list ignored paths.

 * "git status -s -b" shows the current branch in the output.

 * Various "gitweb" enhancements and clean-ups, including syntax
   highlighting, "plackup" support for instaweb, .fcgi suffix to run
   it as FastCGI script, etc.


Fixes since v1.7.1
------------------

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

 * We didn't URL decode "file:///path/to/repo" correctly when path/to/repo
   had percent-encoded characters (638794c, 9d2e942).

 * "git commit" did not honor GIT_REFLOG_ACTION environment variable, resulting
   reflog messages for cherry-pick and revert actions to be recorded as "commit".

 * "git clone/fetch/pull" issued an incorrect error message when a ref and
   a symref that points to the ref were updated at the same time.  This
   obviously would update them to the same value, and should not result in
   an error condition (0e71bc3).

 * "git clone" did not configure remote.origin.url correctly for bare
   clones (df61c889).

 * "git diff" inside a tree with many pathnames that have certain
   characters has become very slow in 1.7.0 by mistake (will merge
   e53e6b443 to 'maint').

 * "git diff --graph" works better with "--color-words" and other options
   (81fa024..4297c0a).

 * "git diff" could show ambiguous abbreviation of blob object names on
   its "index" line (3e5a188).

 * "git reset --hard" started from a wrong directory and a working tree in
   a nonstandard location is in use got confused (560fb6a1).

--
exec >/var/tmp/1
O=v1.7.1-568-g2c177a1
echo O=$(git describe HEAD)
git shortlog --no-merges HEAD ^maint ^$O
{'fraction_non_alphanumeric': 0.0923185341789993, 'fraction_numerical': 0.016510621161783954, 'mean_word_length': 3.3531989482909728, 'pattern_counts': {'":': 0, '<': 12, '<?xml version=': 0, '>': 14, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, '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': '4489788', 'n_tokens_mistral': 2955, 'n_tokens_neox': 2745, 'n_words': 1398}