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