summaryrefslogtreecommitdiff
path: root/Documentation/RelNotes/1.7.4.txt
blob: ace061f5fe4d60341fcf7be6bca08cc1fcb27929 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
Git v1.7.4 Release Notes (draft)
================================

Updates since v1.7.3
--------------------

 * The documentation Makefile now assumes by default asciidoc 8 and
   docbook-xsl >= 1.73. If you have older versions, you can set
   ASCIIDOC7 and ASCIIDOC_ROFF, respectively.

 * The option parsers of various commands that create new branch (or
   rename existing ones to a new name) were too loose and users were
   allowed to call a branch with a name that begins with a dash by
   creative abuse of their command line options, which only lead to
   burn themselves.  The name of a branch cannot begin with a dash
   now.

 * System-wide fallback default attributes can be stored in
   /etc/gitattributes; core.attributesfile configuration variable can
   be used to customize the path to this file.

 * The thread structure generated by "git send-email" has changed
   slightly.  Setting the cover letter of the latest series as a reply
   to the cover letter of the previous series with --in-reply-to used
   to make the new cover letter and all the patches replies to the
   cover letter of the previous series; this has been changed to make
   the patches in the new series replies to the new cover letter.

 * Bash completion script in contrib/ has been adjusted to be also
   usable by zsh.

 * Different pagers can be chosen depending on which subcommand is
   being run under the pager, using "pager.<subcommand>" variable.

 * The hardcoded tab-width of 8 used in whitespace breakage checks is now
   configurable via the attributes mechanism.

 * Support of case insensitive filesystems (i.e. "core.ignorecase") has
   been improved.  For example, the gitignore mechanism didn't pay attention
   to the case insensitivity.

 * The <tree>:<path> syntax to name a blob in a tree, and :<path>
   syntax to name a blob in the index (e.g. "master:Makefile",
   ":hello.c") have been extended.  You can start <path> with "./" to
   implicitly have the (sub)directory you are in prefixed to the
   lookup.  Similarly, ":../Makefile" from a subdirectory would mean
   "the Makefile of the parent directory in the index".

 * "git blame" learned --show-email option to display the e-mail
   addresses instead of the names of authors.

 * "git commit" learned --fixup and --squash options to help later invocation
   of the interactive rebase.

 * "git daemon" can be built in MinGW environment.

 * "git daemon" can take more than one --listen option to listen to
   multiple addresses.

 * "git describe --exact-match" was optimized not to read commit
   objects unnecessarily.

 * "git diff" and "git grep" learned how functions and subroutines
   in Fortran look like.

 * "git fetch" learned "--recurse-submodules" option.

 * "git mergetool" tells vim/gvim to show three-way diff by default
   (use vimdiff2/gvimdiff2 as the tool name for old behaviour).

 * "git log -G<pattern>" limits the output to commits whose change has
   added or deleted lines that match the given pattern.

 * "git read-tree" with no argument as a way to empty the index is
   deprecated; we might want to remove it in the future.  Users can
   use the new --empty option to be more explicit instead.

 * "git repack -f" does not spend cycles to recompress objects in the
   non-delta representation anymore (use -F if you really mean it when
   e.g. you changed the compression level).

 * "git merge --log" used to limit the resulting merge log to 20
   entries; this is now customizable by giving e.g. "--log=47".

 * "git merge" may work better when all files were moved out of a
   directory in one branch while a new file is created in place of that
   directory in the other branch.

 * "git rebase --autosquash" can use SHA-1 object names to name which
   commit to fix up (e.g. "fixup! e83c5163").

 * The default "recursive" merge strategy learned --rename-threshold
   option to influence the rename detection, similar to the -M option
   of "git diff".  E.g. "git merge -Xrename-threshold=50% ..." to use
   this.

 * The "recursive" strategy also learned to ignore various whitespace
   changes; the most notable is -Xignore-space-at-eol.

 * "git send-email" learned "--to-cmd", similar to "--cc-cmd", to read
   recipient list from a command output.

 * "git send-email" learned to read and use "To:" from its input files.

 * you can extend "git shell", which is often used on boxes that allow
   git-only login over ssh as login shell, with custom set of
   commands.

 * The current branch name in "git status" output can be colored differently
   from the generic header color by setting "color.status.branch" variable.

 * "git submodule sync" updates metainformation for all submodules,
   not just the ones that have been checked out.

 * gitweb can use custom 'highlight' command with its configuration file.

 * other gitweb updates.


Also contains various documentation updates.


Fixes since v1.7.3
------------------

All of the fixes in v1.7.3.X maintenance series are included in this
release, unless otherwise noted.

 * "git log --author=me --author=her" did not find commits written by
   me or by her; instead it looked for commits written by me and by
   her, which is impossible.

 * "git merge" into an unborn branch removed an untracked file "foo"
   from the working tree when merged branch had "foo" (2caf20c..172b642).

 * "git push --progress" shows progress indicators now.

 * "git repack" places its temporary packs under $GIT_OBJECT_DIRECTORY/pack
   instead of $GIT_OBJECT_DIRECTORY/ to avoid cross directory renames.

 * "git submodule update --recursive --other-flags" passes flags down
   to its subinvocations.

---
exec >/var/tmp/1
O=v1.7.3.4-567-g38a5932
echo O=$(git describe master)
git shortlog --no-merges ^maint ^$O master