Merge branch 'jk/pack-idx-corruption-safety' into maint
[git] / Documentation / RelNotes / 1.6.4.txt
1 GIT v1.6.4 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
26 Updates since v1.6.3
27 --------------------
28
29 (subsystems)
30
31  * gitweb Perl style clean-up.
32
33  * git-svn updates, including a new --authors-prog option to map author
34    names by invoking an external program, 'git svn reset' to unwind
35    'git svn fetch', support for more than one branches, documenting
36    of the useful --minimize-url feature, new "git svn gc" command, etc.
37
38 (portability)
39
40  * We feed iconv with "UTF-8" instead of "utf8"; the former is
41    understood more widely.  Similarly updated test scripts to use
42    encoding names more widely understood (e.g. use "ISO8859-1" instead
43    of "ISO-8859-1").
44
45  * Various portability fixes/workarounds for different vintages of
46    SunOS, IRIX, and Windows.
47
48  * Git-over-ssh transport on Windows supports PuTTY plink and TortoisePlink.
49
50 (performance)
51
52  * Many repeated use of lstat() are optimized out in "checkout" codepath.
53
54  * git-status (and underlying git-diff-index --cached) are optimized
55    to take advantage of cache-tree information in the index.
56
57 (usability, bells and whistles)
58
59  * "git add --edit" lets users edit the whole patch text to fine-tune what
60    is added to the index.
61
62  * "git am" accepts StGIT series file as its input.
63
64  * "git bisect skip" skips to a more randomly chosen place in the hope
65    to avoid testing a commit that is too close to a commit that is
66    already known to be untestable.
67
68  * "git cvsexportcommit" learned -k option to stop CVS keywords expansion
69
70  * "git fast-export" learned to handle history simplification more
71    gracefully.
72
73  * "git fast-export" learned an option --tag-of-filtered-object to handle
74    dangling tags resulting from history simplification more usefully.
75
76  * "git grep" learned -p option to show the location of the match using the
77    same context hunk marker "git diff" uses.
78
79  * https transport can optionally be told that the used client
80    certificate is password protected, in which case it asks the
81    password only once.
82
83  * "git imap-send" is IPv6 aware.
84
85  * "git log --graph" draws graphs more compactly by using horizontal lines
86    when able.
87
88  * "git log --decorate" shows shorter refnames by stripping well-known
89    refs/* prefix.
90
91  * "git push $name" honors remote.$name.pushurl if present before
92    using remote.$name.url.  In other words, the URL used for fetching
93    and pushing can be different.
94
95  * "git send-email" understands quoted aliases in .mailrc files (might
96    have to be backported to 1.6.3.X).
97
98  * "git send-email" can fetch the sender address from the configuration
99    variable "sendmail.from" (and "sendmail.<identity>.from").
100
101  * "git show-branch" can color its output.
102
103  * "add" and "update" subcommands to "git submodule" learned --reference
104    option to use local clone with references.
105
106  * "git submodule update" learned --rebase option to update checked
107    out submodules by rebasing the local changes.
108
109  * "gitweb" can optionally use gravatar to adorn author/committer names.
110
111 (developers)
112
113  * A major part of the "git bisect" wrapper has moved to C.
114
115  * Formatting with the new version of AsciiDoc 8.4.1 is now supported.
116
117 Fixes since v1.6.3
118 ------------------
119
120 All of the fixes in v1.6.3.X maintenance series are included in this
121 release, unless otherwise noted.
122
123 Here are fixes that this release has, but have not been backported to
124 v1.6.3.X series.
125
126  * "git diff-tree -r -t" used to omit new or removed directories from
127    the output.  df533f3 (diff-tree -r -t: include added/removed
128    directories in the output, 2009-06-13) may need to be cherry-picked
129    to backport this fix.
130
131  * The way Git.pm sets up a Repository object was not friendly to callers
132    that chdir around.  It now internally records the repository location
133    as an absolute path when autodetected.
134
135  * Removing a section with "git config --remove-section", when its
136    section header has a variable definition on the same line, lost
137    that variable definition.
138
139  * "git rebase -p --onto" used to always leave side branches of a merge
140    intact, even when both branches are subject to rewriting.
141
142  * "git repack" used to faithfully follow grafts and considered true
143    parents recorded in the commit object unreachable from the commit.
144    After such a repacking, you cannot remove grafts without corrupting
145    the repository.
146
147  * "git send-email" did not detect erroneous loops in alias expansion.