Merge branch 'lt/pack-object-memuse'
[git] / Documentation / RelNotes-1.6.3.txt
1 GIT v1.6.3 Release Notes
2 ========================
3
4 With the next major release, "git push" into a branch that is
5 currently checked out will be refused by default.  You can choose
6 what should happen upon such a push by setting the configuration
7 variable receive.denyCurrentBranch in the receiving repository.
8
9 To ease the transition plan, the receiving repository of such a
10 push running this release will issue a big warning when the
11 configuration variable is missing.  Please refer to:
12
13   http://git.or.cz/gitwiki/GitFaq#non-bare
14   http://thread.gmane.org/gmane.comp.version-control.git/107758/focus=108007
15
16 for more details on the reason why this change is needed and the
17 transition plan.
18
19 For a similar reason, "git push $there :$killed" to delete the branch
20 $killed in a remote repository $there, if $killed branch is the current
21 branch pointed at by its HEAD, gets a large warning.  You can choose what
22 should happen upon such a push by setting the configuration variable
23 receive.denyDeleteCurrent in the receiving repository.
24
25 When the user does not tell "git push" what to push, it has always
26 pushed matching refs.  For some people it is unexpected, and a new
27 configuration variable push.default has been introduced to allow
28 changing a different default behaviour.  To advertise the new feature,
29 a big warning is issued if this is not configured and a git push without
30 arguments is attempted.
31
32
33 Updates since v1.6.2
34 --------------------
35
36 (subsystems)
37
38 * various git-svn updates.
39
40 (performance)
41
42 * many uses of lstat(2) in the codepath for "git checkout" have been
43   optimized out.
44
45 * pruning reflog entries that are unreachable from the tip of the ref
46   during "git reflog prune" (hence "git gc") was very inefficient.
47
48 (usability, bells and whistles)
49
50 * rsync:/path/to/repo can be used to run git over rsync for local
51   repositories.  It may not be useful in practice; meant primarily for
52   testing.
53
54 * http transport learned to prompt and use password when fetching from or
55   pushing to http://user@host.xz/ URL.
56
57 * (msysgit) progress output that is sent over the sideband protocol can
58   be handled appropriately in Windows console.
59
60 * "--pretty=<style>" option to the log family of commands can now be
61   spelled as "--format=<style>".  In addition, --format=%formatstring
62   is a short-hand for --pretty=tformat:%formatstring.
63
64 * "--oneline" is a synonym for "--pretty=oneline --abbrev-commit".
65
66 * If you realize that you botched the patch when you are editing hunks
67   with the 'edit' action in git-add -i/-p, you can abort the editor to
68   tell git not to apply it.
69
70 * The number of commits shown in "you are ahead/behind your upstream"
71   messages given by "git checkout" and "git status" used to count merge
72   commits; now it doesn't.
73
74 * @{-1} is a new way to refer to the last branch you were on introduced in
75   1.6.2, but the initial implementation did not teach this to a few
76   commands.  Now the syntax works with "branch -m @{-1} newname".
77
78 * git-archive learned --output=<file> option.
79
80 * git-bisect shows not just the number of remaining commits whose goodness
81   is unknown, but also shows the estimated number of remaining rounds.
82
83 * You can give --date=<format> option to git-blame.
84
85 * "git-branch -r" shows HEAD symref that points at a remote branch in
86   interest of each tracked remote repository.
87
88 * "git-branch -v -v" is a new way to get list of names for branches and the
89   "upstream" branch for them.
90
91 * git-config learned -e option to open an editor to edit the config file
92   directly.
93
94 * git-clone runs post-checkout hook when run without --no-checkout.
95
96 * git-fast-export choked when seeing a tag that does not point at commit.
97
98 * git-for-each-ref learned a new "upstream" token.
99
100 * git-format-patch can be told to use attachment with a new configuration,
101   format.attach.
102
103 * git-format-patch can be told to produce deep or shallow message threads.
104
105 * git-format-patch can be told to always add sign-off with a configuration
106   variable.
107
108 * git-format-patch learned format.headers configuration to add extra
109   header fields to the output.  This behaviour is similar to the existing
110   --add-header=<header> option of the command.
111
112 * git-format-patch gives human readable names to the attached files, when
113   told to send patches as attachments.
114
115 * git-grep learned to highlight the found substrings in color.
116
117 * git-imap-send learned to work around Thunderbird's inability to easily
118   disable format=flowed with a new configuration, imap.preformattedHTML.
119
120 * git-rebase can be told to rebase the series even if your branch is a
121   descendant of the commit you are rebasing onto with --force-rebase
122   option.
123
124 * git-rebase can be told to report diffstat with the --stat option.
125
126 * Output from git-remote command has been vastly improved.
127
128 * "git remote update --prune $remote" updates from the named remote and
129   then prunes stale tracking branches.
130
131 * git-send-email learned --confirm option to review the Cc: list before
132   sending the messages out.
133
134 (developers)
135
136 * Test scripts can be run under valgrind.
137
138 * Test scripts can be run with installed git.
139
140 * Makefile learned 'coverage' option to run the test suites with
141   coverage tracking enabled.
142
143 * Building the manpages with docbook-xsl between 1.69.1 and 1.71.1 now
144   requires setting DOCBOOK_SUPPRESS_SP to work around a docbook-xsl bug.
145   This workaround used to be enabled by default, but causes problems
146   with newer versions of docbook-xsl.  In addition, there are a few more
147   knobs you can tweak to work around issues with various versions of the
148   docbook-xsl package.  See comments in Documentation/Makefile for details.
149
150 Fixes since v1.6.2
151 ------------------
152
153 All of the fixes in v1.6.2.X maintenance series are included in this
154 release, unless otherwise noted.
155
156 Here are fixes that this release has, but have not been backported to
157 v1.6.2.X series.
158
159 * The initial checkout did not read the attributes from the .gitattribute
160   file that is being checked out.
161
162 * "git-checkout <tree-ish> <submodule>" did not update the index entry at
163   the named path; it now does.
164
165 * git-gc spent excessive amount of time to decide if an object appears
166   in a locally existing pack (if needed, backport by merging 69e020a).
167
168 * "git-ls-tree" and "git-diff-tree" used a pathspec correctly when
169   deciding to descend into a subdirectory but they did not match the
170   individual paths correctly.  This caused pathspecs "abc/d ab" to match
171   "abc/0" ("abc/d" made them decide to descend into the directory "abc/",
172   and then "ab" incorrectly matched "abc/0" when it shouldn't).
173
174 * "git-merge-recursive" was broken when a submodule entry was involved in
175   a criss-cross merge situation.
176
177 ---
178 exec >/var/tmp/1
179 O=v1.6.2.3-497-g54a4749
180 echo O=$(git describe master)
181 git shortlog --no-merges $O..master ^maint