1Git v1.7.4 Release Notes 2======================== 3 4Updates since v1.7.3 5-------------------- 6 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. 10 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. 16 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. 20 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. 27 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 30 usable with zsh. 31 32 * Different pagers can be chosen depending on which subcommand is 33 being run under the pager, using the "pager.<subcommand>" variable. 34 35 * The hardcoded tab-width of 8 that is used in whitespace breakage checks is now 36 configurable via the attributes mechanism. 37 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. 41 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". 48 49 * "git blame" learned the --show-email option to display the e-mail 50 addresses instead of the names of authors. 51 52 * "git commit" learned the --fixup and --squash options to help later invocation 53 of interactive rebase. 54 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). 59 60 * "git daemon" can be built in the MinGW environment. 61 62 * "git daemon" can take more than one --listen option to listen to 63 multiple addresses. 64 65 * "git describe --exact-match" was optimized not to read commit 66 objects unnecessarily. 67 68 * "git diff" and "git grep" learned what functions and subroutines 69 in Fortran, Pascal and Perl look like. 70 71 * "git fetch" learned the "--recurse-submodules" option. 72 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). 75 76 * "git log -G<pattern>" limits the output to commits whose change has 77 added or deleted lines that match the given pattern. 78 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. 82 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). 86 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". 89 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. 93 94 * "git merge" learned the "--abort" option, synonymous to 95 "git reset --merge" when a merge is in progress. 96 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. 101 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"). 104 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 109 to trigger this. 110 111 * The "recursive" strategy also learned to ignore various whitespace 112 changes; the most notable is -Xignore-space-at-eol. 113 114 * "git send-email" learned "--to-cmd", similar to "--cc-cmd", to read 115 the recipient list from a command output. 116 117 * "git send-email" learned to read and use "To:" from its input files. 118 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 121 commands. 122 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. 125 126 * "git submodule sync" updates metainformation for all submodules, 127 not just the ones that have been checked out. 128 129 * gitweb can use a custom 'highlight' command with its configuration file. 130 131 * other gitweb updates. 132 133 134Also contains various documentation updates. 135 136 137Fixes since v1.7.3 138------------------ 139 140All of the fixes in the v1.7.3.X maintenance series are included in this 141release, unless otherwise noted. 142 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. 146 147 * "git push --progress" shows progress indicators now. 148 149 * "git rebase -i" showed a confusing error message when given a 150 branch name that does not exist. 151 152 * "git repack" places its temporary packs under $GIT_OBJECT_DIRECTORY/pack 153 instead of $GIT_OBJECT_DIRECTORY/ to avoid cross directory renames. 154 155 * "git submodule update --recursive --other-flags" passes flags down 156 to its subinvocations.