]>
Commit | Line | Data |
---|---|---|
eb67052b JH |
1 | Git 2.6 Release Notes |
2 | ===================== | |
3 | ||
4 | Updates since v2.5 | |
5 | ------------------ | |
6 | ||
7 | UI, Workflows & Features | |
8 | ||
9 | * An asterisk as a substring (as opposed to the entirety) of a path | |
10 | component for both side of a refspec, e.g. | |
11 | "refs/heads/o*:refs/remotes/heads/i*", is now allowed. | |
12 | ||
13 | * New userdiff pattern definition for fountain screenwriting markup | |
14 | format has been added. | |
15 | ||
16 | * "git log" and friends learned a new "--date=format:..." option to | |
17 | format timestamps using system's strftime(3). | |
18 | ||
19 | * "git fast-import" learned to respond to the get-mark command via | |
20 | its cat-blob-fd interface. | |
21 | ||
22 | * "git rebase -i" learned "drop commit-object-name subject" command | |
23 | as another way to skip replaying of a commit. | |
24 | ||
25 | * A new configuration variable can enable "--follow" automatically | |
26 | when "git log" is run with one pathspec argument. | |
27 | ||
28 | * "git status" learned to show a more detailed information regarding | |
29 | the "rebase -i" session in progress. | |
30 | ||
31 | * "git cat-file" learned "--batch-all-objects" option to enumerate all | |
32 | available objects in the repository more quickly than "rev-list | |
33 | --all --objects" (the output includes unreachable objects, though). | |
34 | ||
35 | * "git fsck" learned to ignore errors on a set of known-to-be-bad | |
36 | objects, and also allows the warning levels of various kinds of | |
37 | non-critical breakages to be tweaked. | |
38 | ||
39 | * "git rebase -i"'s list of todo is made configurable. | |
40 | ||
41 | * "git send-email" now performs alias-expansion on names that are | |
42 | given via --cccmd, etc. | |
43 | ||
44 | * An environment variable GIT_REPLACE_REF_BASE tells Git to look into | |
45 | refs hierarchy other than refs/replace/ for the object replacement | |
46 | data. | |
47 | ||
44e02239 JH |
48 | * Allow untracked cache (experimental) to be used when sparse |
49 | checkout (experimental) is also in use. | |
50 | ||
51 | * "git pull --rebase" has been taught to pay attention to | |
52 | rebase.autostash configuration. | |
53 | ||
eb67052b JH |
54 | |
55 | Performance, Internal Implementation, Development Support etc. | |
56 | ||
57 | * In preparation for allowing different "backends" to store the refs | |
58 | in a way different from the traditional "one ref per file in | |
59 | $GIT_DIR or in a $GIT_DIR/packed-refs file" filesystem storage, | |
60 | direct filesystem access to ref-like things like CHERRY_PICK_HEAD | |
61 | from scripts and programs has been reduced. | |
62 | ||
63 | * Computation of untracked status indicator by bash prompt | |
64 | script (in contrib/) has been optimized. | |
65 | ||
66 | * Memory use reduction when commit-slab facility is used to annotate | |
67 | sparsely (which is not recommended in the first place). | |
68 | ||
69 | * Clean up refs API and make "git clone" less intimate with the | |
70 | implementation detail. | |
71 | ||
72 | * "git pull" was reimplemented in C. | |
73 | ||
74 | * The packet tracing machinery allows to capture an incoming pack | |
75 | data to a file for debugging. | |
76 | ||
77 | * Move machinery to parse human-readable scaled numbers like 1k, 4M, | |
78 | and 2G as an option parameter's value from pack-objects to | |
79 | parse-options API, to make it available to other codepaths. | |
80 | ||
81 | * "git verify-tag" and "git verify-commit" have been taught to share | |
82 | more code, and then learned to optionally show the verification | |
83 | message from the underlying GPG implementation. | |
84 | ||
85 | * Various enhancements around "git am" reading patches generated by | |
86 | foreign SCM have been made. | |
87 | ||
88 | * Ref listing by "git branch -l" and "git tag -l" commands has | |
89 | started to be rebuilt, based on the for-each-ref machinery. | |
90 | ||
130be8ee JH |
91 | * The code to perform multi-tree merges has been taught to repopulate |
92 | the cache-tree upon a successful merge into the index, so that | |
93 | subsequent "diff-index --cached" (hence "status") and "write-tree" | |
94 | (hence "commit") will go faster. | |
95 | ||
96 | The same logic in "git checkout" may now be removed, but that is a | |
97 | separate issue. | |
98 | ||
99 | * Tests that assume how reflogs are represented on the filesystem too | |
100 | much have been corrected. | |
101 | ||
102 | * "git am" has been rewritten in "C". | |
103 | ||
eb67052b JH |
104 | |
105 | Also contains various documentation updates and code clean-ups. | |
106 | ||
107 | ||
108 | Fixes since v2.5 | |
109 | ---------------- | |
110 | ||
111 | Unless otherwise noted, all the fixes since v2.5 in the maintenance | |
112 | track are contained in this release (see the maintenance releases' | |
113 | notes for details). | |
114 | ||
115 | * "git subtree" (in contrib/) depended on "git log" output to be | |
116 | stable, which was a no-no. Apply a workaround to force a | |
117 | particular date format. | |
118 | (merge e7aac44 da/subtree-date-confusion later to maint). | |
119 | ||
120 | * An attempt to delete a ref by pushing into a repositorywhose HEAD | |
121 | symbolic reference points at an unborn branch that cannot be | |
122 | created due to ref D/F conflict (e.g. refs/heads/a/b exists, HEAD | |
123 | points at refs/heads/a) failed. | |
124 | (merge b112b14 jx/do-not-crash-receive-pack-wo-head later to maint). | |
125 | ||
126 | * The low-level "git send-pack" did not honor 'user.signingkey' | |
127 | configuration variable when sending a signed-push. | |
128 | (merge d830d39 db/send-pack-user-signingkey later to maint). | |
129 | ||
130 | * "sparse checkout" misbehaved for a path that is excluded from the | |
131 | checkout when switching between branches that differ at the path. | |
132 | (merge 7d78241 as/sparse-checkout-removal later to maint). | |
133 | ||
134 | * An experimental "untracked cache" feature used uname(2) in a | |
135 | slightly unportable way. | |
136 | (merge 100e433 cb/uname-in-untracked later to maint). | |
137 | ||
138 | * A "rebase" replays changes of the local branch on top of something | |
139 | else, as such they are placed in stage #3 and referred to as | |
140 | "theirs", while the changes in the new base, typically a foreign | |
141 | work, are placed in stage #2 and referred to as "ours". Clarify | |
142 | the "checkout --ours/--theirs". | |
143 | (merge f303016 se/doc-checkout-ours-theirs later to maint). | |
144 | ||
145 | * The "rev-parse --parseopt" mode parsed the option specification | |
146 | and the argument hint in a strange way to allow '=' and other | |
147 | special characters in the option name while forbidding them from | |
148 | the argument hint. This made it impossible to define an option | |
149 | like "--pair <key>=<value>" with "pair=key=value" specification, | |
150 | which instead would have defined a "--pair=key <value>" option. | |
151 | (merge 2d893df ib/scripted-parse-opt-better-hint-string later to maint). | |
152 | ||
153 | * Often a fast-import stream builds a new commit on top of the | |
154 | previous commit it built, and it often unconditionally emits a | |
155 | "from" command to specify the first parent, which can be omitted in | |
156 | such a case. This caused fast-import to forget the tree of the | |
157 | previous commit and then re-read it from scratch, which was | |
158 | inefficient. Optimize for this common case. | |
159 | (merge 0df3245 mh/fast-import-optimize-current-from later to maint). | |
160 | ||
161 | * Running an aliased command from a subdirectory when the .git thing | |
162 | in the working tree is a gitfile pointing elsewhere did not work. | |
163 | (merge d95138e nd/export-worktree later to maint). | |
164 | ||
165 | * "Is this subdirectory a separate repository that should not be | |
166 | touched?" check "git clean" was inefficient. This was replaced | |
167 | with a more optimized check. | |
168 | (merge 38ae878 ee/clean-remove-dirs later to maint). | |
169 | ||
130be8ee JH |
170 | * The "new-worktree-mode" hack in "checkout" that was added in |
171 | nd/multiple-work-trees topic has been removed by updating the | |
172 | implementation of new "worktree add". | |
173 | (merge 65f9b75 es/worktree-add-cleanup later to maint). | |
174 | ||
175 | * Remove remaining cruft from "git checkout --to", which | |
176 | transitioned to "git worktree add". | |
177 | (merge 114ff88 es/worktree-add later to maint). | |
178 | ||
44e02239 JH |
179 | * An off-by-one error made "git remote" to mishandle a remote with a |
180 | single letter nickname. | |
181 | (merge bc598c3 mh/get-remote-group-fix later to maint). | |
182 | ||
eb67052b JH |
183 | * Code cleanups and documentation updates. |
184 | (merge 1c601af es/doc-clean-outdated-tools later to maint). | |
185 | (merge 3581304 kn/tag-doc-fix later to maint). | |
186 | (merge 3a59e59 kb/i18n-doc later to maint). | |
130be8ee JH |
187 | (merge 45abdee sb/remove-unused-var-from-builtin-add later to maint). |
188 | (merge 14691e3 sb/parse-options-codeformat later to maint). | |
189 | (merge 4a6ada3 ad/bisect-cleanup later to maint). | |
44e02239 | 190 | (merge da4c5ad ta/docfix-index-format-tech later to maint). |