]> git.ipfire.org Git - thirdparty/git.git/blob - Documentation/RelNotes-1.5.2.txt
gitweb: choose appropriate view for file type if a= parameter missing
[thirdparty/git.git] / Documentation / RelNotes-1.5.2.txt
1 GIT v1.5.2 Release Notes (draft)
2 ========================
3
4 Updates since v1.5.1
5 --------------------
6
7 * Plumbing level subproject support.
8
9 You can include a subdirectory that has an independent git
10 repository in your index and tree objects as a
11 "subproject". This plumbing (i.e. "core") level subproject
12 support explicitly excludes recursive behaviour.
13
14 The "subproject" entries in the index and trees are
15 incompatible with older versions of git. Experimenting with
16 the plumbing level support is encouraged, but be warned that
17 unless everybody in your project updates to this release or
18 later, using this feature would make your project
19 inaccessible by people with older versions of git.
20
21 * Plumbing level gitattributes support.
22
23 The gitattributes mechanism allows you to add 'attributes' to
24 paths in your project, and affect the way certain git
25 operations work. Currently you can influence if a path is
26 considered a binary or text (the former would be treated by
27 'git diff' not to produce textual output; the latter can go
28 through the line endings conversion process in repositories
29 with core.autocrlf set), expand and unexpand '$ident$' keyword
30 with blob object name, specify a custom 3-way merge driver,
31 and specify a custom diff driver. You can also apply
32 arbitrary filter to contents on check-in/check-out codepath
33 but this feature is an extremely sharp-edged razor and needs
34 to be handled with caution (do not use it unless you
35 understand the earlier mailing list discussion on keyword
36 expansion).
37
38 * The packfile format now optionally suports 64-bit index.
39
40 This release supports the "version 2" format of the .idx
41 file. This is automatically enabled when a huge packfile
42 needs more than 32-bit to express offsets of objects in the
43 pack
44
45 * Comes with an updated git-gui 0.7.0
46
47 * New commands and options.
48
49 - "git bisect start" can optionally take a single bad commit and
50 zero or more good commits on the command line.
51
52 - "git shortlog" can optionally be told to wrap its output.
53
54 - "subtree" merge strategy allows another project to be merged in as
55 your subdirectory.
56
57 - "git format-patch" learned a new --subject-prefix=<string>
58 option, to override the built-in "[PATCH]".
59
60 - "git add -u" is a quick way to do the first stage of "git
61 commit -a" (i.e. update the index to match the working
62 tree); it obviously does not make a commit.
63
64 - "git clean" honors a new configuration, "clean.requireforce". When
65 set to true, this makes "git clean" a no-op, preventing you
66 from losing files by typing "git clean" when you meant to
67 say "make clean". You can still say "git clean -f" to
68 override this.
69
70 - "git log" family of commands learned --date={local,relative,default}
71 option. --date=relative is synonym to the --relative-date.
72 --date=local gives the timestamp in local timezone.
73
74 * Updated behavior of existing commands.
75
76 - When $GIT_COMMITTER_EMAIL or $GIT_AUTHOR_EMAIL is not set
77 but $EMAIL is set, the latter is used as a substitute.
78
79 - "git diff --stat" shows size of preimage and postimage blobs
80 for binary contents. Earlier it only said "Bin".
81
82 - "git lost-found" shows stuff that are unreachable except
83 from reflogs.
84
85 - "git checkout branch^0" now detaches HEAD at the tip commit
86 on the named branch, instead of just switching to the
87 branch (use "git checkout branch" to switch to the branch,
88 as before).
89
90 - "git bisect next" can be used after giving only a bad commit
91 without giving a good one (this starts bisection half-way to
92 the root commit). We used to refuse to operate without a
93 good and a bad commit.
94
95 - "git push", when pushing into more than one repository, does
96 not stop at the first error.
97
98 - "git archive" does not insist you to give --format parameter
99 anymore; it defaults to "tar".
100
101 - "git cvsserver" can use backends other than sqlite.
102
103 - "gitview" (in contrib/ section) learned to better support
104 "git-annotate".
105
106 - "git diff $commit1:$path2 $commit2:$path2" can now report
107 mode changes between the two blobs.
108
109 - Local "git fetch" from a repository whose object store is
110 one of the alternates (e.g. fetching from the origin in a
111 repository created with "git clone -l -s") avoids
112 downloading objects unnecessary.
113
114 - "git blame" uses .mailmap to canonicalize the author name
115 just like "git shortlog" does.
116
117 - "git pack-objects" pays attention to pack.depth
118 configuration variable.
119
120 - "git cherry-pick" and "git revert" does not use .msg file in
121 the working tree to prepare commit message; instead it uses
122 $GIT_DIR/MERGE_MSG as other commands.
123
124 * Builds
125
126 - git-p4import has never been installed; now there is an
127 installation option to do so.
128
129 - gitk and git-gui can be configured out.
130
131 - Generated documentation pages automatically get version
132 information from GIT_VERSION
133
134 - Parallel build with "make -j" descending into subdirectory
135 was fixed.
136
137 * Performance Tweaks
138
139 - Optimized "git-rev-list --bisect" (hence "git-bisect").
140
141 - Optimized "git-add $path" in a large directory, most of
142 whose contents are ignored.
143
144 - The recursive merge strategy updated a worktree file that
145 was changed identically in two branches, when one of them
146 renamed it. We do not do that when there is no rename, so
147 match that behaviour.
148
149 - The default pack depth has been increased to 50, as the
150 recent addition of delta_base_cache makes deeper delta chains
151 much less expensive to access.
152
153
154 Fixes since v1.5.1
155 ------------------
156
157 All of the fixes in v1.5.1 maintenance series are included in
158 this release, unless otherwise noted.
159
160 * Bugfixes
161
162 - Switching branches with "git checkout" refused to work when
163 a path changes from a file to a directory between the
164 current branch and the new branch, in order not to lose
165 possible local changes in the directory that is being turned
166 into a file with the switch. We now allow such a branch
167 switch after making sure that there is no locally modified
168 file nor un-ignored file in the directory. This has not
169 been backported to 1.5.1.x series, as it is rather an
170 intrusive change.
171
172 - Merging branches that have a file in one and a directory in
173 another at the same path used to get quite confused. We
174 handle such a case a bit more carefully, even though that is
175 still left as a conflict for the user to sort out. This
176 will not be backported to 1.5.1.x series, as it is rather an
177 intrusive change.
178
179 - git-fetch had trouble with a remote with insanely large number
180 of refs.
181
182 - "git clean -d -X" now does not remove non-excluded directories.
183
184 * Documentation updates
185
186 * Performance Tweaks
187
188 --
189 exec >/var/tmp/1
190 O=v1.5.2-rc2-45-g618e613
191 echo O=`git describe refs/heads/master`
192 git shortlog --no-merges $O..refs/heads/master ^refs/heads/maint