]>
Commit | Line | Data |
---|---|---|
de8d9570 JH |
1 | GIT v1.6.0 Release Notes |
2 | ======================== | |
3 | ||
4 | User visible changes | |
5 | -------------------- | |
6 | ||
0e047bd1 | 7 | With the default Makefile settings, most of the programs are now |
71b9979b | 8 | installed outside your $PATH, except for "git", "gitk" and |
0e047bd1 JH |
9 | some server side programs that need to be accessible for technical |
10 | reasons. Invoking a git subcommand as "git-xyzzy" from the command | |
11 | line has been deprecated since early 2006 (and officially announced in | |
12 | 1.5.4 release notes); use of them from your scripts after adding | |
13 | output from "git --exec-path" to the $PATH is still supported in this | |
14 | release, but users are again strongly encouraged to adjust their | |
15 | scripts to use "git xyzzy" form, as we will stop installing | |
16 | "git-xyzzy" hardlinks for built-in commands in later releases. | |
de8d9570 | 17 | |
8e1db387 JH |
18 | An earlier change to page "git status" output was overwhelmingly unpopular |
19 | and has been reverted. | |
20 | ||
de8d9570 JH |
21 | Source changes needed for porting to MinGW environment are now all in the |
22 | main git.git codebase. | |
23 | ||
e903b409 JH |
24 | By default, packfiles created with this version uses delta-base-offset |
25 | encoding introduced in v1.4.4. Pack idx files are using version 2 that | |
26 | allows larger packs and added robustness thanks to its CRC checking, | |
1b76ead0 PB |
27 | introduced in v1.5.2 and v1.4.4.5. If you want to keep your repositories |
28 | backwards compatible past these versions, set repack.useDeltaBaseOffset | |
29 | to false or pack.indexVersion to 1, respectively. | |
e903b409 | 30 | |
dc871831 DB |
31 | GIT_CONFIG, which was only documented as affecting "git config", but |
32 | actually affected all git commands, now only affects "git config". | |
33 | GIT_LOCAL_CONFIG, also only documented as affecting "git config" and | |
34 | not different from GIT_CONFIG in a useful way, is removed. | |
35 | ||
57cbf72e JH |
36 | The ".dotest" temporary area "git am" and "git rebase" use is now moved |
37 | inside the $GIT_DIR, to avoid mistakes of adding it to the project by | |
38 | accident. | |
39 | ||
92371226 JH |
40 | An ancient merge strategy "stupid" has been removed. |
41 | ||
de8d9570 JH |
42 | |
43 | Updates since v1.5.6 | |
44 | -------------------- | |
45 | ||
46 | (subsystems) | |
47 | ||
0e047bd1 JH |
48 | * git-p4 in contrib learned "allowSubmit" configuration to control on |
49 | which branch to allow "submit" subcommand. | |
50 | ||
92371226 JH |
51 | * git-gui learned to stage changes per-line. |
52 | ||
de8d9570 JH |
53 | (portability) |
54 | ||
92371226 JH |
55 | * Changes for MinGW port have been merged, thanks to Johannes Sixt and |
56 | gangs. | |
57 | ||
de8d9570 JH |
58 | * Sample hook scripts shipped in templates/ are now suffixed with |
59 | *.sample. We used to prevent them from triggering by default by | |
60 | relying on the fact that we install them as unexecutable, but on | |
61 | some filesystems this approach does not work. Instead of running | |
62 | "chmod +x" on them, the users who want to activate these samples | |
63 | as-is can now rename them dropping *.sample suffix. | |
64 | ||
65 | * perl's in-place edit (-i) does not work well without backup files on Windows; | |
66 | some tests are rewritten to cope with this. | |
67 | ||
68 | (documentation) | |
69 | ||
70 | * Updated howto/update-hook-example | |
71 | ||
92371226 JH |
72 | * Got rid of usage of "git-foo" from the tutorial and made typography |
73 | more consistent. | |
0e047bd1 JH |
74 | |
75 | * Disambiguating "--" between revs and paths is finally documented. | |
76 | ||
77 | (performance, robustness, sanity etc.) | |
78 | ||
57cbf72e JH |
79 | * index-pack used too much memory when dealing with a deep delta chain. |
80 | This has been optimized. | |
de8d9570 JH |
81 | |
82 | * reduced excessive inlining to shrink size of the "git" binary. | |
83 | ||
84 | * verify-pack checks the object CRC when using version 2 idx files. | |
85 | ||
86 | * When an object is corrupt in a pack, the object became unusable even | |
87 | when the same object is available in a loose form, We now try harder to | |
88 | fall back to these redundant objects when able. In particular, "git | |
89 | repack -a -f" can be used to fix such a corruption as long as necessary | |
90 | objects are available. | |
91 | ||
57cbf72e JH |
92 | * Performance of "git-blame -C -C" operation is vastly improved. |
93 | ||
de8d9570 JH |
94 | * git-clone does not create refs in loose form anymore (it behaves as |
95 | if you immediately ran git-pack-refs after cloning). This will help | |
96 | repositories with insanely large number of refs. | |
97 | ||
98 | * core.fsyncobjectfiles configuration can be used to ensure that the loose | |
99 | objects created will be fsync'ed (this is only useful on filesystems | |
100 | that does not order data writes properly). | |
101 | ||
0e047bd1 JH |
102 | * "git commit-tree" plumbing can make Octopus with more than 16 parents. |
103 | "git commit" has been capable of this for quite some time. | |
104 | ||
de8d9570 JH |
105 | (usability, bells and whistles) |
106 | ||
57cbf72e JH |
107 | * even more documentation pages are now accessible via "man" and "git help". |
108 | ||
92371226 JH |
109 | * A new environment variable GIT_CEILING_DIRECTORIES can be used to stop |
110 | the discovery process of the toplevel of working tree; this may be useful | |
111 | when you are working in a slow network disk and are outside any working tree, | |
112 | as bash-completion and "git help" may still need to run in these places. | |
113 | ||
dc6282d2 JH |
114 | * By default, stash entries never expire. Set reflogexpire in [gc |
115 | "refs/stash"] to a reasonable value to get traditional auto-expiration | |
116 | behaviour back | |
117 | ||
118 | * Longstanding latency issue with bash completion script has been | |
119 | addressed. This will need to be backmerged to 'maint' later. | |
120 | ||
121 | * pager.<cmd> configuration variable can be used to enable/disable the | |
122 | default paging behaviour per command. | |
123 | ||
124 | * "git-add -i" has a new action 'e/dit' to allow you edit the patch hunk | |
125 | manually. | |
126 | ||
6c11a5fd JH |
127 | * git-am records the original tip of the branch in ORIG_HEAD before it |
128 | starts applying patches. | |
129 | ||
e903b409 JH |
130 | * git-apply can handle a patch that touches the same path more than once |
131 | much better than before. | |
132 | ||
133 | * git-apply can be told not to trust the line counts recorded in the input | |
134 | patch but recount, with the new --recount option. | |
135 | ||
dc6282d2 JH |
136 | * git-apply can be told to apply a patch to a path deeper than what the |
137 | patch records with --directory option. | |
138 | ||
de8d9570 JH |
139 | * git-archive can be told to omit certain paths from its output using |
140 | export-ignore attributes. | |
141 | ||
09651dd8 JH |
142 | * git-archive uses the zlib default compression level when creating |
143 | zip archive. | |
144 | ||
1fdf6ee6 JH |
145 | * git-archive's command line options --exec and --remote can take their |
146 | parameters as separate command line arguments, similar to other commands. | |
147 | IOW, both "--exec=path" and "--exec path" are now supported. | |
148 | ||
dc6282d2 JH |
149 | * With -v option, git-branch describes the remote tracking statistics |
150 | similar to the way git-checkout reports by how many commits your branch | |
151 | is ahead/behind. | |
152 | ||
6c11a5fd JH |
153 | * git-branch's --contains option used to always require a commit parameter |
154 | to limit the branches with; it now defaults to list branches that | |
155 | contains HEAD if this parameter is omitted. | |
156 | ||
157 | * git-branch's --merged and --no-merged option used to always limit the | |
158 | branches relative to the HEAD, but they can now take an optional commit | |
159 | argument that is used in place of HEAD. | |
160 | ||
dc6282d2 JH |
161 | * git-bundle can read the revision arguments from the standard input. |
162 | ||
163 | * git-cherry-pick can replay a root commit now. | |
164 | ||
e903b409 JH |
165 | * git-clone can clone from a remote whose URL would be rewritten by |
166 | configuration stored in $HOME/.gitconfig now. | |
167 | ||
1fdf6ee6 JH |
168 | * "git-clone --mirror" is a handy way to set up a bare mirror repository. |
169 | ||
09651dd8 JH |
170 | * git-cvsserver learned to respond to "cvs co -c". |
171 | ||
e903b409 JH |
172 | * git-diff --check now checks leftover merge conflict markers. |
173 | ||
1fdf6ee6 JH |
174 | * "git-diff -p" learned to grab a better hunk header lines in |
175 | Pascal/Delphi and Ruby source files, and also pays attention to | |
176 | chapter and part boundary in TeX documents. | |
177 | ||
e903b409 JH |
178 | * When remote side used to have branch 'foo' and git-fetch finds that now |
179 | it has branch 'foo/bar', it refuses to lose the existing remote tracking | |
180 | branch and its reflog. The error message has been improved to suggest | |
181 | pruning the remote if the user wants to proceed and get the latest set | |
182 | of branches from the remote, including such 'foo/bar'. | |
183 | ||
de8d9570 JH |
184 | * fast-export learned to export and import marks file; this can be used to |
185 | interface with fast-import incrementally. | |
186 | ||
09651dd8 JH |
187 | * fast-import and fast-export learned to export and import gitlinks. |
188 | ||
71b9979b | 189 | * "gitk" left background process behind after being asked to dig very deep |
1fdf6ee6 JH |
190 | history and the user killed the UI; the process is killed when the UI goes |
191 | away now. | |
192 | ||
6c11a5fd JH |
193 | * git-rebase records the original tip of branch in ORIG_HEAD before it is |
194 | rewound. | |
195 | ||
92371226 JH |
196 | * "git rerere" can be told to update the index with auto-reused resolution |
197 | with rerere.autoupdate configuration variable. | |
de8d9570 | 198 | |
8e1db387 JH |
199 | * git-rev-parse learned $commit^! and $commit^@ notations used in "log" |
200 | family. These notations are available in gitk as well, because the gitk | |
201 | command internally uses rev-parse to interpret its arguments. | |
202 | ||
dc6282d2 | 203 | * git-rev-list learned --children option to show child commits it |
1168d402 | 204 | encountered during the traversal, instead of showing parent commits. |
dc6282d2 | 205 | |
e903b409 JH |
206 | * git-send-mail can talk not just over SSL but over TLS now. |
207 | ||
6c11a5fd JH |
208 | * git-shortlog honors custom output format specified with "--pretty=format:". |
209 | ||
dc6282d2 JH |
210 | * "git-stash save" learned --keep-index option. This lets you stash away the |
211 | local changes and bring the changes staged in the index to your working | |
212 | tree for examination and testing. | |
213 | ||
214 | * git-stash also learned branch subcommand to create a new branch out of | |
215 | stashed changes. | |
216 | ||
217 | * git-status gives the remote tracking statistics similar to the way | |
218 | git-checkout reports by how many commits your branch is ahead/behind. | |
219 | ||
8e1db387 JH |
220 | * "git-svn dcommit" is now aware of auto-props setting the subversion user |
221 | has. | |
222 | ||
de8d9570 JH |
223 | * You can tell "git status -u" to even more aggressively omit checking |
224 | untracked files with --untracked-files=no. | |
225 | ||
92371226 JH |
226 | * Original SHA-1 value for "update-ref -d" is optional now. |
227 | ||
de8d9570 JH |
228 | * Error codes from gitweb are made more descriptive where possible, rather |
229 | than "403 forbidden" as we used to issue everywhere. | |
230 | ||
231 | (internal) | |
232 | ||
57cbf72e JH |
233 | * git-merge has been reimplemented in C. |
234 | ||
de8d9570 JH |
235 | |
236 | Fixes since v1.5.6 | |
237 | ------------------ | |
238 | ||
239 | All of the fixes in v1.5.6 maintenance series are included in | |
240 | this release, unless otherwise noted. | |
241 | ||
8e1db387 JH |
242 | * git-clone ignored its -u option; the fix needs to be backported to |
243 | 'maint'; | |
244 | ||
245 | * git-mv used to lose the distinction between changes that are staged | |
246 | and that are only in the working tree, by staging both in the index | |
247 | after moving such a path. | |
248 | ||
de8d9570 JH |
249 | --- |
250 | exec >/var/tmp/1 | |
71b9979b | 251 | O=v1.6.0-rc2-21-g0bb3a0b |
de8d9570 JH |
252 | echo O=$(git describe refs/heads/master) |
253 | git shortlog --no-merges $O..refs/heads/master ^refs/heads/maint |