What's cooking (2019/01 #03)

Junio C Hamano committed Jan 18, 2019 at 15:08 UTC 650da6fd97d84db5f9320261b64a951d4bfe3a2a
1 file changed +595 -623
whats-cooking.txt
+595 -623
@@ -1,10 +1,10 @@
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 -Subject: What's cooking in git.git (Jan 2019, #02; Tue, 15)
4 -X-master-at: 77556354bb7ac50450e3b28999e3576969869068
5 -X-next-at: 40155ab247a57ccc696d2ded09336b2c5203e832
3 +Subject: What's cooking in git.git (Jan 2019, #03; Fri, 18)
4 +X-master-at: 16a465bc018d09e9d7bbbdc5f40a7fb99c21f8ef
5 +X-next-at: aa96b0ce6b0fa4fa4cc6870f1a3aff3878967bfa
6
7 -What's cooking in git.git (Jan 2019, #02; Tue, 15)
7 +What's cooking in git.git (Jan 2019, #03; Fri, 18)
8 --------------------------------------------------
9
10 Here are the topics that have been cooking. Commits prefixed with
@@ -20,568 +20,701 @@ of the repositories listed at
20 --------------------------------------------------
21 [Graduated to "master"]
22
23 -* ab/commit-graph-progress-fix (2018-11-20) 1 commit
24 - (merged to 'next' on 2019-01-04 at 405a1a2cf5)
25 - + commit-graph: split up close_reachable() progress output
26 -
23 +* cy/completion-typofix (2019-01-03) 1 commit
24 + (merged to 'next' on 2019-01-08 at 6c6f01a07d)
25 + + completion: fix typo in git-completion.bash
26
28 -* bw/mailmap (2018-12-09) 1 commit
29 - (merged to 'next' on 2019-01-04 at 02b6e83231)
30 - + mailmap: update brandon williams's email address
27 + Typofix.
28
29
33 -* cb/openbsd-allows-reading-directory (2018-12-03) 1 commit
34 - (merged to 'next' on 2019-01-04 at 9d865107fd)
35 - + config.mak.uname: OpenBSD uses BSD semantics with fread for directories
30 +* cy/zsh-completion-SP-in-path (2019-01-03) 2 commits
31 + (merged to 'next' on 2019-01-08 at fee27de30b)
32 + + completion: treat results of git ls-tree as file paths
33 + + zsh: complete unquoted paths with spaces correctly
34
37 - BSD port update.
35 + With zsh, "git cmd path<TAB>" was completed to "git cmd path name"
36 + when the completed path has a special character like SP in it,
37 + without any attempt to keep "path name" a single filename. This
38 + has been fixed to complete it to "git cmd path\ name" just like
39 + Bash completion does.
40
41
40 -* cb/t5004-empty-tar-archive-fix (2018-12-03) 1 commit
41 - (merged to 'next' on 2019-01-04 at 39f4cf94ce)
42 - + t5004: avoid using tar for empty packages
42 +* ds/commit-graph-assert-missing-parents (2019-01-02) 1 commit
43 + (merged to 'next' on 2019-01-08 at d141f063e0)
44 + + commit-graph: writing missing parents is a BUG
45
44 - BSD port update.
46 + Tightening error checking in commit-graph writer.
47
48
47 -* cb/test-lint-cp-a (2018-12-03) 1 commit
48 - (merged to 'next' on 2019-01-04 at d13e6cfcb0)
49 - + tests: add lint for non portable cp -a
49 +* ds/gc-doc-typofix (2019-01-08) 1 commit
50 + (merged to 'next' on 2019-01-08 at f21ffc83e0)
51 + + git-gc.txt: fix typo about gc.writeCommitGraph
52
51 - BSD port update.
53 + Typofix.
54
55
54 -* do/gitweb-strict-export-conf-doc (2018-12-09) 1 commit
55 - (merged to 'next' on 2019-01-04 at 5249c9386a)
56 - + docs: fix $strict_export text in gitweb.conf.txt
56 +* ed/simplify-setup-git-dir (2019-01-03) 1 commit
57 + (merged to 'next' on 2019-01-08 at 8722c7c2ef)
58 + + Simplify handling of setup_git_directory_gently() failure cases.
59
58 - Doc update.
60 + Code simplification.
61
62
61 -* en/directory-renames-nothanks-doc-update (2018-12-09) 1 commit
62 - (merged to 'next' on 2019-01-04 at cb7134b54c)
63 - + git-rebase.txt: update note about directory rename detection and am
63 +* en/show-ref-doc-fix (2019-01-10) 1 commit
64 + (merged to 'next' on 2019-01-14 at f875bfb9a4)
65 + + git-show-ref.txt: fix order of flags
66
67 Doc update.
68
69
68 -* fd/gitweb-snapshot-conf-doc-fix (2018-12-09) 1 commit
69 - (merged to 'next' on 2019-01-04 at 7ba71fca17)
70 - + docs/gitweb.conf: config variable typo
70 +* es/doc-worktree-guessremote-config (2018-12-28) 1 commit
71 + (merged to 'next' on 2019-01-08 at f1dc5e39a6)
72 + + doc/config: do a better job of introducing 'worktree.guessRemote'
73
72 - Doc update.
74 + Doc clarification.
75
76
75 -* hb/t0061-dot-in-path-fix (2018-12-03) 1 commit
76 - (merged to 'next' on 2019-01-04 at 789f990c4e)
77 - + t0061: do not fail test if '.' is part of $PATH
77 +* ew/ban-strncat (2019-01-02) 1 commit
78 + (merged to 'next' on 2019-01-08 at 3bba2ae2bb)
79 + + banned.h: mark strncat() as banned
80
79 - Test update.
81 + The "strncat()" function is now among the banned functions.
82
83
82 -* hn/highlight-sideband-keywords (2018-12-04) 1 commit
83 - (merged to 'next' on 2019-01-04 at b039601533)
84 - + sideband: color lines with keyword only
84 +* jk/dev-build-format-security (2019-01-07) 1 commit
85 + (merged to 'next' on 2019-01-08 at 3761ab7026)
86 + + config.mak.dev: add -Wall, primarily for -Wformat, to help autoconf users
87
86 - Lines that begin with a certain keyword that come over the wire, as
87 - well as lines that consist only of one of these keywords, ought to
88 - be painted in color for easier eyeballing, but the latter was
89 - broken ever since the feature was introduced in 2.19, which has
90 - been corrected.
88 + Earlier we added "-Wformat-security" to developer builds, assuming
89 + that "-Wall" (which includes "-Wformat" which in turn is required
90 + to use "-Wformat-security") is always in effect. This is not true
91 + when config.mak.autogen is in use, unfortunately. This has been
92 + fixed by unconditionally adding "-Wall" to developer builds.
93
94
93 -* km/rebase-doc-typofix (2018-12-10) 1 commit
94 - (merged to 'next' on 2019-01-04 at c89f646e8f)
95 - + rebase docs: drop stray word in merge command description
95 +* jn/stripspace-wo-repository (2018-12-26) 1 commit
96 + (merged to 'next' on 2019-01-08 at 81815821c9)
97 + + stripspace: allow -s/-c outside git repository
98
97 - Doc update.
99 + "git stripspace" should be usable outside a git repository, but
100 + under the "-s" or "-c" mode, it didn't.
101
102
100 -* md/exclude-promisor-objects-fix-cleanup (2018-12-06) 1 commit
101 - (merged to 'next' on 2019-01-04 at c15362832d)
102 - + revision.c: put promisor option in specialized struct
103 +* js/gc-repack-close-before-remove (2019-01-11) 1 commit
104 + (merged to 'next' on 2019-01-14 at 9daedfee40)
105 + + gc/repack: release packs when needed
106
104 - Code clean-up.
107 + "git gc" and "git repack" did not close the open packfiles that
108 + they found unneeded before removing them, which didn't work on a
109 + platform incapable of removing an open file. This has been
110 + corrected.
111
112
107 -* md/list-lazy-objects-fix (2018-12-06) 1 commit
108 - (merged to 'next' on 2019-01-04 at 93bd38fff9)
109 - + list-objects.c: don't segfault for missing cmdline objects
113 +* la/quiltimport-keep-non-patch (2019-01-07) 1 commit
114 + (merged to 'next' on 2019-01-08 at 37cb490792)
115 + + git-quiltimport: add --keep-non-patch option
116
111 - "git rev-list --exclude-promisor-objects" had to take an object
112 - that does not exist locally (and is lazily available) from the
113 - command line without barfing, but the code dereferenced NULL.
117 + "git quiltimport" learned "--keep-non-patch" option.
118
119
116 -* nd/attr-pathspec-in-tree-walk (2018-11-19) 5 commits
117 - (merged to 'next' on 2019-01-04 at 6a07e5b905)
118 - + tree-walk: support :(attr) matching
119 - + dir.c: move, rename and export match_attrs()
120 - + pathspec.h: clean up "extern" in function declarations
121 - + tree-walk.c: make tree_entry_interesting() take an index
122 - + tree.c: make read_tree*() take 'struct repository *'
120 +* ma/asciidoctor (2018-12-26) 3 commits
121 + (merged to 'next' on 2019-01-08 at 3cfd4ad6cb)
122 + + git-status.txt: render tables correctly under Asciidoctor
123 + + Documentation: do not nest open blocks
124 + + git-column.txt: fix section header
125
124 - The traversal over tree objects has learned to honor
125 - ":(attr:label)" pathspec match, which has been implemented only for
126 - enumerating paths on the filesystem.
126 + Some of the documentation pages formatted incorrectly with
127 + Asciidoctor, which have been fixed.
128
129
129 -* nd/checkout-noisy (2018-11-20) 2 commits
130 - (merged to 'next' on 2019-01-04 at 480172d3d7)
131 - + t0027: squelch checkout path run outside test_expect_* block
132 - + checkout: print something when checking out paths
130 +* mm/multimail-1.5 (2019-01-07) 1 commit
131 + (merged to 'next' on 2019-01-08 at 8c872af48e)
132 + + git-multimail: update to release 1.5.0
133
134 - "git checkout [<tree-ish>] path..." learned to report the number of
135 - paths that have been checked out of the index or the tree-ish,
136 - which gives it the same degree of noisy-ness as the case in which
137 - the command checks out a branch.
134 + Update "git multimail" from the upstream.
135
136
140 -* nd/indentation-fix (2018-12-09) 1 commit
141 - (merged to 'next' on 2019-01-04 at 738b17d365)
142 - + Indent code with TABs
137 +* nd/style-opening-brace (2018-12-10) 1 commit
138 + (merged to 'next' on 2019-01-08 at 80de026e14)
139 + + style: the opening '{' of a function is in a separate line
140
144 - Code cleanup.
141 + Code clean-up.
142
143
147 -* sb/diff-color-moved-config-option-fixup (2018-11-14) 1 commit
148 - (merged to 'next' on 2019-01-04 at 46de5f42d1)
149 - + diff: align move detection error handling with other options
144 +* nd/worktree-remove-with-uninitialized-submodules (2019-01-07) 1 commit
145 + (merged to 'next' on 2019-01-08 at e19cfe8741)
146 + + worktree: allow to (re)move worktrees with uninitialized submodules
147
151 - Minor inconsistency fix.
148 + "git worktree remove" and "git worktree move" refused to work when
149 + there is a submodule involved. This has been loosened to ignore
150 + uninitialized submodules.
151
152
154 -* tb/log-G-binary (2018-12-26) 1 commit
155 - (merged to 'next' on 2019-01-04 at a713ef389c)
156 - + log -G: ignore binary files
153 +* ot/ref-filter-object-info (2019-01-10) 7 commits
154 + (merged to 'next' on 2019-01-10 at 9e740568ce)
155 + + ref-filter: give uintmax_t to format with %PRIuMAX
156 + (merged to 'next' on 2019-01-08 at 0a4d4ed36a)
157 + + ref-filter: add docs for new options
158 + + ref-filter: add tests for deltabase
159 + + ref-filter: add deltabase option
160 + + ref-filter: add tests for objectsize:disk
161 + + ref-filter: add check for negative file size
162 + + ref-filter: add objectsize:disk option
163
158 - "git log -G<regex>" looked for a hunk in the "git log -p" patch
159 - output that contained a string that matches the given pattern.
160 - Optimize this code to ignore binary files, which by default will
161 - not show any hunk that would match any pattern (unless textconv or
162 - the --text option is in effect, that is).
164 + The "--format=<placeholder>" option of for-each-ref, branch and tag
165 + learned to show a few more traits of objects that can be learned by
166 + the object_info API.
167
168
165 -* tb/use-common-win32-pathfuncs-on-cygwin (2018-12-26) 1 commit
166 - (merged to 'next' on 2019-01-04 at c3b2b1f3c3)
167 - + git clone <url> C:\cygwin\home\USER\repo' is working (again)
169 +* po/git-p4-wo-login (2019-01-07) 1 commit
170 + (merged to 'next' on 2019-01-08 at a7cc58d6b9)
171 + + git-p4: fix problem when p4 login is not necessary
172
169 - Cygwin update.
173 + "git p4" update.
174
171 ---------------------------------------------------
172 -[New Topics]
175
174 -* ds/gc-doc-typofix (2019-01-08) 1 commit
175 - (merged to 'next' on 2019-01-08 at f21ffc83e0)
176 - + git-gc.txt: fix typo about gc.writeCommitGraph
176 +* rb/hpe (2019-01-03) 5 commits
177 + (merged to 'next' on 2019-01-08 at 52d6995399)
178 + + compat/regex/regcomp.c: define intptr_t and uintptr_t on NonStop
179 + + git-compat-util.h: add FLOSS headers for HPE NonStop
180 + + config.mak.uname: support for modern HPE NonStop config.
181 + + transport-helper: drop read/write errno checks
182 + + transport-helper: use xread instead of read
183
178 - Typofix.
184 + Portability updates for the HPE NonStop platform.
185
180 - Will merge to 'master'.
186
187 +* rs/loose-object-cache-perffix (2019-01-08) 4 commits
188 + (merged to 'next' on 2019-01-08 at 36e355e099)
189 + + object-store: retire odb_load_loose_cache()
190 + + object-store: use one oid_array per subdirectory for loose cache
191 + + object-store: factor out odb_clear_loose_cache()
192 + + object-store: factor out odb_loose_cache()
193 + (this branch is used by jk/loose-object-cache-oid.)
194
183 -* sc/pack-redundant (2019-01-14) 5 commits
184 - - pack-redundant: consistent sort method
185 - - pack-redundant: rename pack_list.all_objects
186 - - pack-redundant: remove unused functions
187 - - pack-redundant: new algorithm to find min packs
188 - - t5323: test cases for git-pack-redundant
195 + The loose object cache used to optimize existence look-up has been
196 + updated.
197
190 - Update the implementation of pack-redundant for performance in a
191 - repository with many packfiles.
198
193 - Comments?
199 +* rs/sha1-file-close-mapped-file-on-error (2019-01-07) 1 commit
200 + (merged to 'next' on 2019-01-08 at 5841cbc153)
201 + + sha1-file: close fd of empty file in map_sha1_file_1()
202
203 + Code clean-up.
204
196 -* pw/diff-color-moved-ws-fix (2019-01-10) 9 commits
197 - - diff --color-moved-ws: handle blank lines
198 - - diff --color-moved-ws: modify allow-indentation-change
199 - - diff --color-moved-ws: optimize allow-indentation-change
200 - - diff --color-moved=zebra: be stricter with color alternation
201 - - diff --color-moved-ws: fix false positives
202 - - diff --color-moved-ws: demonstrate false positives
203 - - diff: allow --no-color-moved-ws
204 - - Use "whitespace" consistently
205 - - diff: document --no-color-moved
205
207 - "git diff --color-moved-ws" updates.
206 +* sb/submodule-fetchjobs-default-to-one (2018-12-14) 1 commit
207 + (merged to 'next' on 2019-01-08 at 97a522ef5e)
208 + + submodule update: run at most one fetch job unless otherwise set
209
209 - Will merge to 'next'.
210 + "git submodule update" ought to use a single job unless asked, but
211 + by mistake used multiple jobs, which has been fixed.
212
213
212 -* en/show-ref-doc-fix (2019-01-10) 1 commit
213 - (merged to 'next' on 2019-01-14 at f875bfb9a4)
214 - + git-show-ref.txt: fix order of flags
214 +* sb/submodule-unset-core-worktree-when-worktree-is-lost (2018-12-26) 4 commits
215 + (merged to 'next' on 2019-01-08 at 38f3175a2b)
216 + + submodule deinit: unset core.worktree
217 + + submodule--helper: fix BUG message in ensure_core_worktree
218 + + submodule: unset core.worktree if no working tree is present
219 + + submodule update: add regression test with old style setups
220
216 - Doc update.
221 + The core.worktree setting in a submodule repository should not be
222 + pointing at a directory when the submodule loses its working tree
223 + (e.g. getting deinit'ed), but the code did not properly maintain
224 + this invariant.
225
218 - Will merge to 'master'.
226
227 +* sg/stress-test (2019-01-07) 8 commits
228 + (merged to 'next' on 2019-01-08 at 2a65cea5f9)
229 + + test-lib: add the '--stress' option to run a test repeatedly under load
230 + + test-lib-functions: introduce the 'test_set_port' helper function
231 + + test-lib: set $TRASH_DIRECTORY earlier
232 + + test-lib: consolidate naming of test-results paths
233 + + test-lib: parse command line options earlier
234 + + test-lib: parse options in a for loop to keep $@ intact
235 + + test-lib: extract Bash version check for '-x' tracing
236 + + test-lib: translate SIGTERM and SIGHUP to an exit
237 + (this branch uses sg/test-bash-version-fix.)
238
221 -* it/log-format-source (2019-01-11) 1 commit
222 - - log: add %S option (like --source) to log --format
239 + Flaky tests can now be repeatedly run under load with the
240 + "--stress" option.
241
224 - Custom userformat "log --format" learned %S atom that stands for
225 - the tip the traversal reached the commit from, i.e. --source.
242
227 - Will merge to 'next'.
243 +* sg/test-bash-version-fix (2019-01-03) 2 commits
244 + (merged to 'next' on 2019-01-08 at f83a0628a0)
245 + + Merge branch 'sg/test-bash-version-fix'
246 + + test-lib: check Bash version for '-x' without using shell arrays
247 + (this branch is used by sg/stress-test.)
248
249 + The test suite tried to see if it is run under bash, but the check
250 + itself failed under some other implementations of shell (notably
251 + under NetBSD). This has been corrected.
252
230 -* js/filter-options-should-use-plain-int (2019-01-08) 1 commit
231 - - filter-options: expand scaled numbers
253
233 - Update the protocol message specification to allow only the limited
234 - use of scaled quantities. This is ensure potential compatibility
235 - issues will not go out of hand.
254 +* so/cherry-pick-always-allow-m1 (2019-01-07) 4 commits
255 + (merged to 'next' on 2019-01-08 at 2b790fec25)
256 + + t3506: validate '-m 1 -ff' is now accepted for non-merge commits
257 + + t3502: validate '-m 1' argument is now accepted for non-merge commits
258 + + cherry-pick: do not error on non-merge commits when '-m 1' is specified
259 + + t3510: stop using '-m 1' to force failure mid-sequence of cherry-picks
260
237 - Will merge to 'next'.
261 + "git cherry-pick -m1" was forbidden when picking a non-merge
262 + commit, even though there _is_ parent number 1 for such a commit.
263 + This was done to avoid mistakes back when "cherry-pick" was about
264 + picking a single commit, but is no longer useful with "cherry-pick"
265 + that can pick a range of commits. Now the "-m$num" option is
266 + allowed when picking any commit, as long as $num names an existing
267 + parent of the commit.
268
269 + Technically this is a backward incompatible change; hopefully
270 + nobody is relying on the error-checking behaviour.
271
240 -* js/gc-repack-close-before-remove (2019-01-11) 1 commit
241 - (merged to 'next' on 2019-01-14 at 9daedfee40)
242 - + gc/repack: release packs when needed
272
244 - "git gc" and "git repack" did not close the open packfiles that
245 - they found unneeded before removing them, which didn't work on a
246 - platform incapable of removing an open file. This has been
247 - corrected.
273 +* tg/t5570-drop-racy-test (2019-01-07) 2 commits
274 + (merged to 'next' on 2019-01-08 at 9fc753bbdc)
275 + + Revert "t/lib-git-daemon: record daemon log"
276 + + t5570: drop racy test
277
249 - Will merge to 'master'.
278 + An inherently racy test that caused intermittent failures has been
279 + removed.
280
281 +--------------------------------------------------
282 +[New Topics]
283
252 -* jt/upload-pack-deepen-relative-proto-v2 (2019-01-10) 2 commits
253 - - upload-pack: teach deepen-relative in protocol v2
254 - - fetch-pack: do not take shallow lock unnecessarily
284 +* ab/commit-graph-write-optim (2019-01-17) 1 commit
285 + - commit-graph write: use pack order when finding commits
286 + (this branch uses ab/commit-graph-write-progress.)
287
256 - "git fetch --deepen=<more>" has been corrected to work over v2
257 - protocol.
288 + The codepath to write out commit-graph has been optimized by
289 + following the usual pattern of visiting objects in in-pack order.
290
259 - Will merge to 'next'.
291 + This is taken hostage of the other topic; it may be slightly better
292 + if the dependency were the other way around, to allow this to
293 + graduate faster without waiting for the other.
294
295 + Needs sign-off.
296
262 -* nd/config-move-to (2019-01-14) 7 commits
263 - - config.h: fix hdr-check warnings
264 - - config: add --move-to
265 - - config: factor out set_config_source_file()
266 - - config: use OPT_FILENAME()
267 - - config.c: add repo_config_set_worktree_gently()
268 - - worktree.c: add get_worktree_config()
269 - - config.c: avoid git_path() in do_git_config_sequence()
297
271 - Needs review.
298 +* ab/commit-graph-write-progress (2019-01-17) 9 commits
299 + - commit-graph write: emit a percentage for all progress
300 + - commit-graph write: add itermediate progress
301 + - commit-graph write: remove empty line for readability
302 + - commit-graph write: add more descriptive progress output
303 + - commit-graph write: show progress for object search
304 + - commit-graph write: more descriptive "writing out" output
305 + - commit-graph write: add "Writing out" progress output
306 + - commit-graph: don't call write_graph_chunk_large_edges() unnecessarily
307 + - commit-graph: rename 'num_extra_edges' variable to 'num_large_edges'
308 + (this branch is used by ab/commit-graph-write-optim.)
309
310 + The codepath to show progress meter while writing out commit-graph
311 + file has been improved.
312
274 -* sg/travis-specific-cc (2019-01-10) 4 commits
275 - - travis-ci: build with the right compiler
276 - - travis-ci: switch to Xcode 10.1 macOS image
277 - - travis-ci: don't be '--quiet' when running the tests
278 - - .gitignore: ignore external debug symbols from GCC on macOS
313 + Proposed updates for the bottom two have been raised.
314 + cf. <20190118170549.30403-1-szeder.dev@gmail.com>
315
280 - The travis CI scripts have been corrected to build Git with the
281 - compiler(s) of our choice.
316
283 - Will likely to break linux32 build due to outdated code in
284 - compat/obstack.
317 +* cc/test-ref-store-typofix (2019-01-17) 1 commit
318 + - helper/test-ref-store: fix "new-sha1" vs "old-sha1" typo
319
320 + An obvious typo in an assersion error message has been fixed.
321
287 -* sg/obstack-cast-function-type-fix (2019-01-14) 1 commit
288 - - compat/obstack: fix -Wcast-function-type warnings
322 + Will merge to 'next'.
323
290 - The compat/obstack code had casts that -Wcast-function-type
291 - compilation option found questionable.
324 +
325 +* jk/add-ignore-errors-bit-assignment-fix (2019-01-17) 1 commit
326 + - add: use separate ADD_CACHE_RENORMALIZE flag
327 +
328 + "git add --ignore-errors" did not work as advertised and instead
329 + worked as an unintended synonym for "git add --renormalize", which
330 + has been fixed.
331
332 Will merge to 'next'.
333
334
296 -* cc/fetch-error-message-fix (2019-01-14) 1 commit
297 - (merged to 'next' on 2019-01-14 at 81078f86c0)
298 - + fetch: fix extensions.partialclone name in error message
335 +* js/mingw-unc-path-w-backslashes (2019-01-18) 2 commits
336 + - mingw: special-case arguments to `sh`
337 + - mingw (t5580): document bug when cloning from backslashed UNC paths
338
300 - Error message fix.
339 + In Git for Windows, "git clone \\server\share\path" etc. that uses
340 + UNC paths from command line had bad interaction with its shell
341 + emulation.
342
302 - Will merge to 'master'.
343 + Will merge to 'next'.
344
345
305 -* cc/parial-clone-doc-typofix (2019-01-14) 1 commit
306 - (merged to 'next' on 2019-01-14 at 0395de767e)
307 - + partial-clone: add missing 'is' in doc
346 +* js/t6042-timing-fix (2019-01-17) 1 commit
347 + - t6042: work around speed optimization on Windows
348
309 - Doc fix.
349 + Test update.
350
311 - Will merge to 'master'.
351 + Will merge to 'next'.
352
353
314 -* jk/remote-insteadof-cleanup (2019-01-11) 1 commit
315 - - remote: check config validity before creating rewrite struct
354 +* jt/namespaced-ls-refs-fix (2019-01-18) 1 commit
355 + - ls-refs: filter refs using namespace-stripped name
356
317 - Code clean-up.
357 + Fix namespace support in protocol v2.
358
359 Will merge to 'next'.
360
361
322 -* jk/save-getenv-result (2019-01-11) 6 commits
323 - - builtin_diff(): read $GIT_DIFF_OPTS closer to use
324 - - merge-recursive: copy $GITHEAD strings
325 - - init: make a copy of $GIT_DIR string
326 - - config: make a copy of $GIT_CONFIG string
327 - - commit: copy saved getenv() result
328 - - get_super_prefix(): copy getenv() result
362 +* bp/checkout-new-branch-optim (2019-01-18) 2 commits
363 + - checkout: fix regression in checkout -b on intitial checkout
364 + - checkout: add test to demonstrate regression with checkout -b on initial commit
365
330 - There were many places the code relied on the string returned from
331 - getenv() to be non-volatile, which is not true, that have been
332 - corrected.
366 + "git checkout -b <new> [HEAD]" to create a new branch from the
367 + current commit and check it out ought to be a no-op in the index
368 + and the working tree in normal cases, but there are corner cases
369 + that does require updates to the index and the working tree.
370 + Running it immediately after "git clone --no-checkout" is one of
371 + these cases that an earlier optimization kicked in incorrectly,
372 + which has been fixed.
373
334 - Will merge to 'next'.
374 + Seems to break an existing test...
375
376
337 -* jt/fetch-v2-sideband (2019-01-15) 5 commits
338 - - tests: define GIT_TEST_SIDEBAND_ALL
339 - - {fetch,upload}-pack: sideband v2 fetch response
340 - - sideband: reverse its dependency on pkt-line
341 - - pkt-line: introduce struct packet_writer
342 - - Merge branch 'ms/packet-err-check' into jt/fetch-v2-sideband
343 - (this branch uses ms/packet-err-check.)
377 +* br/blame-ignore (2019-01-18) 3 commits
378 + - blame: add a config option to mark ignored lines
379 + - blame: add the ability to ignore commits and their changes
380 + - Move init_skiplist() outside of fsck
381
345 - "git fetch" and "git upload-pack" learned to send all exchange over
346 - the sideband channel while talking the v2 protocol.
382 + "git blame" learned to "ignore" commits in the history, whose
383 + effects (as well as their presence) get ignored.
384 +
385 +
386 +* js/abspath-part-inside-repo (2019-01-18) 1 commit
387 + - abspath_part_inside_repo: respect core.ignoreCase
388 +
389 + On a case-insensntive filesystem, we failed to compare the part of
390 + the path that is above the worktree directory in an absolute
391 + pathname, which has been corrected.
392
393 Will merge to 'next'.
394
395
351 -* kg/external-diff-save-env (2019-01-11) 1 commit
352 - (merged to 'next' on 2019-01-14 at 8281bbd48b)
353 - + diff: ensure correct lifetime of external_diff_cmd
396 +* nd/diff-parseopt (2019-01-18) 77 commits
397 + - SQUASH???
398 + - am: avoid diff_opt_parse()
399 + - diff --no-index: use parse_options() instead of diff_opt_parse()
400 + - range-diff: use parse_options() instead of diff_opt_parse()
401 + - diff.c: allow --no-color-moved-ws
402 + - diff.c: convert --color-moved-ws
403 + - diff.c: convert --color-moved
404 + - diff.c: convert --inter-hunk-context
405 + - diff.c: convert --no-prefix
406 + - diff.c: convert --line-prefix
407 + - diff.c: convert --[src|dst]-prefix
408 + - diff.c: convert --[no-]abbrev
409 + - diff.c: convert --diff-filter
410 + - diff.c: convert --find-object
411 + - diff.c: convert -O
412 + - diff.c: convert --pickaxe-all|--pickaxe-regex
413 + - diff.c: convert -S|-G
414 + - diff.c: convert -l
415 + - diff.c: convert -z
416 + - diff.c: convert --ita-[in]visible-in-index
417 + - diff.c: convert --ws-error-highlight
418 + - diff.c: convert --submodule
419 + - diff.c: convert --ignore-submodules
420 + - diff.c: convert --textconv
421 + - diff.c: convert --ext-diff
422 + - diff.c: convert --quiet
423 + - diff.c: convert --exit-code
424 + - diff.c: convert --color-words
425 + - diff.c: convert --word-diff-regex
426 + - diff.c: convert --word-diff
427 + - diff.c: convert --[no-]color
428 + - diff.c: convert --[no-]follow
429 + - diff.c: convert -R
430 + - diff.c: convert -a|--text
431 + - diff.c: convert --full-index
432 + - diff.c: convert --binary
433 + - diff.c: convert --anchored
434 + - diff.c: convert --diff-algorithm
435 + - diff.c: convert --histogram
436 + - diff.c: convert --patience
437 + - diff.c: convert --[no-]indent-heuristic
438 + - diff.c: convert --ignore-some-changes
439 + - diff.c: convert --[no-]minimal
440 + - diff.c: convert --relative
441 + - diff.c: convert --no-renames|--[no--rename-empty
442 + - diff.c: convert --find-copies-harder
443 + - diff.c: convert -C|--find-copies
444 + - diff.c: convert -D|--irreversible-delete
445 + - diff.c: convert -M|--find-renames
446 + - diff.c: convert -B|--break-rewrites
447 + - diff.c: convert --output-*
448 + - diff.c: convert --[no-]compact-summary
449 + - diff.c: convert --stat*
450 + - diff.c: convert -s|--no-patch
451 + - diff.c: convert --name-status
452 + - diff.c: convert --name-only
453 + - diff.c: convert --patch-with-stat
454 + - diff.c: convert --summary
455 + - diff.c: convert --check
456 + - diff.c: convert --dirstat and friends
457 + - diff.c: convert --numstat and --shortstat
458 + - diff.c: convert --patch-with-raw
459 + - diff.c: convert --raw
460 + - diff.c: convert -W|--[no-]function-context
461 + - diff.c: convert -U|--unified
462 + - diff.c: convert -u|-p|--patch
463 + - diff.c: prepare to use parse_options() for parsing
464 + - diff.h: avoid bit fields in struct diff_flags
465 + - diff.h: keep forward struct declarations sorted
466 + - parse-options: allow ll_callback with OPTION_CALLBACK
467 + - parse-options: avoid magic return codes
468 + - parse-options: stop abusing 'callback' for lowlevel callbacks
469 + - parse-options: add OPT_BITOP()
470 + - parse-options: disable option abbreviation with PARSE_OPT_KEEP_UNKNOWN
471 + - parse-options: allow keep-unknown + stop-at-non-opt combination
472 + - parse-options: add one-shot mode
473 + - parse-options.h: remove extern on function prototypes
474 +
475 + The diff machinery, one of the oldest parts of the system, which
476 + long predates the parse-options API, uses fairly long and complex
477 + handcrafted option parser. This has been rewritten to use the
478 + parse-options API.
479
355 - The code to drive GIT_EXTERNAL_DIFF command relied on the string
356 - returned from getenv() to be non-volatile, which is not true, that
357 - has been corrected.
480 +--------------------------------------------------
481 +[Cooking]
482
359 - Will merge to 'master'.
483 +* sc/pack-redundant (2019-01-14) 5 commits
484 + - pack-redundant: consistent sort method
485 + - pack-redundant: rename pack_list.all_objects
486 + - pack-redundant: remove unused functions
487 + - pack-redundant: new algorithm to find min packs
488 + - t5323: test cases for git-pack-redundant
489
490 + Update the implementation of pack-redundant for performance in a
491 + repository with many packfiles.
492
362 -* ld/git-p4-shelve-update-fix (2019-01-14) 2 commits
363 - - git-p4: handle update of moved files when updating a shelve
364 - - git-p4: add failing test for shelved CL update involving move
493 + Comments?
494
366 - "git p4" failed to update a shelved change when there were moved
367 - files, which has been corrected.
495
369 - Will merge to 'next'.
496 +* pw/diff-color-moved-ws-fix (2019-01-10) 9 commits
497 + (merged to 'next' on 2019-01-18 at e19713c82f)
498 + + diff --color-moved-ws: handle blank lines
499 + + diff --color-moved-ws: modify allow-indentation-change
500 + + diff --color-moved-ws: optimize allow-indentation-change
501 + + diff --color-moved=zebra: be stricter with color alternation
502 + + diff --color-moved-ws: fix false positives
503 + + diff --color-moved-ws: demonstrate false positives
504 + + diff: allow --no-color-moved-ws
505 + + Use "whitespace" consistently
506 + + diff: document --no-color-moved
507
508 + "git diff --color-moved-ws" updates.
509
372 -* ma/clear-repository-format (2019-01-14) 3 commits
373 - - setup: add `clear_repository_format()`
374 - - setup: do not use invalid `repository_format`
375 - - setup: free old value before setting `work_tree`
510 + Will merge to 'master'.
511
377 - The setup code has been cleaned up to avoid leaks around the
378 - repository_format structure.
512
380 - cf. <20190115193112.GE4886@sigill.intra.peff.net>
513 +* it/log-format-source (2019-01-11) 1 commit
514 + (merged to 'next' on 2019-01-18 at d660044e93)
515 + + log: add %S option (like --source) to log --format
516
517 + Custom userformat "log --format" learned %S atom that stands for
518 + the tip the traversal reached the commit from, i.e. --source.
519
383 -* nd/the-index-final (2019-01-14) 11 commits
384 - - cache.h: flip NO_THE_INDEX_COMPATIBILITY_MACROS switch
385 - - read-cache.c: remove the_* from index_has_changes()
386 - - merge-recursive.c: remove implicit dependency on the_repository
387 - - merge-recursive.c: remove implicit dependency on the_index
388 - - sha1-name.c: remove implicit dependency on the_index
389 - - read-cache.c: replace update_index_if_able with repo_&
390 - - read-cache.c: kill read_index()
391 - - checkout: avoid the_index when possible
392 - - repository.c: replace hold_locked_index() with repo_hold_locked_index()
393 - - notes-utils.c: remove the_repository references
394 - - grep: use grep_opt->repo instead of explict repo argument
520 + Will merge to 'master'.
521
396 - The assumption to work on the single "in-core index" instance has
397 - been reduced from the library-ish part of the codebase.
522
399 - This obviously has fallouts with a few topics in flight, but
400 - otherwise it seemed to be in good enough shape.
523 +* js/filter-options-should-use-plain-int (2019-01-15) 1 commit
524 + (merged to 'next' on 2019-01-18 at 6714547e6d)
525 + + filter-options: expand scaled numbers
526 + (this branch uses md/list-objects-filter-by-depth and sb/more-repo-in-api; is tangled with jt/get-reference-with-commit-graph.)
527
528 + Update the protocol message specification to allow only the limited
529 + use of scaled quantities. This is ensure potential compatibility
530 + issues will not go out of hand.
531
403 -* bc/tree-walk-oid (2019-01-15) 5 commits
404 - - cache: make oidcpy always copy GIT_MAX_RAWSZ bytes
405 - - tree-walk: store object_id in a separate member
406 - - match-trees: use hashcpy to splice trees
407 - - match-trees: compute buffer offset correctly when splicing
408 - - tree-walk: copy object ID before use
532 + Will merge to 'master'.
533
410 - The code to walk tree objects has been taught that we may be
411 - working with object names that are not computed with SHA-1.
534
413 - Will merge to 'next'.
535 +* jt/upload-pack-deepen-relative-proto-v2 (2019-01-10) 2 commits
536 + (merged to 'next' on 2019-01-18 at 1483ad21db)
537 + + upload-pack: teach deepen-relative in protocol v2
538 + + fetch-pack: do not take shallow lock unnecessarily
539
540 + "git fetch --deepen=<more>" has been corrected to work over v2
541 + protocol.
542
416 -* js/add-e-clear-patch-before-stating (2019-01-15) 1 commit
417 - - add --edit: truncate the patch file
543 + Will merge to 'master'.
544
419 - "git add -e" got confused when the change it wants to let the user
420 - edit is smaller than the previous change that was left over in a
421 - temporary file.
545
423 - Will merge to 'next'.
546 +* nd/config-move-to (2019-01-14) 7 commits
547 + - config.h: fix hdr-check warnings
548 + - config: add --move-to
549 + - config: factor out set_config_source_file()
550 + - config: use OPT_FILENAME()
551 + - config.c: add repo_config_set_worktree_gently()
552 + - worktree.c: add get_worktree_config()
553 + - config.c: avoid git_path() in do_git_config_sequence()
554
555 + Needs review.
556
426 -* js/commit-graph-read-overflow-fix (2019-01-15) 3 commits
427 - - Makefile: correct example fuzz build
428 - - commit-graph: fix buffer read-overflow
429 - - commit-graph, fuzz: add fuzzer for commit-graph
557
431 - The code to read the commit-graph file was not prepared to see a
432 - corrupt size field in the file, and ended up reading beyond the end
433 - of the buffer.
558 +* sg/travis-specific-cc (2019-01-17) 4 commits
559 + - travis-ci: build with the right compiler
560 + - travis-ci: switch to Xcode 10.1 macOS image
561 + - travis-ci: don't be '--quiet' when running the tests
562 + - .gitignore: ignore external debug symbols from GCC on macOS
563 +
564 + The travis CI scripts have been corrected to build Git with the
565 + compiler(s) of our choice.
566
567 Will merge to 'next'.
568
437 ---------------------------------------------------
438 -[Cooking]
569
440 -* jt/fetch-pack-v2 (2019-01-10) 1 commit
441 - - fetch-pack: support protocol version 2
570 +* sg/obstack-cast-function-type-fix (2019-01-17) 1 commit
571 + - compat/obstack: fix -Wcast-function-type warnings
572
443 - "git fetch-pack" now can talk the version 2 protocol.
573 + The compat/obstack code had casts that -Wcast-function-type
574 + compilation option found questionable.
575
576 Will merge to 'next'.
577
578
448 -* jn/stripspace-wo-repository (2018-12-26) 1 commit
449 - (merged to 'next' on 2019-01-08 at 81815821c9)
450 - + stripspace: allow -s/-c outside git repository
579 +* cc/fetch-error-message-fix (2019-01-14) 1 commit
580 + (merged to 'next' on 2019-01-14 at 81078f86c0)
581 + + fetch: fix extensions.partialclone name in error message
582
452 - "git stripspace" should be usable outside a git repository, but
453 - under the "-s" or "-c" mode, it didn't.
583 + Error message fix.
584
585 Will merge to 'master'.
586
587
458 -* ma/asciidoctor (2018-12-26) 3 commits
459 - (merged to 'next' on 2019-01-08 at 3cfd4ad6cb)
460 - + git-status.txt: render tables correctly under Asciidoctor
461 - + Documentation: do not nest open blocks
462 - + git-column.txt: fix section header
588 +* cc/parial-clone-doc-typofix (2019-01-14) 1 commit
589 + (merged to 'next' on 2019-01-14 at 0395de767e)
590 + + partial-clone: add missing 'is' in doc
591
464 - Some of the documentation pages formatted incorrectly with
465 - Asciidoctor, which have been fixed.
592 + Doc fix.
593
594 Will merge to 'master'.
595
596
470 -* nd/worktree-remove-with-uninitialized-submodules (2019-01-07) 1 commit
471 - (merged to 'next' on 2019-01-08 at e19cfe8741)
472 - + worktree: allow to (re)move worktrees with uninitialized submodules
597 +* jk/remote-insteadof-cleanup (2019-01-11) 1 commit
598 + (merged to 'next' on 2019-01-18 at 112c93eef3)
599 + + remote: check config validity before creating rewrite struct
600
474 - "git worktree remove" and "git worktree move" refused to work when
475 - there is a submodule involved. This has been loosened to ignore
476 - uninitialized submodules.
601 + Code clean-up.
602
603 Will merge to 'master'.
604
605
481 -* sb/submodule-unset-core-worktree-when-worktree-is-lost (2018-12-26) 4 commits
482 - (merged to 'next' on 2019-01-08 at 38f3175a2b)
483 - + submodule deinit: unset core.worktree
484 - + submodule--helper: fix BUG message in ensure_core_worktree
485 - + submodule: unset core.worktree if no working tree is present
486 - + submodule update: add regression test with old style setups
606 +* jk/save-getenv-result (2019-01-11) 6 commits
607 + (merged to 'next' on 2019-01-18 at 429c77402a)
608 + + builtin_diff(): read $GIT_DIFF_OPTS closer to use
609 + + merge-recursive: copy $GITHEAD strings
610 + + init: make a copy of $GIT_DIR string
611 + + config: make a copy of $GIT_CONFIG string
612 + + commit: copy saved getenv() result
613 + + get_super_prefix(): copy getenv() result
614
488 - The core.worktree setting in a submodule repository should not be
489 - pointing at a directory when the submodule loses its working tree
490 - (e.g. getting deinit'ed), but the code did not properly maintain
491 - this invariant.
615 + There were many places the code relied on the string returned from
616 + getenv() to be non-volatile, which is not true, that have been
617 + corrected.
618
619 Will merge to 'master'.
620
621
496 -* so/cherry-pick-always-allow-m1 (2019-01-07) 4 commits
497 - (merged to 'next' on 2019-01-08 at 2b790fec25)
498 - + t3506: validate '-m 1 -ff' is now accepted for non-merge commits
499 - + t3502: validate '-m 1' argument is now accepted for non-merge commits
500 - + cherry-pick: do not error on non-merge commits when '-m 1' is specified
501 - + t3510: stop using '-m 1' to force failure mid-sequence of cherry-picks
502 -
503 - "git cherry-pick -m1" was forbidden when picking a non-merge
504 - commit, even though there _is_ parent number 1 for such a commit.
505 - This was done to avoid mistakes back when "cherry-pick" was about
506 - picking a single commit, but is no longer useful with "cherry-pick"
507 - that can pick a range of commits. Now the "-m$num" option is
508 - allowed when picking any commit, as long as $num names an existing
509 - parent of the commit.
622 +* jt/fetch-v2-sideband (2019-01-17) 5 commits
623 + - tests: define GIT_TEST_SIDEBAND_ALL
624 + - {fetch,upload}-pack: sideband v2 fetch response
625 + - sideband: reverse its dependency on pkt-line
626 + - pkt-line: introduce struct packet_writer
627 + - Merge branch 'ms/packet-err-check' into jt/fetch-v2-sideband
628 + (this branch uses ms/packet-err-check.)
629
511 - Technically this is a backward incompatible change; hopefully
512 - nobody is relying on the error-checking behaviour.
630 + "git fetch" and "git upload-pack" learned to send all exchange over
631 + the sideband channel while talking the v2 protocol.
632
514 - Will merge to 'master'.
633 + Will merge to 'next'.
634
635
517 -* cy/completion-typofix (2019-01-03) 1 commit
518 - (merged to 'next' on 2019-01-08 at 6c6f01a07d)
519 - + completion: fix typo in git-completion.bash
636 +* kg/external-diff-save-env (2019-01-11) 1 commit
637 + (merged to 'next' on 2019-01-14 at 8281bbd48b)
638 + + diff: ensure correct lifetime of external_diff_cmd
639
521 - Typofix.
640 + The code to drive GIT_EXTERNAL_DIFF command relied on the string
641 + returned from getenv() to be non-volatile, which is not true, that
642 + has been corrected.
643
644 Will merge to 'master'.
645
646
526 -* cy/zsh-completion-SP-in-path (2019-01-03) 2 commits
527 - (merged to 'next' on 2019-01-08 at fee27de30b)
528 - + completion: treat results of git ls-tree as file paths
529 - + zsh: complete unquoted paths with spaces correctly
647 +* ld/git-p4-shelve-update-fix (2019-01-18) 2 commits
648 + - git-p4: handle update of moved/copied files when updating a shelve
649 + - git-p4: add failing test for shelved CL update involving move/copy
650
531 - With zsh, "git cmd path<TAB>" was completed to "git cmd path name"
532 - when the completed path has a special character like SP in it,
533 - without any attempt to keep "path name" a single filename. This
534 - has been fixed to complete it to "git cmd path\ name" just like
535 - Bash completion does.
651 + "git p4" failed to update a shelved change when there were moved
652 + files, which has been corrected.
653
537 - Will merge to 'master'.
654 + Will merge to 'next'.
655
656
540 -* ds/commit-graph-assert-missing-parents (2019-01-02) 1 commit
541 - (merged to 'next' on 2019-01-08 at d141f063e0)
542 - + commit-graph: writing missing parents is a BUG
657 +* ma/clear-repository-format (2019-01-14) 3 commits
658 + - setup: add `clear_repository_format()`
659 + - setup: do not use invalid `repository_format`
660 + - setup: free old value before setting `work_tree`
661
544 - Tightening error checking in commit-graph writer.
662 + The setup code has been cleaned up to avoid leaks around the
663 + repository_format structure.
664
546 - Will merge to 'master'.
665 + cf. <20190115193112.GE4886@sigill.intra.peff.net>
666
667
549 -* ed/simplify-setup-git-dir (2019-01-03) 1 commit
550 - (merged to 'next' on 2019-01-08 at 8722c7c2ef)
551 - + Simplify handling of setup_git_directory_gently() failure cases.
668 +* nd/the-index-final (2019-01-14) 11 commits
669 + - cache.h: flip NO_THE_INDEX_COMPATIBILITY_MACROS switch
670 + - read-cache.c: remove the_* from index_has_changes()
671 + - merge-recursive.c: remove implicit dependency on the_repository
672 + - merge-recursive.c: remove implicit dependency on the_index
673 + - sha1-name.c: remove implicit dependency on the_index
674 + - read-cache.c: replace update_index_if_able with repo_&
675 + - read-cache.c: kill read_index()
676 + - checkout: avoid the_index when possible
677 + - repository.c: replace hold_locked_index() with repo_hold_locked_index()
678 + - notes-utils.c: remove the_repository references
679 + - grep: use grep_opt->repo instead of explict repo argument
680
553 - Code simplification.
681 + The assumption to work on the single "in-core index" instance has
682 + been reduced from the library-ish part of the codebase.
683
555 - Will merge to 'master'.
684 + This obviously has fallouts with a few topics in flight, but
685 + otherwise it seemed to be in good enough shape.
686
687
558 -* es/doc-worktree-guessremote-config (2018-12-28) 1 commit
559 - (merged to 'next' on 2019-01-08 at f1dc5e39a6)
560 - + doc/config: do a better job of introducing 'worktree.guessRemote'
688 +* bc/tree-walk-oid (2019-01-15) 5 commits
689 + (merged to 'next' on 2019-01-18 at 60c38b9e4a)
690 + + cache: make oidcpy always copy GIT_MAX_RAWSZ bytes
691 + + tree-walk: store object_id in a separate member
692 + + match-trees: use hashcpy to splice trees
693 + + match-trees: compute buffer offset correctly when splicing
694 + + tree-walk: copy object ID before use
695
562 - Doc clarification.
696 + The code to walk tree objects has been taught that we may be
697 + working with object names that are not computed with SHA-1.
698
699 Will merge to 'master'.
700
701
567 -* ew/ban-strncat (2019-01-02) 1 commit
568 - (merged to 'next' on 2019-01-08 at 3bba2ae2bb)
569 - + banned.h: mark strncat() as banned
702 +* js/add-e-clear-patch-before-stating (2019-01-15) 1 commit
703 + (merged to 'next' on 2019-01-18 at 9ea7fc4b49)
704 + + add --edit: truncate the patch file
705
571 - The "strncat()" function is now among the banned functions.
706 + "git add -e" got confused when the change it wants to let the user
707 + edit is smaller than the previous change that was left over in a
708 + temporary file.
709
710 Will merge to 'master'.
711
712
576 -* jk/dev-build-format-security (2019-01-07) 1 commit
577 - (merged to 'next' on 2019-01-08 at 3761ab7026)
578 - + config.mak.dev: add -Wall, primarily for -Wformat, to help autoconf users
713 +* jt/fetch-pack-v2 (2019-01-10) 1 commit
714 + (merged to 'next' on 2019-01-18 at 75ceb55ff8)
715 + + fetch-pack: support protocol version 2
716
580 - Earlier we added "-Wformat-security" to developer builds, assuming
581 - that "-Wall" (which includes "-Wformat" which in turn is required
582 - to use "-Wformat-security") is always in effect. This is not true
583 - when config.mak.autogen is in use, unfortunately. This has been
584 - fixed by unconditionally adding "-Wall" to developer builds.
717 + "git fetch-pack" now can talk the version 2 protocol.
718
719 Will merge to 'master'.
720
@@ -598,7 +731,7 @@ of the repositories listed at
731 cf. <xmqq1s5uk6qh.fsf@gitster-ct.c.googlers.com>
732
733
601 -* js/rebase-am (2019-01-03) 4 commits
734 +* js/rebase-am (2019-01-18) 4 commits
735 - built-in rebase: call `git am` directly
736 - rebase: teach `reset_head()` to optionally skip the worktree
737 - rebase: avoid double reflog entry when switching branches
@@ -624,62 +757,27 @@ of the repositories listed at
757
758
759 * os/rebase-runs-post-checkout-hook (2019-01-02) 2 commits
627 - - rebase: run post-checkout hook on checkout
628 - - t5403: simplify by using a single repository
760 + (merged to 'next' on 2019-01-18 at a03d536318)
761 + + rebase: run post-checkout hook on checkout
762 + + t5403: simplify by using a single repository
763
764 "git rebase" internally runs "checkout" to switch between branches,
765 and the command used to call the post-checkout hook, but the
766 reimplementation stopped doing so, which is getting fixed.
767
634 - Will merge to 'next'.
635 -
636 -
637 -* rb/hpe (2019-01-03) 5 commits
638 - (merged to 'next' on 2019-01-08 at 52d6995399)
639 - + compat/regex/regcomp.c: define intptr_t and uintptr_t on NonStop
640 - + git-compat-util.h: add FLOSS headers for HPE NonStop
641 - + config.mak.uname: support for modern HPE NonStop config.
642 - + transport-helper: drop read/write errno checks
643 - + transport-helper: use xread instead of read
644 -
645 - Portability updates for the HPE NonStop platform.
646 -
647 - Will merge to 'master'.
648 -
649 -
650 -* sg/test-bash-version-fix (2019-01-03) 2 commits
651 - (merged to 'next' on 2019-01-08 at f83a0628a0)
652 - + Merge branch 'sg/test-bash-version-fix'
653 - + test-lib: check Bash version for '-x' without using shell arrays
654 - (this branch is used by sg/stress-test.)
655 -
656 - The test suite tried to see if it is run under bash, but the check
657 - itself failed under some other implementations of shell (notably
658 - under NetBSD). This has been corrected.
659 -
768 Will merge to 'master'.
769
770
771 * ms/http-no-more-failonerror (2019-01-10) 5 commits
664 - - test: test GIT_CURL_VERBOSE=1 shows an error
665 - - remote-curl: unset CURLOPT_FAILONERROR
666 - - remote-curl: define struct for CURLOPT_WRITEFUNCTION
667 - - http: enable keep_error for HTTP requests
668 - - http: support file handles for HTTP_KEEP_ERROR
772 + (merged to 'next' on 2019-01-18 at 8938d70b6d)
773 + + test: test GIT_CURL_VERBOSE=1 shows an error
774 + + remote-curl: unset CURLOPT_FAILONERROR
775 + + remote-curl: define struct for CURLOPT_WRITEFUNCTION
776 + + http: enable keep_error for HTTP requests
777 + + http: support file handles for HTTP_KEEP_ERROR
778
779 Debugging help for http transport.
780
672 - Will merge to 'next'.
673 -
674 -
675 -* tg/t5570-drop-racy-test (2019-01-07) 2 commits
676 - (merged to 'next' on 2019-01-08 at 9fc753bbdc)
677 - + Revert "t/lib-git-daemon: record daemon log"
678 - + t5570: drop racy test
679 -
680 - An inherently racy test that caused intermittent failures has been
681 - removed.
682 -
781 Will merge to 'master'.
782
783
@@ -698,12 +796,13 @@ of the repositories listed at
796
797
798 * ja/doc-build-l10n (2019-01-07) 1 commit
701 - - Documentation/Makefile add optional targets for l10n
799 + (merged to 'next' on 2019-01-18 at 5dbe5ad3d7)
800 + + Documentation/Makefile add optional targets for l10n
801
802 Prepare Documentation/Makefile so that manpage localization can
803 reuse it by overriding and tweaking the list of build products.
804
706 - Will merge to 'next'.
805 + Will merge to 'master'.
806
807
808 * jk/loose-object-cache-oid (2019-01-08) 11 commits
@@ -718,7 +817,6 @@ of the repositories listed at
817 - http: use struct object_id instead of bare sha1
818 - update comment references to sha1_object_info()
819 - sha1-file: fix outdated sha1 comment references
721 - (this branch uses rs/loose-object-cache-perffix.)
820
821 Code clean-up.
822
@@ -728,50 +826,11 @@ of the repositories listed at
826 which is probably more clear.
827
828
731 -* mm/multimail-1.5 (2019-01-07) 1 commit
732 - (merged to 'next' on 2019-01-08 at 8c872af48e)
733 - + git-multimail: update to release 1.5.0
734 -
735 - Update "git multimail" from the upstream.
736 -
737 - Will merge to 'master'.
738 -
739 -
740 -* po/git-p4-wo-login (2019-01-07) 1 commit
741 - (merged to 'next' on 2019-01-08 at a7cc58d6b9)
742 - + git-p4: fix problem when p4 login is not necessary
743 -
744 - "git p4" update.
745 -
746 - Will merge to 'master'.
747 -
748 -
749 -* rs/loose-object-cache-perffix (2019-01-08) 4 commits
750 - (merged to 'next' on 2019-01-08 at 36e355e099)
751 - + object-store: retire odb_load_loose_cache()
752 - + object-store: use one oid_array per subdirectory for loose cache
753 - + object-store: factor out odb_clear_loose_cache()
754 - + object-store: factor out odb_loose_cache()
755 - (this branch is used by jk/loose-object-cache-oid.)
756 -
757 - The loose object cache used to optimize existence look-up has been
758 - updated.
759 -
760 - Will merge to 'master'.
761 -
762 -
763 -* rs/sha1-file-close-mapped-file-on-error (2019-01-07) 1 commit
764 - (merged to 'next' on 2019-01-08 at 5841cbc153)
765 - + sha1-file: close fd of empty file in map_sha1_file_1()
766 -
767 - Code clean-up.
768 -
769 - Will merge to 'master'.
770 -
771 -
772 -* lt/date-human (2019-01-02) 3 commits
773 - - t0006-date.sh: add `human` date format tests.
829 +* lt/date-human (2019-01-18) 5 commits
830 + - Add `human` date format tests.
831 + - Add `human` format to test-tool
832 - Add 'human' date format documentation
833 + - Remove the proposed use of auto as secondary way to specify human
834 - Add 'human' date format
835
836 A new date format "--date=human" that morphs its output depending
@@ -804,12 +863,10 @@ of the repositories listed at
863 Comments?
864
865
807 -* ds/push-sparse-tree-walk (2019-01-14) 7 commits
808 - - revision.c: fix sparse warnings (sparse algorithm)
866 +* ds/push-sparse-tree-walk (2019-01-17) 5 commits
867 - pack-objects: create GIT_TEST_PACK_SPARSE
868 - pack-objects: create pack.useSparse setting
869 - revision: implement sparse algorithm
812 - - pack-objects: add --sparse option
870 - list-objects: consume sparse tree walk
871 - revision: add mark_tree_uninteresting_sparse
872
@@ -817,27 +874,27 @@ of the repositories listed at
874 objects to send, that trades the resulting packfile off to save
875 traversal cost to favor small pushes.
876
820 - May need a further update, including squashing the tip commit to a
821 - releavant place.
877 + Will merge to 'next'.
878
879
880 * js/rebase-i-redo-exec (2018-12-11) 3 commits
825 - - rebase: introduce a shortcut for --reschedule-failed-exec
826 - - rebase: add a config option to default to --reschedule-failed-exec
827 - - rebase: introduce --reschedule-failed-exec
881 + (merged to 'next' on 2019-01-18 at 71be3fedb7)
882 + + rebase: introduce a shortcut for --reschedule-failed-exec
883 + + rebase: add a config option to default to --reschedule-failed-exec
884 + + rebase: introduce --reschedule-failed-exec
885
886 "git rebase -i" learned to re-execute a command given with 'exec'
887 to run after it failed the last time.
888
832 - Will merge to 'next'.
889 + Will merge to 'master'.
890
891
835 -* md/list-objects-filter-by-depth (2019-01-10) 4 commits
836 - - tree:<depth>: skip some trees even when collecting omits
837 - - list-objects-filter: teach tree:# how to handle >0
838 - - Merge branch 'nd/the-index' into md/list-objects-filter-by-depth
839 - - Merge branch 'sb/more-repo-in-api' into md/list-objects-filter-by-depth
840 - (this branch uses sb/more-repo-in-api; is tangled with jt/get-reference-with-commit-graph.)
892 +* md/list-objects-filter-by-depth (2019-01-15) 4 commits
893 + + tree:<depth>: skip some trees even when collecting omits
894 + + list-objects-filter: teach tree:# how to handle >0
895 + + Merge branch 'nd/the-index' into md/list-objects-filter-by-depth
896 + + Merge branch 'sb/more-repo-in-api' into md/list-objects-filter-by-depth
897 + (this branch is used by js/filter-options-should-use-plain-int; uses sb/more-repo-in-api; is tangled with jt/get-reference-with-commit-graph.)
898
899 The objects-filter machinery learned "tree:<depth>" to filter
900 objects up to a given depth; earlier it only supported depth=0,
@@ -846,81 +903,37 @@ of the repositories listed at
903 Will merge to 'next'.
904
905
849 -* nd/style-opening-brace (2018-12-10) 1 commit
850 - (merged to 'next' on 2019-01-08 at 80de026e14)
851 - + style: the opening '{' of a function is in a separate line
852 -
853 - Code clean-up.
854 -
855 - Will merge to 'master'.
856 -
857 -
858 -* sg/stress-test (2019-01-07) 8 commits
859 - (merged to 'next' on 2019-01-08 at 2a65cea5f9)
860 - + test-lib: add the '--stress' option to run a test repeatedly under load
861 - + test-lib-functions: introduce the 'test_set_port' helper function
862 - + test-lib: set $TRASH_DIRECTORY earlier
863 - + test-lib: consolidate naming of test-results paths
864 - + test-lib: parse command line options earlier
865 - + test-lib: parse options in a for loop to keep $@ intact
866 - + test-lib: extract Bash version check for '-x' tracing
867 - + test-lib: translate SIGTERM and SIGHUP to an exit
868 - (this branch uses sg/test-bash-version-fix.)
869 -
870 - Flaky tests can now be repeatedly run under load with the
871 - "--stress" option.
872 -
873 - Will merge to 'master'.
874 -
875 -
906 * tg/checkout-no-overlay (2019-01-08) 8 commits
877 - - checkout: introduce checkout.overlayMode config
878 - - checkout: introduce --{,no-}overlay option
879 - - checkout: factor out mark_cache_entry_for_checkout function
880 - - checkout: clarify comment
881 - - read-cache: add invalidate parameter to remove_marked_cache_entries
882 - - entry: support CE_WT_REMOVE flag in checkout_entry
883 - - entry: factor out unlink_entry function
884 - - move worktree tests to t24*
907 + (merged to 'next' on 2019-01-18 at 1e2a79ba5c)
908 + + checkout: introduce checkout.overlayMode config
909 + + checkout: introduce --{,no-}overlay option
910 + + checkout: factor out mark_cache_entry_for_checkout function
911 + + checkout: clarify comment
912 + + read-cache: add invalidate parameter to remove_marked_cache_entries
913 + + entry: support CE_WT_REMOVE flag in checkout_entry
914 + + entry: factor out unlink_entry function
915 + + move worktree tests to t24*
916
917 "git checkout --no-overlay" can be used to trigger a new mode of
918 checking out paths out of the tree-ish, that allows paths that
919 match the pathspec that are in the current index and working tree
920 and are not in the tree-ish.
921
891 - Will merge to 'next'.
922 + Will merge to 'master'.
923
924
925 * jk/proto-v2-hidden-refs-fix (2019-01-10) 1 commit
895 - - upload-pack: support hidden refs with protocol v2
926 + (merged to 'next' on 2019-01-18 at 875dbbc71f)
927 + + upload-pack: support hidden refs with protocol v2
928
929 The v2 upload-pack protocol implementation failed to honor
930 hidden-ref configuration, which has been corrected.
931
900 - Will merge to 'next'.
901 - An earlier attempt reverted out of 'next'.
902 -
903 -
904 -* la/quiltimport-keep-non-patch (2019-01-07) 1 commit
905 - (merged to 'next' on 2019-01-08 at 37cb490792)
906 - + git-quiltimport: add --keep-non-patch option
907 -
908 - "git quiltimport" learned "--keep-non-patch" option.
909 -
910 - Will merge to 'master'.
911 -
912 -
913 -* sb/submodule-fetchjobs-default-to-one (2018-12-14) 1 commit
914 - (merged to 'next' on 2019-01-08 at 97a522ef5e)
915 - + submodule update: run at most one fetch job unless otherwise set
916 -
917 - "git submodule update" ought to use a single job unless asked, but
918 - by mistake used multiple jobs, which has been fixed.
919 -
932 Will merge to 'master'.
933 + An earlier attempt reverted out of 'next'.
934
935
923 -* js/commit-graph-chunk-table-fix (2018-12-14) 3 commits
936 +* js/commit-graph-chunk-table-fix (2019-01-15) 3 commits
937 - Makefile: correct example fuzz build
938 - commit-graph: fix buffer read-overflow
939 - commit-graph, fuzz: add fuzzer for commit-graph
@@ -928,15 +941,18 @@ of the repositories listed at
941 The codepath to read from the commit-graph file attempted to read
942 past the end of it when the file's table-of-contents was corrupt.
943
944 + Will merge to 'next'.
945 +
946
947 * jt/get-reference-with-commit-graph (2018-12-28) 1 commit
933 - - revision: use commit graph in get_reference()
934 - (this branch uses sb/more-repo-in-api; is tangled with md/list-objects-filter-by-depth.)
948 + (merged to 'next' on 2019-01-18 at bfc4eb9411)
949 + + revision: use commit graph in get_reference()
950 + (this branch uses sb/more-repo-in-api; is tangled with js/filter-options-should-use-plain-int and md/list-objects-filter-by-depth.)
951
952 Micro-optimize the code that prepares commit objects to be walked
953 by "git rev-list" when the commit-graph is available.
954
939 - Will merge to 'next'.
955 + Will merge to 'master'.
956
957
958 * dl/merge-cleanup-scissors-fix (2018-11-21) 2 commits
@@ -1025,7 +1041,7 @@ of the repositories listed at
1041 Will merge to 'next'.
1042
1043
1028 -* nb/branch-show-other-worktrees-head (2019-01-07) 4 commits
1044 +* nb/branch-show-other-worktrees-head (2019-01-15) 3 commits
1045 - branch: add an extra verbose output displaying worktree path for checked out branch
1046 - branch: mark and color a branch that is checked out in a linked worktree differently
1047 - ref-filter: add worktreepath atom
@@ -1041,49 +1057,31 @@ of the repositories listed at
1057 sign-off.
1058
1059
1044 -* ot/ref-filter-object-info (2019-01-10) 7 commits
1045 - (merged to 'next' on 2019-01-10 at 9e740568ce)
1046 - + ref-filter: give uintmax_t to format with %PRIuMAX
1047 - (merged to 'next' on 2019-01-08 at 0a4d4ed36a)
1048 - + ref-filter: add docs for new options
1049 - + ref-filter: add tests for deltabase
1050 - + ref-filter: add deltabase option
1051 - + ref-filter: add tests for objectsize:disk
1052 - + ref-filter: add check for negative file size
1053 - + ref-filter: add objectsize:disk option
1054 -
1055 - The "--format=<placeholder>" option of for-each-ref, branch and tag
1056 - learned to show a few more traits of objects that can be learned by
1057 - the object_info API.
1058 -
1059 - Will merge to 'master'.
1060 -
1061 -
1060 * sb/more-repo-in-api (2018-12-28) 23 commits
1063 - - t/helper/test-repository: celebrate independence from the_repository
1064 - - path.h: make REPO_GIT_PATH_FUNC repository agnostic
1065 - - commit: prepare free_commit_buffer and release_commit_memory for any repo
1066 - - commit-graph: convert remaining functions to handle any repo
1067 - - submodule: don't add submodule as odb for push
1068 - - submodule: use submodule repos for object lookup
1069 - - pretty: prepare format_commit_message to handle arbitrary repositories
1070 - - commit: prepare logmsg_reencode to handle arbitrary repositories
1071 - - commit: prepare repo_unuse_commit_buffer to handle any repo
1072 - - commit: prepare get_commit_buffer to handle any repo
1073 - - commit-reach: prepare in_merge_bases[_many] to handle any repo
1074 - - commit-reach: prepare get_merge_bases to handle any repo
1075 - - commit-reach.c: allow get_merge_bases_many_0 to handle any repo
1076 - - commit-reach.c: allow remove_redundant to handle any repo
1077 - - commit-reach.c: allow merge_bases_many to handle any repo
1078 - - commit-reach.c: allow paint_down_to_common to handle any repo
1079 - - commit: allow parse_commit* to handle any repo
1080 - - object: parse_object to honor its repository argument
1081 - - object-store: prepare has_{sha1, object}_file to handle any repo
1082 - - object-store: prepare read_object_file to deal with any repo
1083 - - object-store: allow read_object_file_extended to read from any repo
1084 - - packfile: allow has_packed_and_bad to handle arbitrary repositories
1085 - - sha1_file: allow read_object to read objects in arbitrary repositories
1086 - (this branch is used by jt/get-reference-with-commit-graph and md/list-objects-filter-by-depth.)
1061 + + t/helper/test-repository: celebrate independence from the_repository
1062 + + path.h: make REPO_GIT_PATH_FUNC repository agnostic
1063 + + commit: prepare free_commit_buffer and release_commit_memory for any repo
1064 + + commit-graph: convert remaining functions to handle any repo
1065 + + submodule: don't add submodule as odb for push
1066 + + submodule: use submodule repos for object lookup
1067 + + pretty: prepare format_commit_message to handle arbitrary repositories
1068 + + commit: prepare logmsg_reencode to handle arbitrary repositories
1069 + + commit: prepare repo_unuse_commit_buffer to handle any repo
1070 + + commit: prepare get_commit_buffer to handle any repo
1071 + + commit-reach: prepare in_merge_bases[_many] to handle any repo
1072 + + commit-reach: prepare get_merge_bases to handle any repo
1073 + + commit-reach.c: allow get_merge_bases_many_0 to handle any repo
1074 + + commit-reach.c: allow remove_redundant to handle any repo
1075 + + commit-reach.c: allow merge_bases_many to handle any repo
1076 + + commit-reach.c: allow paint_down_to_common to handle any repo
1077 + + commit: allow parse_commit* to handle any repo
1078 + + object: parse_object to honor its repository argument
1079 + + object-store: prepare has_{sha1, object}_file to handle any repo
1080 + + object-store: prepare read_object_file to deal with any repo
1081 + + object-store: allow read_object_file_extended to read from any repo
1082 + + packfile: allow has_packed_and_bad to handle arbitrary repositories
1083 + + sha1_file: allow read_object to read objects in arbitrary repositories
1084 + (this branch is used by js/filter-options-should-use-plain-int, jt/get-reference-with-commit-graph and md/list-objects-filter-by-depth.)
1085
1086 The in-core repository instances are passed through more codepaths.
1087
@@ -1091,23 +1089,24 @@ of the repositories listed at
1089
1090
1091 * bc/sha-256 (2018-11-14) 12 commits
1094 - - hash: add an SHA-256 implementation using OpenSSL
1095 - - sha256: add an SHA-256 implementation using libgcrypt
1096 - - Add a base implementation of SHA-256 support
1097 - - commit-graph: convert to using the_hash_algo
1098 - - t/helper: add a test helper to compute hash speed
1099 - - sha1-file: add a constant for hash block size
1100 - - t: make the sha1 test-tool helper generic
1101 - - t: add basic tests for our SHA-1 implementation
1102 - - cache: make hashcmp and hasheq work with larger hashes
1103 - - hex: introduce functions to print arbitrary hashes
1104 - - sha1-file: provide functions to look up hash algorithms
1105 - - sha1-file: rename algorithm to "sha1"
1092 + (merged to 'next' on 2019-01-18 at 3f161d31bb)
1093 + + hash: add an SHA-256 implementation using OpenSSL
1094 + + sha256: add an SHA-256 implementation using libgcrypt
1095 + + Add a base implementation of SHA-256 support
1096 + + commit-graph: convert to using the_hash_algo
1097 + + t/helper: add a test helper to compute hash speed
1098 + + sha1-file: add a constant for hash block size
1099 + + t: make the sha1 test-tool helper generic
1100 + + t: add basic tests for our SHA-1 implementation
1101 + + cache: make hashcmp and hasheq work with larger hashes
1102 + + hex: introduce functions to print arbitrary hashes
1103 + + sha1-file: provide functions to look up hash algorithms
1104 + + sha1-file: rename algorithm to "sha1"
1105
1106 Add sha-256 hash and plug it through the code to allow building Git
1107 with the "NewHash".
1108
1110 - Will merge to 'next'.
1109 + Will merge to 'master'.
1110
1111
1112 * js/vsts-ci (2018-10-16) 13 commits
@@ -1185,20 +1184,21 @@ of the repositories listed at
1184
1185
1186 * sb/submodule-recursive-fetch-gets-the-tip (2018-12-09) 9 commits
1188 - - fetch: ensure submodule objects fetched
1189 - - submodule.c: fetch in submodules git directory instead of in worktree
1190 - - submodule: migrate get_next_submodule to use repository structs
1191 - - repository: repo_submodule_init to take a submodule struct
1192 - - submodule: store OIDs in changed_submodule_names
1193 - - submodule.c: tighten scope of changed_submodule_names struct
1194 - - submodule.c: sort changed_submodule_names before searching it
1195 - - submodule.c: fix indentation
1196 - - sha1-array: provide oid_array_filter
1187 + (merged to 'next' on 2019-01-18 at 79a2809fbc)
1188 + + fetch: ensure submodule objects fetched
1189 + + submodule.c: fetch in submodules git directory instead of in worktree
1190 + + submodule: migrate get_next_submodule to use repository structs
1191 + + repository: repo_submodule_init to take a submodule struct
1192 + + submodule: store OIDs in changed_submodule_names
1193 + + submodule.c: tighten scope of changed_submodule_names struct
1194 + + submodule.c: sort changed_submodule_names before searching it
1195 + + submodule.c: fix indentation
1196 + + sha1-array: provide oid_array_filter
1197
1198 "git fetch --recurse-submodules" may not fetch the necessary commit
1199 that is bound to the superproject, which is getting corrected.
1200
1201 - Will merge to 'next'.
1201 + Will merge to 'master'.
1202
1203
1204 * js/add-i-coalesce-after-editing-hunk (2018-08-28) 1 commit
@@ -1211,7 +1211,8 @@ of the repositories listed at
1211 cf. <e5b2900a-0558-d3bf-8ea1-d526b078bbc2@talktalk.net>
1212
1213
1214 -* ps/stash-in-c (2019-01-04) 27 commits
1214 +* ps/stash-in-c (2019-01-18) 28 commits
1215 + - stash: fix segmentation fault when files were added with intent
1216 - tests: add a special setup where stash.useBuiltin is off
1217 - stash: optionally use the scripted version again
1218 - stash: add back the original, scripted `git stash`
@@ -1242,7 +1243,7 @@ of the repositories listed at
1243
1244 "git stash" rewritten in C.
1245
1245 - Comments?
1246 + Will merge to 'next'.
1247
1248
1249 * pw/add-p-select (2018-07-26) 4 commits
@@ -1261,32 +1262,3 @@ of the repositories listed at
1262 cf. <d622a95b-7302-43d4-4ec9-b2cf3388c653@talktalk.net>
1263 I found the feature to be hard to explain, and may result in more
1264 end-user complaints, but let's see.
1264 -
1265 ---------------------------------------------------
1266 -[Discarded]
1267 -
1268 -* nd/backup-log (2018-12-10) 24 commits
1269 - . FIXME
1270 - . rebase: keep backup of overwritten files on --skip or --abort
1271 - . am: keep backup of overwritten files on --skip or --abort
1272 - . checkout -f: keep backup of overwritten files
1273 - . reset --hard: keep backup of overwritten files
1274 - . unpack-trees.c: keep backup of ignored files being overwritten
1275 - . refs: keep backup of deleted reflog
1276 - . config --edit: support backup log
1277 - . sha1-file.c: let index_path() accept NULL istate
1278 - . backup-log: keep all blob references around
1279 - . gc: prune backup logs
1280 - . backup-log: add prune command
1281 - . backup-log: add log command
1282 - . backup-log: add diff command
1283 - . backup-log: add cat command
1284 - . backup-log.c: add API for walking backup log
1285 - . add--interactive: support backup log
1286 - . apply: support backup log with --keep-backup
1287 - . commit: support backup log
1288 - . update-index: support backup log with --keep-backup
1289 - . add: support backup log
1290 - . read-cache.c: new flag for add_index_entry() to write to backup log
1291 - . backup-log: add "update" subcommand
1292 - . doc: introduce new "backup log" concept