Merge branch 'jc/apply-ignore-whitespace' into maint
[git] / Documentation / RelNotes / 1.7.7.txt
1 Git v1.7.7 Release Notes
2 ========================
3
4 Updates since v1.7.6
5 --------------------
6
7  * The scripting part of the codebase is getting prepared for i18n/l10n.
8
9  * Interix, Cygwin and Minix ports got updated.
10
11  * Various updates to git-p4 (in contrib/), fast-import, and git-svn.
12
13  * Gitweb learned to read from /etc/gitweb-common.conf when it exists,
14    before reading from gitweb_config.perl or from /etc/gitweb.conf
15    (this last one is read only when per-repository gitweb_config.perl
16    does not exist).
17
18  * Various codepaths that invoked zlib deflate/inflate assumed that these
19    functions can compress or uncompress more than 4GB data in one call on
20    platforms with 64-bit long, which has been corrected.
21
22  * Git now recognizes loose objects written by other implementations that
23    use a non-standard window size for zlib deflation (e.g. Agit running on
24    Android with 4kb window). We used to reject anything that was not
25    deflated with 32kb window.
26
27  * Interaction between the use of pager and coloring of the output has
28    been improved, especially when a command that is not built-in was
29    involved.
30
31  * "git am" learned to pass the "--exclude=<path>" option through to underlying
32    "git apply".
33
34  * You can now feed many empty lines before feeding an mbox file to
35    "git am".
36
37  * "git archive" can be told to pass the output to gzip compression and
38    produce "archive.tar.gz".
39
40  * "git bisect" can be used in a bare repository (provided that the test
41    you perform per each iteration does not need a working tree, of
42    course).
43
44  * The length of abbreviated object names in "git branch -v" output
45    now honors the core.abbrev configuration variable.
46
47  * "git check-attr" can take relative paths from the command line.
48
49  * "git check-attr" learned an "--all" option to list the attributes for a
50    given path.
51
52  * "git checkout" (both the code to update the files upon checking out a
53    different branch and the code to checkout a specific set of files) learned
54    to stream the data from object store when possible, without having to
55    read the entire contents of a file into memory first. An earlier round
56    of this code that is not in any released version had a large leak but
57    now it has been plugged.
58
59  * "git clone" can now take a "--config key=value" option to set the
60    repository configuration options that affect the initial checkout.
61
62  * "git commit <paths>..." now lets you feed relative pathspecs that
63    refer to outside your current subdirectory.
64
65  * "git diff --stat" learned a --stat-count option to limit the output of
66    a diffstat report.
67
68  * "git diff" learned a "--histogram" option to use a different diff
69    generation machinery stolen from jgit, which might give better
70    performance.
71
72  * "git diff" had a weird worst case behaviour that can be triggered
73    when comparing files with potentially many places that could match.
74
75  * "git fetch", "git push" and friends no longer show connection
76    errors for addresses that couldn't be connected to when at least one
77    address succeeds (this is arguably a regression but a deliberate
78    one).
79
80  * "git grep" learned "--break" and "--heading" options, to let users mimic
81    the output format of "ack".
82
83  * "git grep" learned a "-W" option that shows wider context using the same
84    logic used by "git diff" to determine the hunk header.
85
86  * Invoking the low-level "git http-fetch" without "-a" option (which
87    git itself never did---normal users should not have to worry about
88    this) is now deprecated.
89
90  * The "--decorate" option to "git log" and its family learned to
91    highlight grafted and replaced commits.
92
93  * "git rebase master topci" no longer spews usage hints after giving
94    the "fatal: no such branch: topci" error message.
95
96  * The recursive merge strategy implementation got a fairly large
97    fix for many corner cases that may rarely happen in real world
98    projects (it has been verified that none of the 16000+ merges in
99    the Linux kernel history back to v2.6.12 is affected with the
100    corner case bugs this update fixes).
101
102  * "git stash" learned an "--include-untracked option".
103
104  * "git submodule update" used to stop at the first error updating a
105    submodule; it now goes on to update other submodules that can be
106    updated, and reports the ones with errors at the end.
107
108  * "git push" can be told with the "--recurse-submodules=check" option to
109    refuse pushing of the supermodule, if any of its submodules'
110    commits hasn't been pushed out to their remotes.
111
112  * "git upload-pack" and "git receive-pack" learned to pretend that only a
113    subset of the refs exist in a repository. This may help a site to
114    put many tiny repositories into one repository (this would not be
115    useful for larger repositories as repacking would be problematic).
116
117  * "git verify-pack" has been rewritten to use the "index-pack" machinery
118    that is more efficient in reading objects in packfiles.
119
120  * test scripts for gitweb tried to run even when CGI-related perl modules
121    are not installed; they now exit early when the latter are unavailable.
122
123 Also contains various documentation updates and minor miscellaneous
124 changes.
125
126
127 Fixes since v1.7.6
128 ------------------
129
130 Unless otherwise noted, all fixes in the 1.7.6.X maintenance track are
131 included in this release.
132
133  * "git branch -m" and "git checkout -b" incorrectly allowed the tip
134    of the branch that is currently checked out updated.