Commit | Line | Data |
---|---|---|
aba170cd | 1 | GIT v1.5.2 Release Notes |
8d1608b8 JH |
2 | ======================== |
3 | ||
4 | Updates since v1.5.1 | |
5 | -------------------- | |
6 | ||
aba170cd | 7 | * Plumbing level superproject support. |
7392b03a JH |
8 | |
9 | You can include a subdirectory that has an independent git | |
aba170cd JH |
10 | 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. | |
7392b03a | 13 | |
aba170cd JH |
14 | The "subproject" entries in the index and trees of a superproject |
15 | are incompatible with older versions of git. Experimenting with | |
7392b03a JH |
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 | |
af9b54bb | 29 | with core.autocrlf set), expand and unexpand '$Id$' keyword |
4c161124 JH |
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 | |
467592ea | 35 | understand the earlier mailing list discussion on keyword |
aba170cd JH |
36 | expansion). These conversions apply when checking files in |
37 | or out, and exporting via git-archive. | |
7392b03a | 38 | |
f70f988b | 39 | * The packfile format now optionally supports 64-bit index. |
7392b03a JH |
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 | |
211fb4fe | 44 | pack. |
7392b03a | 45 | |
aba170cd | 46 | * Comes with an updated git-gui 0.7.1 |
467592ea | 47 | |
843142ad JH |
48 | * Updated gitweb: |
49 | ||
50 | - can show combined diff for merges; | |
51 | - uses font size of user's preference, not hardcoded in pixels; | |
aba170cd | 52 | - can now 'grep'; |
843142ad | 53 | |
8d1608b8 JH |
54 | * 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 | ||
2c7801bd JH |
59 | - "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 | ||
7392b03a JH |
67 | - "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 | ||
4c161124 JH |
71 | - "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 | ||
8d1608b8 JH |
81 | * Updated behavior of existing commands. |
82 | ||
4c161124 JH |
83 | - When $GIT_COMMITTER_EMAIL or $GIT_AUTHOR_EMAIL is not set |
84 | but $EMAIL is set, the latter is used as a substitute. | |
85 | ||
8d1608b8 JH |
86 | - "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 | ||
2c7801bd JH |
102 | - "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 | ||
7392b03a JH |
108 | - "git cvsserver" can use backends other than sqlite. |
109 | ||
110 | - "gitview" (in contrib/ section) learned to better support | |
111 | "git-annotate". | |
112 | ||
4c161124 JH |
113 | - "git diff $commit1:$path2 $commit2:$path2" can now report |
114 | mode changes between the two blobs. | |
115 | ||
7392b03a JH |
116 | - 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 | |
211fb4fe | 119 | downloading objects unnecessarily. |
7392b03a | 120 | |
4c161124 JH |
121 | - "git blame" uses .mailmap to canonicalize the author name |
122 | just like "git shortlog" does. | |
123 | ||
467592ea JH |
124 | - "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 | |
211fb4fe | 129 | $GIT_DIR/MERGE_MSG as other commands do. |
467592ea | 130 | |
8d1608b8 JH |
131 | * 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 | |
211fb4fe | 139 | information from GIT_VERSION. |
8d1608b8 JH |
140 | |
141 | - Parallel build with "make -j" descending into subdirectory | |
142 | was fixed. | |
143 | ||
144 | * Performance Tweaks | |
145 | ||
4c161124 | 146 | - Optimized "git-rev-list --bisect" (hence "git-bisect"). |
8d1608b8 | 147 | |
4c161124 | 148 | - Optimized "git-add $path" in a large directory, most of |
8d1608b8 JH |
149 | whose contents are ignored. |
150 | ||
843142ad JH |
151 | - Optimized "git-diff-tree" for reduced memory footprint. |
152 | ||
4c161124 JH |
153 | - 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 | |
211fb4fe | 156 | match that behaviour. This avoids excessive rebuilds. |
8d1608b8 | 157 | |
467592ea JH |
158 | - The default pack depth has been increased to 50, as the |
159 | recent addition of delta_base_cache makes deeper delta chains | |
211fb4fe JH |
160 | 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. | |
467592ea JH |
163 | |
164 | ||
8d1608b8 JH |
165 | Fixes since v1.5.1 |
166 | ------------------ | |
167 | ||
7392b03a JH |
168 | All of the fixes in v1.5.1 maintenance series are included in |
169 | this release, unless otherwise noted. | |
2c7801bd | 170 | |
8d1608b8 JH |
171 | * 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 | ||
2c7801bd JH |
183 | - 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 | ||
4c161124 JH |
190 | - git-fetch had trouble with a remote with insanely large number |
191 | of refs. | |
192 | ||
467592ea JH |
193 | - "git clean -d -X" now does not remove non-excluded directories. |
194 | ||
aba170cd JH |
195 | - 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. |