RelNotes/1.7.4: minor fixes
[git/jnareb-git.git] / Documentation / RelNotes / 1.7.4.txt
blob48dd9640d3e0264224b92801f38b9dca00b004b6
1 Git v1.7.4 Release Notes (draft)
2 ================================
4 Updates since v1.7.3
5 --------------------
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
30    usable with zsh.
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
63    multiple addresses.
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 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 rebase --autosquash" can use SHA-1 object names to name the
95    commit which is to be fixed up (e.g. "fixup! e83c5163").
97  * The default "recursive" merge strategy learned the --rename-threshold
98    option to influence the rename detection, similar to the -M option
99    of "git diff".  From the "git merge" frontend, the "-X<strategy option>"
100    interface, e.g. "git merge -Xrename-threshold=50% ...", can be used
101    to trigger this.
103  * The "recursive" strategy also learned to ignore various whitespace
104    changes; the most notable is -Xignore-space-at-eol.
106  * "git send-email" learned "--to-cmd", similar to "--cc-cmd", to read
107    the recipient list from a command output.
109  * "git send-email" learned to read and use "To:" from its input files.
111  * you can extend "git shell", which is often used on boxes that allow
112    git-only login over ssh as login shell, with a custom set of
113    commands.
115  * The current branch name in "git status" output can be colored differently
116    from the generic header color by setting the "color.status.branch" variable.
118  * "git submodule sync" updates metainformation for all submodules,
119    not just the ones that have been checked out.
121  * gitweb can use a custom 'highlight' command with its configuration file.
123  * other gitweb updates.
126 Also contains various documentation updates.
129 Fixes since v1.7.3
130 ------------------
132 All of the fixes in the v1.7.3.X maintenance series are included in this
133 release, unless otherwise noted.
135  * "git log --author=me --author=her" did not find commits written by
136    me or by her; instead it looked for commits written by me and by
137    her, which is impossible.
139  * "git push --progress" shows progress indicators now.
141  * "git repack" places its temporary packs under $GIT_OBJECT_DIRECTORY/pack
142    instead of $GIT_OBJECT_DIRECTORY/ to avoid cross directory renames.
144  * "git submodule update --recursive --other-flags" passes flags down
145    to its subinvocations.
148 exec >/var/tmp/1
149 O=v1.7.4-rc1
150 echo O=$(git describe master)
151 git shortlog --no-merges ^maint ^$O master