Add a test showing that 'git repack' throws away grafted-away parents
[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 * git-gui updates, including an update to Russian translation, and a
41   fix to an infinite loop when showing an empty diff.
42
43 * gitk updates, including an update to Russian translation and improved Windows
44   support.
45
46 (performance)
47
48 * many uses of lstat(2) in the codepath for "git checkout" have been
49   optimized out.
50
51 (usability, bells and whistles)
52
53 * Boolean configuration variable yes/no can be written as on/off.
54
55 * rsync:/path/to/repo can be used to run git over rsync for local
56   repositories.  It may not be useful in practice; meant primarily for
57   testing.
58
59 * http transport learned to prompt and use password when fetching from or
60   pushing to http://user@host.xz/ URL.
61
62 * (msysgit) progress output that is sent over the sideband protocol can
63   be handled appropriately in Windows console.
64
65 * "--pretty=<style>" option to the log family of commands can now be
66   spelled as "--format=<style>".  In addition, --format=%formatstring
67   is a short-hand for --pretty=tformat:%formatstring.
68
69 * "--oneline" is a synonym for "--pretty=oneline --abbrev-commit".
70
71 * "--graph" to the "git log" family can draw the commit ancestry graph
72   in colors.
73
74 * If you realize that you botched the patch when you are editing hunks
75   with the 'edit' action in git-add -i/-p, you can abort the editor to
76   tell git not to apply it.
77
78 * @{-1} is a new way to refer to the last branch you were on introduced in
79   1.6.2, but the initial implementation did not teach this to a few
80   commands.  Now the syntax works with "branch -m @{-1} newname".
81
82 * git-archive learned --output=<file> option.
83
84 * git-archive takes attributes from the tree being archived; strictly
85   speaking, this is an incompatible behaviour change, but is a good one.
86   Use --worktree-attributes option to allow it to read attributes from
87   the work tree as before (deprecated git-tar tree command always reads
88   attributes from the work tree).
89
90 * git-bisect shows not just the number of remaining commits whose goodness
91   is unknown, but also shows the estimated number of remaining rounds.
92
93 * You can give --date=<format> option to git-blame.
94
95 * "git-branch -r" shows HEAD symref that points at a remote branch in
96   interest of each tracked remote repository.
97
98 * "git-branch -v -v" is a new way to get list of names for branches and the
99   "upstream" branch for them.
100
101 * git-config learned -e option to open an editor to edit the config file
102   directly.
103
104 * git-clone runs post-checkout hook when run without --no-checkout.
105
106 * git-difftool is now part of the officially supported command, primarily
107   maintained by David Aguilar.
108
109 * git-for-each-ref learned a new "upstream" token.
110
111 * git-format-patch can be told to use attachment with a new configuration,
112   format.attach.
113
114 * git-format-patch can be told to produce deep or shallow message threads.
115
116 * git-format-patch can be told to always add sign-off with a configuration
117   variable.
118
119 * git-format-patch learned format.headers configuration to add extra
120   header fields to the output.  This behaviour is similar to the existing
121   --add-header=<header> option of the command.
122
123 * git-format-patch gives human readable names to the attached files, when
124   told to send patches as attachments.
125
126 * git-grep learned to highlight the found substrings in color.
127
128 * git-imap-send learned to work around Thunderbird's inability to easily
129   disable format=flowed with a new configuration, imap.preformattedHTML.
130
131 * git-rebase can be told to rebase the series even if your branch is a
132   descendant of the commit you are rebasing onto with --force-rebase
133   option.
134
135 * git-rebase can be told to report diffstat with the --stat option.
136
137 * Output from git-remote command has been vastly improved.
138
139 * "git remote update --prune $remote" updates from the named remote and
140   then prunes stale tracking branches.
141
142 * git-send-email learned --confirm option to review the Cc: list before
143   sending the messages out.
144
145 (developers)
146
147 * Test scripts can be run under valgrind.
148
149 * Test scripts can be run with installed git.
150
151 * Makefile learned 'coverage' option to run the test suites with
152   coverage tracking enabled.
153
154 * Building the manpages with docbook-xsl between 1.69.1 and 1.71.1 now
155   requires setting DOCBOOK_SUPPRESS_SP to work around a docbook-xsl bug.
156   This workaround used to be enabled by default, but causes problems
157   with newer versions of docbook-xsl.  In addition, there are a few more
158   knobs you can tweak to work around issues with various versions of the
159   docbook-xsl package.  See comments in Documentation/Makefile for details.
160
161 * Support for building and testing a subset of git on a system without a
162   working perl has been improved.
163
164
165 Fixes since v1.6.2
166 ------------------
167
168 All of the fixes in v1.6.2.X maintenance series are included in this
169 release, unless otherwise noted.
170
171 Here are fixes that this release has, but have not been backported to
172 v1.6.2.X series.
173
174 * "git-apply" rejected a patch that swaps two files (i.e. renames A to B
175   and B to A at the same time).  May need to be backported by cherry
176   picking d8c81df and then 7fac0ee).
177
178 * The initial checkout did not read the attributes from the .gitattribute
179   file that is being checked out.
180
181 * git-gc spent excessive amount of time to decide if an object appears
182   in a locally existing pack (if needed, backport by merging 69e020a).