b736d398cd9647212a4f2c9514e2d5a8fa3a51d7
[git/git.git] / Documentation / RelNotes / 1.7.4.txt
1 Git v1.7.4 Release Notes (draft)
2 ================================
3
4 Updates 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 branch (or
12 rename existing ones to a new name) were too loose and users were
13 allowed to call a branch with a name that begins with a dash by
14 creative abuse of their command line options, which only lead to
15 burn themselves. The name of a branch cannot begin with a dash
16 now.
17
18 * System-wide fallback default attributes can be stored in
19 /etc/gitattributes; core.attributesfile configuration variable can
20 be used to customize the path to this file.
21
22 * The thread structure generated by "git send-email" has changed
23 slightly. Setting the cover letter of the latest series as a reply
24 to the cover letter of the previous series with --in-reply-to used
25 to make the new cover letter and all the patches replies to the
26 cover letter of the previous series; this has been changed to make
27 the patches in the new series replies to the new cover letter.
28
29 * Bash completion script in contrib/ has been adjusted to be usable with
30 Bash 4 (options with '=value' didn't complete) It has been also made
31 usable with zsh.
32
33 * Different pagers can be chosen depending on which subcommand is
34 being run under the pager, using "pager.<subcommand>" variable.
35
36 * The hardcoded tab-width of 8 used in whitespace breakage checks is now
37 configurable via the attributes mechanism.
38
39 * Support of case insensitive filesystems (i.e. "core.ignorecase") has
40 been improved. For example, the gitignore mechanism didn't pay attention
41 to the case insensitivity.
42
43 * The <tree>:<path> syntax to name a blob in a tree, and :<path>
44 syntax to name a blob in the index (e.g. "master:Makefile",
45 ":hello.c") have been extended. You can start <path> with "./" to
46 implicitly have the (sub)directory you are in prefixed to the
47 lookup. Similarly, ":../Makefile" from a subdirectory would mean
48 "the Makefile of the parent directory in the index".
49
50 * "git blame" learned --show-email option to display the e-mail
51 addresses instead of the names of authors.
52
53 * "git commit" learned --fixup and --squash options to help later invocation
54 of the interactive rebase.
55
56 * "git daemon" can be built in MinGW environment.
57
58 * "git daemon" can take more than one --listen option to listen to
59 multiple addresses.
60
61 * "git describe --exact-match" was optimized not to read commit
62 objects unnecessarily.
63
64 * "git diff" and "git grep" learned how functions and subroutines
65 in Fortran look like.
66
67 * "git fetch" learned "--recurse-submodules" option.
68
69 * "git mergetool" tells vim/gvim to show three-way diff by default
70 (use vimdiff2/gvimdiff2 as the tool name for old behaviour).
71
72 * "git log -G<pattern>" limits the output to commits whose change has
73 added or deleted lines that match the given pattern.
74
75 * "git read-tree" with no argument as a way to empty the index is
76 deprecated; we might want to remove it in the future. Users can
77 use the new --empty option to be more explicit instead.
78
79 * "git repack -f" does not spend cycles to recompress objects in the
80 non-delta representation anymore (use -F if you really mean it
81 e.g. after you changed the core.compression variable setting).
82
83 * "git merge --log" used to limit the resulting merge log to 20
84 entries; this is now customizable by giving e.g. "--log=47".
85
86 * "git merge" may work better when all files were moved out of a
87 directory in one branch while a new file is created in place of that
88 directory in the other branch.
89
90 * "git rebase --autosquash" can use SHA-1 object names to name which
91 commit to fix up (e.g. "fixup! e83c5163").
92
93 * The default "recursive" merge strategy learned --rename-threshold
94 option to influence the rename detection, similar to the -M option
95 of "git diff". From "git merge" frontend, "-X<strategy option>"
96 interface, e.g. "git merge -Xrename-threshold=50% ...", can be used
97 to trigger this.
98
99 * The "recursive" strategy also learned to ignore various whitespace
100 changes; the most notable is -Xignore-space-at-eol.
101
102 * "git send-email" learned "--to-cmd", similar to "--cc-cmd", to read
103 recipient list from a command output.
104
105 * "git send-email" learned to read and use "To:" from its input files.
106
107 * you can extend "git shell", which is often used on boxes that allow
108 git-only login over ssh as login shell, with custom set of
109 commands.
110
111 * The current branch name in "git status" output can be colored differently
112 from the generic header color by setting "color.status.branch" variable.
113
114 * "git submodule sync" updates metainformation for all submodules,
115 not just the ones that have been checked out.
116
117 * gitweb can use custom 'highlight' command with its configuration file.
118
119 * other gitweb updates.
120
121
122 Also contains various documentation updates.
123
124
125 Fixes since v1.7.3
126 ------------------
127
128 All of the fixes in v1.7.3.X maintenance series are included in this
129 release, unless otherwise noted.
130
131 * "git log --author=me --author=her" did not find commits written by
132 me or by her; instead it looked for commits written by me and by
133 her, which is impossible.
134
135 * "git push --progress" shows progress indicators now.
136
137 * "git repack" places its temporary packs under $GIT_OBJECT_DIRECTORY/pack
138 instead of $GIT_OBJECT_DIRECTORY/ to avoid cross directory renames.
139
140 * "git submodule update --recursive --other-flags" passes flags down
141 to its subinvocations.
142
143 ---
144 exec >/var/tmp/1
145 O=v1.7.3.4-687-g2cd900f
146 echo O=$(git describe master)
147 git shortlog --no-merges ^maint ^$O master