| Git v1.7.4 Release Notes | 
 | ======================== | 
 |  | 
 | Updates since v1.7.3 | 
 | -------------------- | 
 |  | 
 |  * The documentation Makefile now assumes by default asciidoc 8 and | 
 |    docbook-xsl >= 1.73. If you have older versions, you can set | 
 |    ASCIIDOC7 and ASCIIDOC_ROFF, respectively. | 
 |  | 
 |  * The option parsers of various commands that create new branches (or | 
 |    rename existing ones to a new name) were too loose and users were | 
 |    allowed to give a branch a name that begins with a dash by creative | 
 |    abuse of their command line options, which only led to burning | 
 |    themselves.  The name of a branch cannot begin with a dash now. | 
 |  | 
 |  * System-wide fallback default attributes can be stored in | 
 |    /etc/gitattributes; the core.attributesfile configuration variable can | 
 |    be used to customize the path to this file. | 
 |  | 
 |  * The thread structure generated by "git send-email" has changed | 
 |    slightly.  Setting the cover letter of the latest series as a reply | 
 |    to the cover letter of the previous series with --in-reply-to used | 
 |    to make the new cover letter and all the patches replies to the | 
 |    cover letter of the previous series; this has been changed to make | 
 |    the patches in the new series replies to the new cover letter. | 
 |  | 
 |  * The Bash completion script in contrib/ has been adjusted to be usable with | 
 |    Bash 4 (options with '=value' didn't complete).  It has been also made | 
 |    usable with zsh. | 
 |  | 
 |  * Different pagers can be chosen depending on which subcommand is | 
 |    being run under the pager, using the "pager.<subcommand>" variable. | 
 |  | 
 |  * The hardcoded tab-width of 8 that is used in whitespace breakage checks is now | 
 |    configurable via the attributes mechanism. | 
 |  | 
 |  * Support of case insensitive filesystems (i.e. "core.ignorecase") has | 
 |    been improved.  For example, the gitignore mechanism didn't pay attention | 
 |    to case insensitivity. | 
 |  | 
 |  * The <tree>:<path> syntax for naming a blob in a tree, and the :<path> | 
 |    syntax for naming a blob in the index (e.g. "master:Makefile", | 
 |    ":hello.c") have been extended.  You can start <path> with "./" to | 
 |    implicitly have the (sub)directory you are in prefixed to the | 
 |    lookup.  Similarly, ":../Makefile" from a subdirectory would mean | 
 |    "the Makefile of the parent directory in the index". | 
 |  | 
 |  * "git blame" learned the --show-email option to display the e-mail | 
 |    addresses instead of the names of authors. | 
 |  | 
 |  * "git commit" learned the --fixup and --squash options to help later invocation | 
 |    of interactive rebase. | 
 |  | 
 |  * Command line options to "git cvsimport" whose names are in capital | 
 |    letters (-A, -M, -R and -S) can now be specified as the default in | 
 |    the .git/config file by their longer names (cvsimport.authorsFile, | 
 |    cvsimport.mergeRegex, cvsimport.trackRevisions, cvsimport.ignorePaths). | 
 |  | 
 |  * "git daemon" can be built in the MinGW environment. | 
 |  | 
 |  * "git daemon" can take more than one --listen option to listen to | 
 |    multiple addresses. | 
 |  | 
 |  * "git describe --exact-match" was optimized not to read commit | 
 |    objects unnecessarily. | 
 |  | 
 |  * "git diff" and "git grep" learned what functions and subroutines | 
 |    in Fortran, Pascal and Perl look like. | 
 |  | 
 |  * "git fetch" learned the "--recurse-submodules" option. | 
 |  | 
 |  * "git mergetool" tells vim/gvim to show a three-way diff by default | 
 |    (use vimdiff2/gvimdiff2 as the tool name for old behavior). | 
 |  | 
 |  * "git log -G<pattern>" limits the output to commits whose change has | 
 |    added or deleted lines that match the given pattern. | 
 |  | 
 |  * "git read-tree" with no argument as a way to empty the index is | 
 |    deprecated; we might want to remove it in the future.  Users can | 
 |    use the new --empty option to be more explicit instead. | 
 |  | 
 |  * "git repack -f" does not spend cycles to recompress objects in the | 
 |    non-delta representation anymore (use -F if you really mean it | 
 |    e.g. after you changed the core.compression variable setting). | 
 |  | 
 |  * "git merge --log" used to limit the resulting merge log to 20 | 
 |    entries; this is now customizable by giving e.g. "--log=47". | 
 |  | 
 |  * "git merge" may work better when all files were moved out of a | 
 |    directory in one branch while a new file is created in place of that | 
 |    directory in the other branch. | 
 |  | 
 |  * "git merge" learned the "--abort" option, synonymous to | 
 |    "git reset --merge" when a merge is in progress. | 
 |  | 
 |  * "git notes" learned the "merge" subcommand to merge notes refs. | 
 |    In addition to the default manual conflict resolution, there are | 
 |    also several notes merge strategies for automatically resolving | 
 |    notes merge conflicts. | 
 |  | 
 |  * "git rebase --autosquash" can use SHA-1 object names to name the | 
 |    commit which is to be fixed up (e.g. "fixup! e83c5163"). | 
 |  | 
 |  * The default "recursive" merge strategy learned the --rename-threshold | 
 |    option to influence the rename detection, similar to the -M option | 
 |    of "git diff".  From the "git merge" frontend, the "-X<strategy option>" | 
 |    interface, e.g. "git merge -Xrename-threshold=50% ...", can be used | 
 |    to trigger this. | 
 |  | 
 |  * The "recursive" strategy also learned to ignore various whitespace | 
 |    changes; the most notable is -Xignore-space-at-eol. | 
 |  | 
 |  * "git send-email" learned "--to-cmd", similar to "--cc-cmd", to read | 
 |    the recipient list from a command output. | 
 |  | 
 |  * "git send-email" learned to read and use "To:" from its input files. | 
 |  | 
 |  * you can extend "git shell", which is often used on boxes that allow | 
 |    git-only login over ssh as login shell, with a custom set of | 
 |    commands. | 
 |  | 
 |  * The current branch name in "git status" output can be colored differently | 
 |    from the generic header color by setting the "color.status.branch" variable. | 
 |  | 
 |  * "git submodule sync" updates metainformation for all submodules, | 
 |    not just the ones that have been checked out. | 
 |  | 
 |  * gitweb can use a custom 'highlight' command with its configuration file. | 
 |  | 
 |  * other gitweb updates. | 
 |  | 
 |  | 
 | Also contains various documentation updates. | 
 |  | 
 |  | 
 | Fixes since v1.7.3 | 
 | ------------------ | 
 |  | 
 | All of the fixes in the v1.7.3.X maintenance series are included in this | 
 | release, unless otherwise noted. | 
 |  | 
 |  * "git log --author=me --author=her" did not find commits written by | 
 |    me or by her; instead it looked for commits written by me and by | 
 |    her, which is impossible. | 
 |  | 
 |  * "git push --progress" shows progress indicators now. | 
 |  | 
 |  * "git rebase -i" showed a confusing error message when given a | 
 |    branch name that does not exist. | 
 |  | 
 |  * "git repack" places its temporary packs under $GIT_OBJECT_DIRECTORY/pack | 
 |    instead of $GIT_OBJECT_DIRECTORY/ to avoid cross directory renames. | 
 |  | 
 |  * "git submodule update --recursive --other-flags" passes flags down | 
 |    to its subinvocations. |