summaryrefslogtreecommitdiff
path: root/Documentation/RelNotes/1.7.8.txt
blob: 0576c36f8a3e0dd30944285d8c4c68040b999bf0 (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
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
Git v1.7.8 Release Notes (draft)
================================

Updates since v1.7.7
--------------------

 * Some git-svn and git-gui updates.

 * Updates to bash completion scripts.

 * The build procedure has been taught to take advantage of computed
   dependency automatically when the complier supports it.

 * The date parser now accepts timezone designators that lack minutes
   part and also has a colon between "hh:mm".

 * On some BSD systems, adding +s bit on directories is detrimental
   (it is not necessary on BSD to begin with). The installation
   procedure has been updated to take this into account.

 * The contents of the /etc/mailname file, if exists, is used as the
   default value of the hostname part of the committer/author e-mail.

 * "git am" learned how to read from patches generated by Hg.

 * "git archive" talking with a remote repository can report errors
   from the remote side in a more informative way.

 * "git branch" learned an explicit --list option to ask for branches
   listed, optionally with a glob matching pattern to limit its output.

 * "git check-attr" learned "--cached" option to look at .gitattributes
   files from the index, not from the working tree.

 * Variants of "git cherry-pick" and "git revert" that take multiple
   commits learned to "--continue".

 * Errors at the network layer is logged by "git daemon".

 * "git diff" learned "--minimal" option to spend extra cycles to come
   up with a minimal patch output.

 * "git fetch" learned to honor transfer.fsckobjects configuration to
   validate the objects that were received from the other end, just like
   "git receive-pack" (the receiving end of "git push") does.

 * "git fetch" makes sure that the set of objects it received from the
   other end actually completes the history before updating the refs.
   "git receive-pack" (the receiving end of "git push") learned to do the
   same.

 * "git for-each-ref" learned "%(contents:subject)", "%(contents:body)"
   and "%(contents:signature)". The last one is useful for signed tags.

 * "git grep" used to incorrectly pay attention to .gitignore files
   scattered in the directory it was working in even when "--no-index"
   option was used. It no longer does this. The "--exclude-standard"
   option needs to be given to explicitly activate the ignore
   mechanism.

 * "git grep" learned "--untracked" option, where given patterns are
    searched in untracked (but not ignored) files as well as tracked
    files in the working tree, so that matches in new but not yet
    added files do not get missed.

 * "git ls-remote" learned to respond to "-h"(elp) requests.

 * "git send-email" learned to respond to "-h"(elp) requests.

 * "git send-email" allows the value given to sendemail.aliasfile to begin
   with "~/" to refer to the $HOME directory.

 * "git send-email" forces use of Authen::SASL::Perl to work around
   issues between Authen::SASL::Cyrus and AUTH PLAIN/LOGIN.

 * "git stash" learned "--include-untracked" option to stash away
   untracked/ignored cruft from the working tree.

 * "git submodule update" learned to honor "none" as the value for
   submodule.<name>.update to specify that the named submodule should
   not be checked out by default.

 * When populating a new submodule directory with "git submodule init",
   the $GIT_DIR metainformation directory for submodules is created inside
   $GIT_DIR/modules/<name>/ directory of the superproject and referenced
   via the gitfile mechanism. This is to make it possible to switch
   between commits in the superproject that has and does not have the
   submodule in the tree without re-cloning.

 * "mediawiki" remote helper can interact with (surprise!) MediaWiki
   with "git fetch" & "git push".

 * "gitweb" leaked unescaped control characters from syntax hiliter
   outputs.


Also contains other documentation updates and minor code cleanups.


Fixes since v1.7.7
------------------

Unless otherwise noted, all fixes in the 1.7.7.X maintenance track are
included in this release.

 * We used to drop error messages from libcurl on certain kinds of
   errors.
   (merge be22d92eac8 jn/maint-http-error-message later to maint).

 * Error report from smart HTTP transport, when the connection was
   broken in the middle of a transfer, showed a useless message on
   a corrupt packet.
   (merge 6cdf022 sp/smart-http-failure later to maint).

 * HTTP transport did not use pushurl correctly, and also did not tell
   what host it is trying to authenticate with when asking for
   credentials.
   (merge deba493 jk/http-auth later to maint).

 * Adding many refs to the local repository in one go (e.g. "git fetch"
   that fetches many tags) and looking up a ref by name in a repository
   with too many refs were unnecessarily slow.
   (merge 17d68a54d jp/get-ref-dir-unsorted later to maint).

 * After incorrectly written third-party tools store a tag object in
   HEAD, git diagnosed it as a repository corruption and refused to
   proceed in order to avoid spreading the damage. We now gracefully
   recover from such a situation by pretending as if the commit that
   is pointed at by the tag were in HEAD.
   (merge baf18fc nd/maint-autofix-tag-in-head later to maint).

 * Report from "git commit" on untracked files was confused under
   core.ignorecase option.
   (merge 2548183b jk/name-hash-dirent later to maint).

 * The attribute mechanism did not use case insensitive match when
   core.ignorecase was set.
   (merge 6eba621 bc/attr-ignore-case later to maint).

 * "git apply --whitespace=error" did not bother to report the exact
   line number in the patch that introduced new blank lines at the end
   of the file.
   (merge 8557263 jc/apply-blank-at-eof-fix later to maint).

 * "git bisect" did not notice when it failed to update the working tree
   to the next commit to be tested.
   (merge 1acf11717 js/bisect-no-checkout later to maint).

 * "git checkout $tree $directory/" resurrected paths locally removed or
   modified only in the working tree in $directory/ that did not appear
   in $directory of the given $tree. They should have been kept intact.
   (merge 0a1283b jc/checkout-from-tree-keep-local-changes later to maint).

 * "git config --bool --get-regexp" failed to separate the variable name
   and its value "true" when the variable is defined without "= true".
   (merge 880e3cc mm/maint-config-explicit-bool-display later to maint).

 * "git remote rename $a $b" were not careful to match the remote name
   against $a (i.e. source side of the remote nickname).
   (merge b52d00aed mz/remote-rename later to maint).

 * "git diff --[num]stat" used to use the number of lines of context
   different from the default, potentially giving different results from
   "git diff | diffstat" and confusing the users.
   (merge f01cae918 jc/maint-diffstat-numstat-context later to maint).

 * "git merge" did not understand ":/<pattern>" as a way to name a commit.

 * "git mergetool" learned to use its arguments as pathspec, not a path to
   the file that may not even have any conflict.
   (merge 6d9990a jm/mergetool-pathspec later to maint).

 * "git pull" and "git rebase" did not work well even when GIT_WORK_TREE is
   set correctly with GIT_DIR if the current directory is outside the working
   tree.
   (merge 035b5bf jk/pull-rebase-with-work-tree later to maint).

 " "git push" on the receiving end used to call post-receive and post-update
   hooks for attempted removal of non-existing refs.
   (merge 160b81ed ph/push-to-delete-nothing later to maint).

 * "gitweb" used to produce a non-working link while showing the contents
   of a blob, when JavaScript actions are enabled.
   (merge 2b07ff3ff ps/gitweb-js-with-lineno later to maint).

---
exec >/var/tmp/1
O=v1.7.7-368-g9638384
echo O=$(git describe --always master)
git log --first-parent --oneline --reverse ^$O master
echo
git shortlog --no-merges ^$O master