]>
Commit | Line | Data |
---|---|---|
2ebc02d3 JH |
1 | GIT v1.6.1 Release Notes |
2 | ======================== | |
3 | ||
4 | Updates since v1.6.0 | |
5 | -------------------- | |
6 | ||
ea3594e0 JH |
7 | When some commands (e.g. "git log", "git diff") spawn pager internally, we |
8 | used to make the pager the parent process of the git command that produces | |
9 | output. This meant that the exit status of the whole thing comes from the | |
10 | pager, not the underlying git command. We swapped the order of the | |
11 | processes around and you will see the exit code from the command from now | |
12 | on. | |
13 | ||
2ebc02d3 JH |
14 | (subsystems) |
15 | ||
ec3a4ba5 JH |
16 | * gitk can call out to git-gui to view "git blame" output; git-gui in turn |
17 | can run gitk from its blame view. | |
2ebc02d3 | 18 | |
67faaaba JH |
19 | * Various git-gui updates including updated translations. |
20 | ||
21 | * Various gitweb updates from repo.or.cz installation. | |
2ebc02d3 | 22 | |
3273ebc7 JH |
23 | * Updates to emacs bindings. |
24 | ||
67faaaba | 25 | (portability) |
2ebc02d3 | 26 | |
67faaaba JH |
27 | * A few test scripts used nonportable "grep" that did not work well on |
28 | some platforms, e.g. Solaris. | |
2ebc02d3 | 29 | |
67faaaba | 30 | * Sample pre-auto-gc script has OS X support. |
2ebc02d3 | 31 | |
e599e7ff JH |
32 | * Makefile has support for (ancient) FreeBSD 4.9. |
33 | ||
2ebc02d3 JH |
34 | (performance) |
35 | ||
3273ebc7 JH |
36 | * Many operations that are lstat(3) heavy can be told to pre-execute |
37 | necessary lstat(3) in parallel before their main operations, which | |
38 | potentially gives much improved performance for cold-cache cases or in | |
39 | environments with weak metadata caching (e.g. NFS). | |
40 | ||
ea3594e0 JH |
41 | * The underlying diff machinery to produce textual output has been |
42 | optimized, which would result in faster "git blame" processing. | |
2ebc02d3 | 43 | |
1b23adad JH |
44 | * Most of the test scripts (but not the ones that try to run servers) |
45 | can be run in parallel. | |
46 | ||
fe33b333 JH |
47 | * Bash completion of refnames in a repository with massive number of |
48 | refs has been optimized. | |
49 | ||
67faaaba JH |
50 | * Cygwin port uses native stat/lstat implementations when applicable, |
51 | which leads to improved performance. | |
52 | ||
53 | * "git push" pays attention to alternate repositories to avoid sending | |
54 | unnecessary objects. | |
55 | ||
56 | * "git svn" can rebuild an out-of-date rev_map file. | |
57 | ||
2ebc02d3 JH |
58 | (usability, bells and whistles) |
59 | ||
fe33b333 JH |
60 | * When you mistype a command name, git helpfully suggests what it guesses |
61 | you might have meant to say. help.autocorrect configuration can be set | |
62 | to a non-zero value to accept the suggestion when git can uniquely | |
63 | guess. | |
64 | ||
76bac890 | 65 | * The packfile machinery hopefully is more robust when dealing with |
e599e7ff | 66 | corrupt packs if redundant objects involved in the corruption are |
76bac890 | 67 | available elsewhere. |
e599e7ff | 68 | |
67faaaba JH |
69 | * "git add -N path..." adds the named paths as an empty blob, so that |
70 | subsequent "git diff" will show a diff as if they are creation events. | |
71 | ||
2dd62028 | 72 | * "git add" gained a built-in synonym for people who want to say "stage |
0516cc5c | 73 | changes" instead of "add contents to the staging area" which amounts |
2dd62028 JH |
74 | to the same thing. |
75 | ||
67faaaba JH |
76 | * "git apply" learned --include=paths option, similar to the existing |
77 | --exclude=paths option. | |
78 | ||
fe33b333 JH |
79 | * "git bisect" is careful about a user mistake and suggests testing of |
80 | merge base first when good is not a strict ancestor of bad. | |
81 | ||
2dd62028 JH |
82 | * "git bisect skip" can take a range of commits. |
83 | ||
9f8f1326 JH |
84 | * "git blame" re-encodes the commit metainfo to UTF-8 from i18n.commitEncoding |
85 | by default. | |
86 | ||
6a509a6f JH |
87 | * "git check-attr --stdin" can check attributes for multiple paths. |
88 | ||
ea3594e0 JH |
89 | * "git checkout --track origin/hack" used to be a syntax error. It now |
90 | DWIMs to create a corresponding local branch "hack", i.e. acts as if you | |
91 | said "git checkout --track -b hack origin/hack". | |
2ebc02d3 | 92 | |
67faaaba JH |
93 | * "git checkout --ours/--theirs" can be used to check out one side of a |
94 | conflicting merge during conflict resolution. | |
95 | ||
96 | * "git checkout -m" can be used to recreate the initial conflicted state | |
97 | during conflict resolution. | |
98 | ||
1b23adad JH |
99 | * "git cherry-pick" can also utilize rerere for conflict resolution. |
100 | ||
6a509a6f JH |
101 | * "git clone" learned to be verbose with -v |
102 | ||
1b23adad JH |
103 | * "git commit --author=$name" can look up author name from existing |
104 | commits. | |
105 | ||
3041b98a JH |
106 | * output from "git commit" has been reworded in a more concise and yet |
107 | more informative way. | |
108 | ||
1b23adad JH |
109 | * "git count-objects" reports the on-disk footprint for packfiles and |
110 | their corresponding idx files. | |
111 | ||
112 | * "git daemon" learned --max-connections=<count> option. | |
113 | ||
6a509a6f JH |
114 | * "git daemon" exports REMOTE_ADDR to record client address, so that |
115 | spawned programs can act differently on it. | |
116 | ||
117 | * "git describe --tags" favours closer lightweight tags than farther | |
118 | annotated tags now. | |
119 | ||
79fd4cc7 | 120 | * "git diff" learned to mimic --suppress-blank-empty from GNU diff via a |
ea3594e0 | 121 | configuration option. |
2ebc02d3 | 122 | |
67faaaba JH |
123 | * "git diff" learned to put more sensible hunk headers for Python, |
124 | HTML and ObjC contents. | |
1b23adad | 125 | |
fe33b333 JH |
126 | * "git diff" learned to vary the a/ vs b/ prefix depending on what are |
127 | being compared, controlled by diff.mnemonicprefix configuration. | |
128 | ||
67faaaba JH |
129 | * "git diff" learned --dirstat-by-file to count changed files, not number |
130 | of lines, when summarizing the global picture. | |
131 | ||
e599e7ff JH |
132 | * "git diff" learned "textconv" filters --- a binary or hard-to-read |
133 | contents can be munged into human readable form and the difference | |
134 | between the results of the conversion can be viewed (obviously this | |
135 | cannot produce a patch that can be applied, so this is disabled in | |
136 | format-patch among other things). | |
137 | ||
e599e7ff JH |
138 | * "--cached" option to "git diff has an easier to remember synonym "--staged", |
139 | to ask "what is the difference between the given commit and the | |
140 | contents staged in the index?" | |
141 | ||
fe33b333 JH |
142 | * "git for-each-ref" learned "refname:short" token that gives an |
143 | unambiguously abbreviated refname. | |
144 | ||
6a509a6f JH |
145 | * Auto-numbering of the subject lines is the default for "git |
146 | format-patch" now. | |
147 | ||
67faaaba JH |
148 | * "git grep" learned to accept -z similar to GNU grep. |
149 | ||
1b23adad JH |
150 | * "git help" learned to use GIT_MAN_VIEWER environment variable before |
151 | using "man" program. | |
152 | ||
ea3594e0 JH |
153 | * "git imap-send" can optionally talk SSL. |
154 | ||
1b23adad JH |
155 | * "git index-pack" is more careful against disk corruption while |
156 | completing a thin pack. | |
157 | ||
158 | * "git log --check" and "git log --exit-code" passes their underlying diff | |
159 | status with their exit status code. | |
160 | ||
161 | * "git log" learned --simplify-merges, a milder variant of --full-history; | |
162 | "gitk --simplify-merges" is easier to view than with --full-history. | |
163 | ||
e599e7ff JH |
164 | * "git log" learned "--source" to show what ref each commit was reached |
165 | from. | |
166 | ||
76bac890 | 167 | * "git log" also learned "--simplify-by-decoration" to show the |
e599e7ff JH |
168 | birds-eye-view of the topology of the history. |
169 | ||
fe33b333 JH |
170 | * "git log --pretty=format:" learned "%d" format element that inserts |
171 | names of tags that point at the commit. | |
172 | ||
1b23adad JH |
173 | * "git merge --squash" and "git merge --no-ff" into an unborn branch are |
174 | noticed as user errors. | |
175 | ||
176 | * "git merge -s $strategy" can use a custom built strategy if you have a | |
177 | command "git-merge-$strategy" on your $PATH. | |
178 | ||
3273ebc7 JH |
179 | * "git pull" (and "git fetch") can be told to operate "-v"erbosely or |
180 | "-q"uietly. | |
181 | ||
9f8f1326 JH |
182 | * "git push" can be told to reject deletion of refs with receive.denyDeletes |
183 | configuration. | |
184 | ||
6a509a6f JH |
185 | * "git rebase" honours pre-rebase hook; use --no-verify to bypass it. |
186 | ||
187 | * "git rebase -p" uses interactive rebase machinery now to preserve the merges. | |
188 | ||
1b23adad JH |
189 | * "git reflog expire branch" can be used in place of "git reflog expire |
190 | refs/heads/branch". | |
191 | ||
6a509a6f JH |
192 | * "git remote show $remote" lists remote branches one-per-line now. |
193 | ||
3273ebc7 JH |
194 | * "git send-email" can be given revision range instead of files and |
195 | maildirs on the command line, and automatically runs format-patch to | |
196 | generate patches for the given revision range. | |
197 | ||
1b23adad JH |
198 | * "git submodule foreach" subcommand allows you to iterate over checked |
199 | out submodules. | |
200 | ||
201 | * "git submodule sync" subcommands allows you to update the origin URL | |
202 | recorded in submodule directories from the toplevel .gitmodules file. | |
203 | ||
67faaaba JH |
204 | * "git svn branch" can create new branches on the other end. |
205 | ||
9f8f1326 JH |
206 | * "gitweb" can use more saner PATH_INFO based URL. |
207 | ||
ea3594e0 | 208 | (internal) |
2ebc02d3 | 209 | |
ea3594e0 JH |
210 | * "git hash-object" learned to lie about the path being hashed, so that |
211 | correct gitattributes processing can be done while hashing contents | |
212 | stored in a temporary file. | |
2ebc02d3 | 213 | |
67faaaba JH |
214 | * various callers of git-merge-recursive avoid forking it as an external |
215 | process. | |
216 | ||
9f8f1326 JH |
217 | * Git class defined in "Git.pm" can be subclasses a bit more easily. |
218 | ||
6331adb9 JH |
219 | * We used to link GNU regex library as a compatibility layer for some |
220 | platforms, but it turns out it is not necessary on most of them. | |
221 | ||
222 | * Some path handling routines used fixed number of buffers used alternately | |
223 | but depending on the call depth, this arrangement led to hard to track | |
224 | bugs. This issue is being addressed. | |
225 | ||
67faaaba | 226 | |
2ebc02d3 JH |
227 | Fixes since v1.6.0 |
228 | ------------------ | |
229 | ||
230 | All of the fixes in v1.6.0.X maintenance series are included in this | |
231 | release, unless otherwise noted. | |
232 | ||
779e3a8f JH |
233 | * Porcelains implemented as shell scripts were utterly confused when you |
234 | entered to a subdirectory of a work tree from sideways, following a | |
235 | symbolic link (this may need to be backported to older releases later). | |
236 | ||
237 | * Tracking symbolic links would work better on filesystems whose lstat() | |
238 | returns incorrect st_size value for them. | |
239 | ||
1b23adad JH |
240 | * "git add" and "git update-index" incorrectly allowed adding S/F when S |
241 | is a tracked symlink that points at a directory D that has a path F in | |
242 | it (we still need to fix a similar nonsense when S is a submodule and F | |
243 | is a path in it). | |
244 | ||
2dd62028 JH |
245 | * "git am" after stopping at a broken patch lost --whitespace, -C, -p and |
246 | --3way options given from the command line initially. | |
247 | ||
1b23adad | 248 | * "git diff --stdin" used to take two trees on a line and compared them, |
79fd4cc7 | 249 | but we dropped support for such a use case long time ago. This has |
1b23adad JH |
250 | been resurrected. |
251 | ||
252 | * "git filter-branch" failed to rewrite a tag name with slashes in it. | |
253 | ||
779e3a8f JH |
254 | * "git http-push" did not understand URI scheme other than opaquelocktoken |
255 | when acquiring a lock from the server (this may need to be backported to | |
256 | older releases later). | |
257 | ||
8104ebfe JH |
258 | * After "git rebase -p" stopped with conflicts while replaying a merge, |
259 | "git rebase --continue" did not work (may need to be backported to older | |
260 | releases). | |
261 | ||
779e3a8f JH |
262 | * "git revert" records relative to which parent a revert was made when |
263 | reverting a merge. Together with new documentation that explains issues | |
264 | around reverting a merge and merging from the updated branch later, this | |
265 | hopefully will reduce user confusion (this may need to be backported to | |
266 | older releases later). | |
267 | ||
2dd62028 JH |
268 | * "git rm --cached" used to allow an empty blob that was added earlier to |
269 | be removed without --force, even when the file in the work tree has | |
270 | since been modified. | |
271 | ||
1b23adad JH |
272 | * "git push --tags --all $there" failed with generic usage message without |
273 | telling saying these two options are incompatible. | |
274 | ||
ec3a4ba5 JH |
275 | * "git log --author/--committer" match used to potentially match the |
276 | timestamp part, exposing internal implementation detail. Also these did | |
277 | not work with --fixed-strings match at all. | |
278 | ||
2dd62028 JH |
279 | * "gitweb" did not mark non-ASCII characters imported from external HTML fragments |
280 | correctly. |