summaryrefslogtreecommitdiff
path: root/Documentation/RelNotes/1.7.7.txt
blob: ab50377e99c687433662ae129bd33343db323eea (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
Git v1.7.7 Release Notes
========================

Updates since v1.7.6
--------------------

 * The scripting part of the codebase is getting prepared for i18n/l10n.

 * Interix, Cygwin and Minix ports got updated.

 * Various updates git-p4 (in contrib/), fast-import, and git-svn.

 * Gitweb learned to read from /etc/gitweb-common.conf when it exists,
   before reading from gitweb_config.perl or from /etc/gitweb.conf
   (this last one is read only when per-repository gitweb_config.perl
   does not exist).

 * Various codepaths that invoked zlib deflate/inflate assumed that these
   functions can compress or uncompress more than 4GB data in one call on
   platforms with 64-bit long, which has been corrected.

 * Git now recognizes loose objects written by other implementations that
   uses non-standard window size for zlib deflation (e.g. Agit running on
   Android with 4kb window). We used to reject anything that was not
   deflated with 32kb window.

 * Interaction between the use of pager and coloring of the output has
   been improved, especially when a command that is not built-in was
   involved.

 * "git am" learned to pass "--exclude=<path>" option through to underlying
   "git apply".

 * You can now feed many empty lines before feeding a mbox file to
   "git am".

 * "git archive" can be told to pass the output to gzip compression and
   produce "archive.tar.gz".

 * "git bisect" can be used in a bare repository (provided if the test
   you perform per each iteration does not need a working tree, of
   course).

 * The length of abbreviated object names in "git branch -v" output
   now honors core.abbrev configuration variable.

 * "git check-attr" can take relative paths from the command line.

 * "git check-attr" learned "--all" option to list the attributes for a
   given path.

 * "git checkout" (both the code to update the files upon checking out a
   different branch, the code to checkout specific set of files) learned
   to stream the data from object store when possible, without having to
   read the entire contents of a file in memory first. An earlier round
   of this code that is not in any released version had a large leak but
   now it has been plugged.

 * "git clone" can now take "--config key=value" option to set the
   repository configuration options that affect the initial checkout.

 * "git commit <paths>..." now lets you feed relative pathspecs that
   refer outside your current subdirectory.

 * "git diff --stat" learned --stat-count option to limit the output of
   diffstat report.

 * "git diff" learned "--histogram" option, to use a different diff
   generation machinery stolen from jgit, which might give better
   performance.

 * "git diff" had a wierd worst case behaviour that can be triggered
   when comparing files with potentially many places that could match.

 * "git fetch", "git push" and friends no longer show connection
   errors for addresses that couldn't be connected when at least one
   address succeeds (this is arguably a regression but a deliberate
   one).

 * "git grep" learned --break and --heading options, to let users mimic
   output format of "ack".

 * "git grep" learned "-W" option that shows wider context using the same
   logic used by "git diff" to determine the hunk header.

 * Invoking the low-level "git http-fetch" without "-a" option (which
   git itself never did---normal users should not have to worry about
   this) is now deprecated.

 * The "--decorate" option to "git log" and its family learned to
   highlight grafted and replaced commits.

 * "git rebase master topci" no longer spews usage hints after giving
   "fatal: no such branch: topci" error message.

 * The recursive merge strategy implementation got a fairly large
   fixes for many corner cases that may rarely happen in real world
   projects (it has been verified that none of the 16000+ merges in
   the Linux kernel history back to v2.6.12 is affected with the
   corner case bugs this update fixes).

 * "git stash" learned --include-untracked option.

 * "git submodule update" used to stop at the first error updating a
   submodule; it now goes on to update other submodules that can be
   updated, and reports the ones with errors at the end.

 * "git push" can be told with --recurse-submodules=check option to
   refuse pushing of the supermodule, if any of its submodules'
   commits hasn't been pushed out to their remotes.

 * "git upload-pack" and "git receive-pack" learned to pretend only a
   subset of the refs exist in a repository. This may help a site to
   put many tiny repositories into one repository (this would not be
   useful for larger repositories as repacking would be problematic).

 * "git verify-pack" has been rewritten to use the "index-pack" machinery
   that is more efficient in reading objects in packfiles.

 * test scripts for gitweb tried to run even when CGI-related perl modules
   are not installed; it now exits early when they are unavailable.

Also contains various documentation updates and minor miscellaneous
changes.


Fixes since v1.7.6
------------------

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

 * The error reporting logic of "git am" when the command is fed a file
   whose mail-storage format is unknown was fixed.
   (merge dff4b0e gb/maint-am-patch-format-error-message later to 'maint').

 * "git branch --set-upstream @{-1} foo" did not expand @{-1} correctly.
   (merge e9d4f74 mg/branch-set-upstream-previous later to 'maint').

 * "git branch -m" and "git checkout -b" incorrectly allowed the tip
   of the branch that is currently checked out updated.
   (merge 55c4a67 ci/forbid-unwanted-current-branch-update later to 'maint').

 * "git clone" failed to clone locally from a ".git" file that itself
   is not a directory but is a pointer to one.
   (merge 9b0ebc7 nd/maint-clone-gitdir later to 'maint').

 * "git clone" from a local repository that borrows from another
   object store using a relative path in its objects/info/alternates
   file did not adjust the alternates in the resulting repository.
   (merge e6baf4a1 jc/maint-clone-alternates later to 'maint').

 * "git describe --dirty" did not refresh the index before checking the
   state of the working tree files.
   (cherry-pick bb57148 ac/describe-dirty-refresh later to 'maint').

 * "git ls-files ../$path" that is run from a subdirectory reported errors
   incorrectly when there is no such path that matches the given pathspec.
   (merge 0f64bfa cb/maint-ls-files-error-report later to 'maint').

--
exec >/var/tmp/1
echo O=$(git describe master)
O=v1.7.7-rc0-174-ga536a9d
git log --first-parent --oneline $O..master
echo
git shortlog --no-merges ^maint ^$O master