blob: 6195715dc78a26ce9ac452bd64852455fb79137c [file] [log] [blame]
Junio C Hamanoed7f4f62007-05-20 09:09:091GIT v1.5.2 Release Notes
Junio C Hamanof8499812007-04-08 08:31:072========================
3
4Updates since v1.5.1
5--------------------
6
Junio C Hamanoed7f4f62007-05-20 09:09:097* Plumbing level superproject support.
Junio C Hamanoe08c3392007-04-22 07:27:488
9 You can include a subdirectory that has an independent git
Junio C Hamanoed7f4f62007-05-20 09:09:0910 repository in your index and tree objects of your project
11 ("superproject"). This plumbing (i.e. "core") level
12 superproject support explicitly excludes recursive behaviour.
Junio C Hamanoe08c3392007-04-22 07:27:4813
Junio C Hamanoed7f4f62007-05-20 09:09:0914 The "subproject" entries in the index and trees of a superproject
15 are incompatible with older versions of git. Experimenting with
Junio C Hamanoe08c3392007-04-22 07:27:4816 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
Junio C Hamano0430e3a2007-05-15 03:13:1729 with core.autocrlf set), expand and unexpand '$Id$' keyword
Junio C Hamanob63afff2007-05-01 03:05:5530 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
Junio C Hamano91d44c52007-05-09 07:16:0735 understand the earlier mailing list discussion on keyword
Junio C Hamanoed7f4f62007-05-20 09:09:0936 expansion). These conversions apply when checking files in
37 or out, and exporting via git-archive.
Junio C Hamanoe08c3392007-04-22 07:27:4838
39* The packfile format now optionally suports 64-bit index.
40
41 This release supports the "version 2" format of the .idx
42 file. This is automatically enabled when a huge packfile
43 needs more than 32-bit to express offsets of objects in the
Junio C Hamano8638c922007-05-12 20:50:0844 pack.
Junio C Hamanoe08c3392007-04-22 07:27:4845
Junio C Hamanoed7f4f62007-05-20 09:09:0946* Comes with an updated git-gui 0.7.1
Junio C Hamano91d44c52007-05-09 07:16:0747
Junio C Hamanoea5dae62007-05-10 23:25:0848* Updated gitweb:
49
50 - can show combined diff for merges;
51 - uses font size of user's preference, not hardcoded in pixels;
Junio C Hamanoed7f4f62007-05-20 09:09:0952 - can now 'grep';
Junio C Hamanoea5dae62007-05-10 23:25:0853
Junio C Hamanof8499812007-04-08 08:31:0754* New commands and options.
55
56 - "git bisect start" can optionally take a single bad commit and
57 zero or more good commits on the command line.
58
Junio C Hamano28cea6a2007-04-18 04:57:1759 - "git shortlog" can optionally be told to wrap its output.
60
61 - "subtree" merge strategy allows another project to be merged in as
62 your subdirectory.
63
64 - "git format-patch" learned a new --subject-prefix=<string>
65 option, to override the built-in "[PATCH]".
66
Junio C Hamanoe08c3392007-04-22 07:27:4867 - "git add -u" is a quick way to do the first stage of "git
68 commit -a" (i.e. update the index to match the working
69 tree); it obviously does not make a commit.
70
Junio C Hamanob63afff2007-05-01 03:05:5571 - "git clean" honors a new configuration, "clean.requireforce". When
72 set to true, this makes "git clean" a no-op, preventing you
73 from losing files by typing "git clean" when you meant to
74 say "make clean". You can still say "git clean -f" to
75 override this.
76
77 - "git log" family of commands learned --date={local,relative,default}
78 option. --date=relative is synonym to the --relative-date.
79 --date=local gives the timestamp in local timezone.
80
Junio C Hamanof8499812007-04-08 08:31:0781* Updated behavior of existing commands.
82
Junio C Hamanob63afff2007-05-01 03:05:5583 - When $GIT_COMMITTER_EMAIL or $GIT_AUTHOR_EMAIL is not set
84 but $EMAIL is set, the latter is used as a substitute.
85
Junio C Hamanof8499812007-04-08 08:31:0786 - "git diff --stat" shows size of preimage and postimage blobs
87 for binary contents. Earlier it only said "Bin".
88
89 - "git lost-found" shows stuff that are unreachable except
90 from reflogs.
91
92 - "git checkout branch^0" now detaches HEAD at the tip commit
93 on the named branch, instead of just switching to the
94 branch (use "git checkout branch" to switch to the branch,
95 as before).
96
97 - "git bisect next" can be used after giving only a bad commit
98 without giving a good one (this starts bisection half-way to
99 the root commit). We used to refuse to operate without a
100 good and a bad commit.
101
Junio C Hamano28cea6a2007-04-18 04:57:17102 - "git push", when pushing into more than one repository, does
103 not stop at the first error.
104
105 - "git archive" does not insist you to give --format parameter
106 anymore; it defaults to "tar".
107
Junio C Hamanoe08c3392007-04-22 07:27:48108 - "git cvsserver" can use backends other than sqlite.
109
110 - "gitview" (in contrib/ section) learned to better support
111 "git-annotate".
112
Junio C Hamanob63afff2007-05-01 03:05:55113 - "git diff $commit1:$path2 $commit2:$path2" can now report
114 mode changes between the two blobs.
115
Junio C Hamanoe08c3392007-04-22 07:27:48116 - Local "git fetch" from a repository whose object store is
117 one of the alternates (e.g. fetching from the origin in a
118 repository created with "git clone -l -s") avoids
Junio C Hamano8638c922007-05-12 20:50:08119 downloading objects unnecessarily.
Junio C Hamanoe08c3392007-04-22 07:27:48120
Junio C Hamanob63afff2007-05-01 03:05:55121 - "git blame" uses .mailmap to canonicalize the author name
122 just like "git shortlog" does.
123
Junio C Hamano91d44c52007-05-09 07:16:07124 - "git pack-objects" pays attention to pack.depth
125 configuration variable.
126
127 - "git cherry-pick" and "git revert" does not use .msg file in
128 the working tree to prepare commit message; instead it uses
Junio C Hamano8638c922007-05-12 20:50:08129 $GIT_DIR/MERGE_MSG as other commands do.
Junio C Hamano91d44c52007-05-09 07:16:07130
Junio C Hamanof8499812007-04-08 08:31:07131* Builds
132
133 - git-p4import has never been installed; now there is an
134 installation option to do so.
135
136 - gitk and git-gui can be configured out.
137
138 - Generated documentation pages automatically get version
Junio C Hamano8638c922007-05-12 20:50:08139 information from GIT_VERSION.
Junio C Hamanof8499812007-04-08 08:31:07140
141 - Parallel build with "make -j" descending into subdirectory
142 was fixed.
143
144* Performance Tweaks
145
Junio C Hamanob63afff2007-05-01 03:05:55146 - Optimized "git-rev-list --bisect" (hence "git-bisect").
Junio C Hamanof8499812007-04-08 08:31:07147
Junio C Hamanob63afff2007-05-01 03:05:55148 - Optimized "git-add $path" in a large directory, most of
Junio C Hamanof8499812007-04-08 08:31:07149 whose contents are ignored.
150
Junio C Hamanoea5dae62007-05-10 23:25:08151 - Optimized "git-diff-tree" for reduced memory footprint.
152
Junio C Hamanob63afff2007-05-01 03:05:55153 - The recursive merge strategy updated a worktree file that
154 was changed identically in two branches, when one of them
155 renamed it. We do not do that when there is no rename, so
Junio C Hamano8638c922007-05-12 20:50:08156 match that behaviour. This avoids excessive rebuilds.
Junio C Hamanof8499812007-04-08 08:31:07157
Junio C Hamano91d44c52007-05-09 07:16:07158 - The default pack depth has been increased to 50, as the
159 recent addition of delta_base_cache makes deeper delta chains
Junio C Hamano8638c922007-05-12 20:50:08160 much less expensive to access. Depending on the project, it was
161 reported that this reduces the resulting pack file by 10%
162 or so.
Junio C Hamano91d44c52007-05-09 07:16:07163
164
Junio C Hamanof8499812007-04-08 08:31:07165Fixes since v1.5.1
166------------------
167
Junio C Hamanoe08c3392007-04-22 07:27:48168All of the fixes in v1.5.1 maintenance series are included in
169this release, unless otherwise noted.
Junio C Hamano28cea6a2007-04-18 04:57:17170
Junio C Hamanof8499812007-04-08 08:31:07171* Bugfixes
172
173 - Switching branches with "git checkout" refused to work when
174 a path changes from a file to a directory between the
175 current branch and the new branch, in order not to lose
176 possible local changes in the directory that is being turned
177 into a file with the switch. We now allow such a branch
178 switch after making sure that there is no locally modified
179 file nor un-ignored file in the directory. This has not
180 been backported to 1.5.1.x series, as it is rather an
181 intrusive change.
182
Junio C Hamano28cea6a2007-04-18 04:57:17183 - Merging branches that have a file in one and a directory in
184 another at the same path used to get quite confused. We
185 handle such a case a bit more carefully, even though that is
186 still left as a conflict for the user to sort out. This
187 will not be backported to 1.5.1.x series, as it is rather an
188 intrusive change.
189
Junio C Hamanob63afff2007-05-01 03:05:55190 - git-fetch had trouble with a remote with insanely large number
191 of refs.
192
Junio C Hamano91d44c52007-05-09 07:16:07193 - "git clean -d -X" now does not remove non-excluded directories.
194
Junio C Hamanoed7f4f62007-05-20 09:09:09195 - rebasing (without -m) a series that changes a symlink to a directory
196 in the middle of a path confused git-apply greatly and refused to
197 operate.