1Git v1.7.4 Release Notes (draft) 2================================ 3 4Updates since v1.7.3 5-------------------- 6 7 * The option parsers of various commands that create new branch (or 8 rename existing ones to a new name) were too loose and users were 9 allowed to call a branch with a name that begins with a dash by 10 creative abuse of their command line options, which only lead to 11 burn themselves. The name of a branch cannot begin with a dash 12 now. 13 14 * System-wide fallback default attributes can be stored in 15 /etc/gitattributes; core.attributesfile configuration variable can 16 be used to customize the path to this file. 17 18 * The thread structure generated by "git send-email" has changed 19 slightly. Setting the cover letter of the latest series as a reply 20 to the cover letter of the previous series with --in-reply-to used 21 to make the new cover letter and all the patches replies to the 22 cover letter of the previous series; this has been changed to make 23 the patches in the new series replies to the new cover letter. 24 25 * Bash completion script in contrib/ has been adjusted to be also 26 usable by zsh. 27 28 * "git blame" learned --show-email option to display the e-mail 29 addresses instead of the names of authors. 30 31 * "git daemon" can be built in MinGW environment. 32 33 * "git daemon" can take more than one --listen option to listen to 34 multiple addresses. 35 36 * "git diff" and "git grep" learned how functions and subroutines 37 in Fortran look like. 38 39 * "git mergetool" tells vim/gvim to show three-way diff by default 40 (use vimdiff2/gvimdiff2 as the tool name for old behaviour). 41 42 * "git log -G<pattern>" limits the output to commits whose change has 43 added or deleted lines that match the given pattern. 44 45 * "git read-tree" with no argument as a way to empty the index is 46 deprecated; we might want to remove it in the future. Users can 47 use the new --empty option to be more explicit instead. 48 49 * "git repack -f" does not spend cycles to recompress objects in the 50 non-delta representation anymore (use -F if you really mean it when 51 e.g. you changed the compression level). 52 53 * "git merge --log" used to limit the resulting merge log to 20 54 entries; this is now customizable by giving e.g. "--log=47". 55 56 * "git merge" may work better when all files were moved out of a 57 directory in one branch while a new file is created in place of that 58 directory in the other branch. 59 60 * "git rebase --autosquash" can use SHA-1 object names to name which 61 commit to fix up (e.g. "fixup! e83c5163"). 62 63 * The default "recursive" merge strategy learned --rename-threshold 64 option to influence the rename detection, similar to the -M option 65 of "git diff". E.g. "git merge -Xrename-threshold=50% ..." to use 66 this. 67 68 * The "recursive" strategy also learned to ignore various whitespace 69 changes; the most notable is -Xignore-space-at-eol. 70 71 * "git send-email" learned "--to-cmd", similar to "--cc-cmd", to read 72 recipient list from a command output. 73 74 * "git send-email" learned to read and use "To:" from its input files. 75 76 * you can extend "git shell", which is often used on boxes that allow 77 git-only login over ssh as login shell, with custom set of 78 commands. 79 80 * "git submodule sync" updates metainformation for all submodules, 81 not just the ones that have been checked out. 82 83 * gitweb can use custom 'highlight' command with its configuration file. 84 85 86Also contains various documentation updates. 87 88 89Fixes since v1.7.3 90------------------ 91 92All of the fixes in v1.7.3.X maintenance series are included in this 93release, unless otherwise noted. 94 95 * Smart HTTP transport used to incorrectly retry redirected POST 96 request with GET request (311e2ea006). 97 98 * "git apply" did not correctly handle patches that only change modes 99 if told to apply while stripping leading paths with -p option (aae1f6ac). 100 101 * "git apply" can deal with patches with timezone formatted with a 102 colon between the hours and minutes part (e.g. "-08:00" instead of 103 "-0800"). 104 105 * "git checkout" removed an untracked file "foo" from the working 106 tree when switching to a branch that contains a tracked path 107 "foo/bar". Prevent this, just like the case where the conflicting 108 path were "foo" (c752e7f..7980872d). 109 110 * "git diff --check" reported an incorrect line number for added 111 blank lines at the end of file (8837d335). 112 113 * "git log --author=me --author=her" did not find commits written by 114 me or by her; instead it looked for commits written by me and by 115 her, which is impossible. 116 117 * "git merge" into an unborn branch removed an untracked file "foo" 118 from the working tree when merged branch had "foo" (2caf20c..172b642). 119 120 * "git push --progress" shows progress indicators now. 121 122 * "git repack" places its temporary packs under $GIT_OBJECT_DIRECTORY/pack 123 instead of $GIT_OBJECT_DIRECTORY/ to avoid cross directory renames. 124 125 * "git submodule update --recursive --other-flags" passes flags down 126 to its subinvocations. 127 128--- 129exec >/var/tmp/1 130O=v1.7.3.2-450-g5b9c331 131echo O=$(git describe master) 132git shortlog --no-merges ^maint ^$O master