What's cooking (2018/03 #03)

Junio C Hamano committed Mar 14, 2018 at 18:30 UTC 692cc1294e2ecda064f81a47860f7dbefd87ceb3
1 file changed +602 -668
whats-cooking.txt
+602 -668
@@ -1,10 +1,10 @@
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 -Subject: What's cooking in git.git (Mar 2018, #02; Tue, 6)
4 -X-master-at: c6284da4ff4afbde8211efe5d03f3604b1c6b9d6
5 -X-next-at: d534789076285d319a5ede615f98c24b4ad17c81
3 +Subject: What's cooking in git.git (Mar 2018, #03; Wed, 14)
4 +X-master-at: 7fb6aefd2aaffe66e614f7f7b83e5b7ab16d4806
5 +X-next-at: 6dcf76e1189e32b367ea053200d21aa31432517e
6
7 -What's cooking in git.git (Mar 2018, #02; Tue, 6)
7 +What's cooking in git.git (Mar 2018, #03; Wed, 14)
8 --------------------------------------------------
9
10 Here are the topics that have been cooking. Commits prefixed with
@@ -20,280 +20,430 @@ of the repositories listed at
20 --------------------------------------------------
21 [Graduated to "master"]
22
23 -* ab/fetch-prune (2018-02-09) 17 commits
24 - (merged to 'next' on 2018-02-27 at eafb648dd9)
25 - + fetch: make the --prune-tags work with <url>
26 - + fetch: add a --prune-tags option and fetch.pruneTags config
27 - + fetch tests: add scaffolding for the new fetch.pruneTags
28 - + git-fetch & config doc: link to the new PRUNING section
29 - + git remote doc: correct dangerous lies about what prune does
30 - + git fetch doc: add a new section to explain the ins & outs of pruning
31 - + fetch tests: fetch <url> <spec> as well as fetch [<remote>]
32 - + fetch tests: expand case/esac for later change
33 - + fetch tests: double quote a variable for interpolation
34 - + fetch tests: test --prune and refspec interaction
35 - + fetch tests: add a tag to be deleted to the pruning tests
36 - + fetch tests: re-arrange arguments for future readability
37 - + fetch tests: refactor in preparation for testing tag pruning
38 - + remote: add a macro for "refs/tags/*:refs/tags/*"
39 - + fetch: stop accessing "remote" variable indirectly
40 - + fetch: trivially refactor assignment to ref_nr
41 - + fetch: don't redundantly NULL something calloc() gave us
42 -
43 - "git fetch --prune-tags" may be used as a handy short-hand for
44 - getting rid of stale tags that are locally held.
45 -
46 -
47 -* ab/simplify-perl-makefile (2018-02-15) 1 commit
48 - (merged to 'next' on 2018-02-27 at b0d68a2013)
49 - + Makefile: generate Git(3pm) as dependency of the 'doc' and 'man' targets
50 -
51 - Hotfix for a topic already in 'master'.
52 -
53 -
54 -* bw/c-plus-plus (2018-02-22) 37 commits
55 - (merged to 'next' on 2018-02-27 at daf85c03de)
56 - + replace: rename 'new' variables
57 - + trailer: rename 'template' variables
58 - + tempfile: rename 'template' variables
59 - + wrapper: rename 'template' variables
60 - + environment: rename 'namespace' variables
61 - + diff: rename 'template' variables
62 - + environment: rename 'template' variables
63 - + init-db: rename 'template' variables
64 - + unpack-trees: rename 'new' variables
65 - + trailer: rename 'new' variables
66 - + submodule: rename 'new' variables
67 - + split-index: rename 'new' variables
68 - + remote: rename 'new' variables
69 - + ref-filter: rename 'new' variables
70 - + read-cache: rename 'new' variables
71 - + line-log: rename 'new' variables
72 - + imap-send: rename 'new' variables
73 - + http: rename 'new' variables
74 - + entry: rename 'new' variables
75 - + diffcore-delta: rename 'new' variables
76 - + diff: rename 'new' variables
77 - + diff-lib: rename 'new' variable
78 - + commit: rename 'new' variables
79 - + combine-diff: rename 'new' variables
80 - + remote: rename 'new' variables
81 - + reflog: rename 'new' variables
82 - + pack-redundant: rename 'new' variables
83 - + help: rename 'new' variables
84 - + checkout: rename 'new' variables
85 - + apply: rename 'new' variables
86 - + apply: rename 'try' variables
87 - + diff: rename 'this' variables
88 - + rev-parse: rename 'this' variable
89 - + pack-objects: rename 'this' variables
90 - + blame: rename 'this' variables
91 - + object: rename function 'typename' to 'type_name'
92 - + object_info: change member name from 'typename' to 'type_name'
93 -
94 - We now avoid using identifiers that clash with C++ keywords. Even though
95 - it is not a goal to compile Git with C++ compilers, changes like
96 - this help use of code analysis tools that targets C++ on our
97 - codebase.
98 -
99 -
100 -* bw/doc-submodule-recurse-config-with-clone (2018-02-21) 1 commit
101 - (merged to 'next' on 2018-02-27 at 5b12841508)
102 - + submodule: indicate that 'submodule.recurse' doesn't apply to clone
23 +* ab/gc-auto-in-commit (2018-03-01) 1 commit
24 + (merged to 'next' on 2018-03-02 at 96a5a4d629)
25 + + commit: run git gc --auto just before the post-commit hook
26
104 - Doc update.
27 + "git commit" used to run "gc --auto" near the end, which was lost
28 + when the command was reimplemented in C by mistake.
29 +
30 +
31 +* ab/pre-auto-gc-battery (2018-02-28) 1 commit
32 + (merged to 'next' on 2018-03-06 at ca9cb273cb)
33 + + hooks/pre-auto-gc-battery: allow gc to run on non-laptops
34 +
35 + A sample auto-gc hook (in contrib/) to skip auto-gc while on
36 + battery has been updated to almost always allow running auto-gc
37 + unless on_ac_power command is absolutely sure that we are on
38 + battery power (earlier, it skipped unless the command is sure that
39 + we are on ac power).
40 +
41 +
42 +* ag/userdiff-go-funcname (2018-03-01) 1 commit
43 + (merged to 'next' on 2018-03-02 at ea404d1be9)
44 + + userdiff: add built-in pattern for golang
45 +
46 + "git diff" and friends learned funcname patterns for Go language
47 + source files.
48 +
49 +
50 +* bp/untracked-cache-noflush (2018-02-28) 2 commits
51 + (merged to 'next' on 2018-03-02 at 709887971b)
52 + + untracked cache: use git_env_bool() not getenv() for customization
53 + + dir.c: don't flag the index as dirty for changes to the untracked cache
54 +
55 + Writing out the index file when the only thing that changed in it
56 + is the untracked cache information is often wasteful, and this has
57 + been optimized out.
58 +
59 +
60 +* ds/find-unique-abbrev-optim (2018-02-27) 1 commit
61 + (merged to 'next' on 2018-03-02 at 0b6d4f9335)
62 + + sha1_name: fix uninitialized memory errors
63 +
64 + While finding unique object name abbreviation, the code may
65 + accidentally have read beyond the end of the array of object names
66 + in a pack.
67 +
68 +
69 +* ds/mark-parents-uninteresting-optim (2018-02-27) 1 commit
70 + (merged to 'next' on 2018-03-02 at 5a42c79806)
71 + + revision.c: reduce object database queries
72 +
73 + Micro optimization in revision traversal code.
74 +
75 +
76 +* jc/test-must-be-empty (2018-02-27) 1 commit
77 + (merged to 'next' on 2018-03-02 at ec129f1b97)
78 + + test_must_be_empty: make sure the file exists, not just empty
79 +
80 + Test framework tweak to catch developer thinko.
81 +
82 +
83 +* jh/status-no-ahead-behind (2018-01-24) 4 commits
84 + (merged to 'next' on 2018-03-02 at 68bde8d571)
85 + + status: support --no-ahead-behind in long format
86 + + status: update short status to respect --no-ahead-behind
87 + + status: add --[no-]ahead-behind to status and commit for V2 format.
88 + + stat_tracking_info: return +1 when branches not equal
89 +
90 + "git status" can spend a lot of cycles to compute the relation
91 + between the current branch and its upstream, which can now be
92 + disabled with "--no-ahead-behind" option.
93
94
107 -* bw/perl-timegm-timelocal-fix (2018-02-23) 1 commit
108 - (merged to 'next' on 2018-02-27 at 565a3141ce)
109 - + perl: call timegm and timelocal with 4-digit year
95 +* jk/add-i-diff-filter (2018-03-05) 2 commits
96 + (merged to 'next' on 2018-03-08 at 6ef737add3)
97 + + add--interactive: detect bogus diffFilter output
98 + + t3701: add a test for interactive.diffFilter
99 +
100 + The "interactive.diffFilter" used by "git add -i" must retain
101 + one-to-one correspondence between its input and output, but it was
102 + not enforced and caused end-user confusion. We now at least make
103 + sure the filtered result has the same number of lines as its input
104 + to detect a broken filter.
105 +
106 +
107 +* jk/smart-http-protocol-doc-fix (2018-03-05) 1 commit
108 + (merged to 'next' on 2018-03-08 at 599b1a7c42)
109 + + smart-http: document flush after "# service" line
110 +
111 + A doc update.
112 +
113 +
114 +* ma/roll-back-lockfiles (2018-02-28) 5 commits
115 + (merged to 'next' on 2018-03-06 at be29bf891c)
116 + + sequencer: do not roll back lockfile unnecessarily
117 + + merge: always roll back lock in `checkout_fast_forward()`
118 + + merge-recursive: always roll back lock in `merge_recursive_generic()`
119 + + sequencer: always roll back lock in `do_recursive_merge()`
120 + + sequencer: make lockfiles non-static
121 + (this branch is used by ma/skip-writing-unchanged-index.)
122
111 - Y2k20 fix ;-) for our perl scripts.
123 + Some codepaths used to take a lockfile and did not roll it back;
124 + they are automatically rolled back at program exit, so there is no
125 + real "breakage", but it still is a good practice to roll back when
126 + you are done with a lockfile.
127
128
114 -* jc/allow-ff-merging-kept-tags (2018-02-16) 1 commit
115 - (merged to 'next' on 2018-02-27 at 8b03610d2b)
116 - + merge: allow fast-forward when merging a tracked tag
129 +* mk/doc-pretty-fill (2018-02-27) 1 commit
130 + (merged to 'next' on 2018-03-02 at 623461b127)
131 + + docs/pretty-formats: fix typo '% <(<N>)' -> '%<|(<N>)'
132
118 - Since Git 1.7.9, "git merge" defaulted to --no-ff (i.e. even when
119 - the side branch being merged is a descendant of the current commit,
120 - create a merge commit instead of fast-forwarding) when merging a
121 - tag object. This was appropriate default for integrators who pull
122 - signed tags from their downstream contributors, but caused an
123 - unnecessary merges when used by downstream contributors who
124 - habitually "catch up" their topic branches with tagged releases
125 - from the upstream. Update "git merge" to default to --no-ff only
126 - when merging a tag object that does *not* sit at its usual place in
127 - refs/tags/ hierarchy, and allow fast-forwarding otherwise, to
128 - mitigate the problem.
133 + Docfix.
134
135
131 -* jk/cached-commit-buffer (2018-02-22) 2 commits
132 - (merged to 'next' on 2018-02-27 at af791d9a1e)
133 - + revision: drop --show-all option
134 - + commit: drop uses of get_cached_commit_buffer()
136 +* nd/diff-stat-with-summary (2018-02-27) 2 commits
137 + (merged to 'next' on 2018-03-06 at d543f92f5e)
138 + + diff: add --compact-summary
139 + + diff.c: refactor pprint_rename() to use strbuf
140
136 - Code clean-up.
141 + "git diff" and friends learned "--compact-summary" that shows the
142 + information usually given with the "--summary" option on the same
143 + line as the diffstat output of the "--stat" option (which saves
144 + vertical space and keeps info on a single path at the same place).
145
146
139 -* jk/strbuf-read-file-close-error (2018-02-23) 1 commit
140 - (merged to 'next' on 2018-02-27 at c5dfe33335)
141 - + strbuf_read_file(): preserve errno across close() call
147 +* nd/object-allocation-comments (2018-03-06) 2 commits
148 + (merged to 'next' on 2018-03-08 at 91d553a339)
149 + + object.h: realign object flag allocation comment
150 + + object.h: update flag allocation comment
151
143 - Code clean-up.
152 + Code doc update.
153
154
146 -* jk/test-helper-v-output-fix (2018-02-22) 1 commit
147 - (merged to 'next' on 2018-02-27 at c9109977e8)
148 - + t: send verbose test-helper output to fd 4
155 +* nd/parseopt-completion (2018-03-07) 45 commits
156 + (merged to 'next' on 2018-03-08 at 2461b7035d)
157 + + completion: more subcommands in _git_notes()
158 + + completion: complete --{reuse,reedit}-message= for all notes subcmds
159 + + completion: simplify _git_notes
160 + + completion: don't set PARSE_OPT_NOCOMPLETE on --rerere-autoupdate
161 + (merged to 'next' on 2018-03-02 at d72a6525fd)
162 + + completion: use __gitcomp_builtin in _git_worktree
163 + + completion: use __gitcomp_builtin in _git_tag
164 + + completion: use __gitcomp_builtin in _git_status
165 + + completion: use __gitcomp_builtin in _git_show_branch
166 + + completion: use __gitcomp_builtin in _git_rm
167 + + completion: use __gitcomp_builtin in _git_revert
168 + + completion: use __gitcomp_builtin in _git_reset
169 + + completion: use __gitcomp_builtin in _git_replace
170 + + remote: force completing --mirror= instead of --mirror
171 + + completion: use __gitcomp_builtin in _git_remote
172 + + completion: use __gitcomp_builtin in _git_push
173 + + completion: use __gitcomp_builtin in _git_pull
174 + + completion: use __gitcomp_builtin in _git_notes
175 + + completion: use __gitcomp_builtin in _git_name_rev
176 + + completion: use __gitcomp_builtin in _git_mv
177 + + completion: use __gitcomp_builtin in _git_merge_base
178 + + completion: use __gitcomp_builtin in _git_merge
179 + + completion: use __gitcomp_builtin in _git_ls_remote
180 + + completion: use __gitcomp_builtin in _git_ls_files
181 + + completion: use __gitcomp_builtin in _git_init
182 + + completion: use __gitcomp_builtin in _git_help
183 + + completion: use __gitcomp_builtin in _git_grep
184 + + completion: use __gitcomp_builtin in _git_gc
185 + + completion: use __gitcomp_builtin in _git_fsck
186 + + completion: use __gitcomp_builtin in _git_fetch
187 + + completion: use __gitcomp_builtin in _git_difftool
188 + + completion: use __gitcomp_builtin in _git_describe
189 + + completion: use __gitcomp_builtin in _git_config
190 + + completion: use __gitcomp_builtin in _git_commit
191 + + completion: use __gitcomp_builtin in _git_clone
192 + + completion: use __gitcomp_builtin in _git_clean
193 + + completion: use __gitcomp_builtin in _git_cherry_pick
194 + + completion: use __gitcomp_builtin in _git_checkout
195 + + completion: use __gitcomp_builtin in _git_branch
196 + + completion: use __gitcomp_builtin in _git_apply
197 + + completion: use __gitcomp_builtin in _git_am
198 + + completion: use __gitcomp_builtin in _git_add
199 + + git-completion.bash: introduce __gitcomp_builtin
200 + + parse-options: let OPT__FORCE take optional flags argument
201 + + parse-options: add OPT_xxx_F() variants
202 + + parse-options: support --git-completion-helper
203
150 - Test framework update.
204 + The parse-options API has been taught an option to help the
205 + completion script; the command line completion has been updated to
206 + take advantage of this mechanism.
207
208
153 -* ms/non-ascii-ticks (2018-02-22) 1 commit
154 - (merged to 'next' on 2018-02-27 at 41159fc4f0)
155 - + Documentation/gitsubmodules.txt: avoid non-ASCII apostrophes
209 +* nd/worktree-move (2018-03-06) 8 commits
210 + (merged to 'next' on 2018-03-06 at a26271e7de)
211 + + t2028: fix minor error and issues in newly-added "worktree move" tests
212 + (merged to 'next' on 2018-03-02 at 5c514dfc92)
213 + + worktree remove: allow it when $GIT_WORK_TREE is already gone
214 + + worktree remove: new command
215 + + worktree move: refuse to move worktrees with submodules
216 + + worktree move: accept destination as directory
217 + + worktree move: new command
218 + + worktree.c: add update_worktree_location()
219 + + worktree.c: add validate_worktree()
220
157 - Doc markup fix.
221 + "git worktree" learned move and remove subcommands.
222
223
160 -* nd/rebase-show-current-patch (2018-02-12) 3 commits
161 - (merged to 'next' on 2018-02-27 at 5a4e23a77c)
162 - + rebase: introduce and use pseudo-ref REBASE_HEAD
163 - + rebase: add --show-current-patch
164 - + am: add --show-current-patch
224 +* ot/ref-filter-cleanup (2018-02-21) 2 commits
225 + (merged to 'next' on 2018-03-02 at 3b4c39a4b5)
226 + + ref-filter: get rid of goto
227 + + ref-filter: get rid of duplicate code
228
166 - The new "--show-current-patch" option gives an end-user facing way
167 - to get the diff being applied when "git rebase" (and "git am")
168 - stops with a conflict.
229 + Code cleanup.
230
231
171 -* nm/tag-edit (2018-02-07) 1 commit
172 - (merged to 'next' on 2018-02-27 at 3bc8345213)
173 - + tag: add --edit option
232 +* pw/add-p-recount (2018-03-05) 9 commits
233 + (merged to 'next' on 2018-03-06 at 68952f9bb0)
234 + + add -p: don't rely on apply's '--recount' option
235 + + add -p: fix counting when splitting and coalescing
236 + + add -p: calculate offset delta for edited patches
237 + + add -p: adjust offsets of subsequent hunks when one is skipped
238 + + t3701: add failing test for pathological context lines
239 + + t3701: don't hard code sha1 hash values
240 + + t3701: use test_write_lines and write_script
241 + + t3701: indent here documents
242 + + add -i: add function to format hunk header
243 + (this branch is used by pw/add-p-select.)
244
175 - "git tag" learned an explicit "--edit" option that allows the
176 - message given via "-m" and "-F" to be further edited.
245 + "git add -p" has been lazy in coalescing split patches before
246 + passing the result to underlying "git apply", leading to corner
247 + case bugs; the logic to prepare the patch to be applied after hunk
248 + selections has been tightened.
249
250
179 -* pw/add-p-single (2018-02-13) 3 commits
180 - (merged to 'next' on 2018-02-27 at 0e2bd585e3)
181 - + add -p: improve error messages
182 - + add -p: only bind search key if there's more than one hunk
183 - + add -p: only display help for active keys
251 +* rj/test-i18ngrep (2018-02-28) 2 commits
252 + (merged to 'next' on 2018-03-06 at 7ea1a2352c)
253 + + t5536: simplify checking of messages output to stderr
254 + + t4151: consolidate multiple calls to test_i18ngrep
255
185 - "git add -p" used to offer "/" (look for a matching hunk) as a
186 - choice, even there was only one hunk, which has been corrected.
187 - Also the single-key help is now given only for keys that are
188 - enabled (e.g. help for '/' won't be shown when there is only one
189 - hunk).
256 + Test updates.
257
258
192 -* rs/strbuf-read-file-or-whine (2018-02-22) 1 commit
193 - (merged to 'next' on 2018-02-27 at 56017cb5e2)
194 - + sequencer: factor out strbuf_read_file_or_whine()
259 +* rs/perf-repeat-thrice-by-default (2018-02-27) 1 commit
260 + (merged to 'next' on 2018-03-02 at 4898b3c450)
261 + + perf: use GIT_PERF_REPEAT_COUNT=3 by default even without config file
262
196 - Code clean-up.
263 + Perf test regression fix.
264
265
199 -* sb/color-h-cleanup (2018-02-13) 1 commit
200 - (merged to 'next' on 2018-02-27 at 617345de77)
201 - + color.h: document and modernize header
202 - (this branch is used by sb/blame-color.)
266 +* rv/grep-cleanup (2018-02-23) 2 commits
267 + (merged to 'next' on 2018-03-02 at 4aafca15f9)
268 + + grep: simplify grep_oid and grep_file
269 + + grep: move grep_source_init outside critical section
270
204 - Devdoc update.
271 + Threaded "git grep" has been optimized to avoid allocation in code
272 + section that is covered under a mutex.
273
274
207 -* sg/t6300-modernize (2018-02-13) 1 commit
208 - (merged to 'next' on 2018-02-27 at b6f13b6915)
209 - + t6300-for-each-ref: fix "more than one quoting style" tests
275 +* sg/subtree-signed-commits (2018-02-23) 1 commit
276 + (merged to 'next' on 2018-03-02 at c5f6fd33e6)
277 + + subtree: fix add and pull for GPG-signed commits
278
211 - Test update.
279 + "git subtree" script (in contrib/) scripted around "git log", whose
280 + output got affected by end-user configuration like log.showsignature
281
282
214 -* sm/mv-dry-run-update (2018-02-07) 2 commits
215 - (merged to 'next' on 2018-02-27 at 17eef62ddf)
216 - + mv: remove unneeded 'if (!show_only)'
217 - + t7001: add test case for --dry-run
283 +* sg/test-x (2018-02-28) 11 commits
284 + (merged to 'next' on 2018-03-06 at ab0684b27c)
285 + + travis-ci: run tests with '-x' tracing
286 + + t/README: add a note about don't saving stderr of compound commands
287 + + t1510-repo-setup: mark as untraceable with '-x'
288 + + t9903-bash-prompt: don't check the stderr of __git_ps1()
289 + + t5570-git-daemon: don't check the stderr of a subshell
290 + + t5526: use $TRASH_DIRECTORY to specify the path of GIT_TRACE log file
291 + + t5500-fetch-pack: don't check the stderr of a subshell
292 + + t3030-merge-recursive: don't check the stderr of a subshell
293 + + t1507-rev-parse-upstream: don't check the stderr of a shell function
294 + + t: add means to disable '-x' tracing for individual test scripts
295 + + t: prevent '-x' tracing from interfering with test helpers' stderr
296
219 - Code clean-up.
297 + Running test scripts under -x option of the shell is often not a
298 + useful way to debug them, because the error messages from the
299 + commands tests try to capture and inspect are contaminated by the
300 + tracing output by the shell. An earlier work done to make it more
301 + pleasant to run tests under -x with recent versions of bash is
302 + extended to cover posix shells that do not support BASH_XTRACEFD.
303
304
222 -* xz/send-email-batch-size (2018-02-12) 1 commit
223 - (merged to 'next' on 2018-02-27 at da0247d532)
224 - + send-email: error out when relogin delay is missing
305 +* sg/travis-build-during-script-phase (2018-01-08) 1 commit
306 + (merged to 'next' on 2018-03-02 at 29e1585ae7)
307 + + travis-ci: build Git during the 'script' phase
308
226 - "git send-email" learned to complain when the batch-size option is
227 - not defined when the relogin-delay option is, since these two are
228 - mutually required.
309 + Build the executable in 'script' phase in Travis CI integration, to
310 + follow the established practice, rather than during 'before_script'
311 + phase. This allows the CI categorize the failures better ('failed'
312 + is project's fault, 'errored' is build environment's).
313
314 --------------------------------------------------
315 [New Topics]
316
233 -* bb/git-gui-ssh-key-files (2018-03-02) 2 commits
234 - - Merge branch 'bb/ssh-key-files' of git-gui into bb/git-gui-ssh-key-files
235 - - git-gui: search for all current SSH key types
317 +* ab/man-sec-list (2018-03-08) 1 commit
318 + (merged to 'next' on 2018-03-09 at 9626b691e2)
319 + + git manpage: note git-security@googlegroups.com
320
321 + Doc update.
322
238 -* bp/git-gui-bind-kp-enter (2018-03-02) 2 commits
239 - - Merge branch 'bp/bind-kp-enter' of git-gui into bp/git-gui-bind-kp-enter
240 - - git-gui: bind CTRL/CMD+numpad ENTER to do_commit
323 + Will merge to 'master'.
324
325
243 -* cb/git-gui-ttk-style (2018-03-05) 2 commits
244 - - Merge branch 'cb/ttk-style' of git-gui into cb/git-gui-ttk-style
245 - - git-gui: workaround ttk:style theme use
326 +* sg/cvs-tests-with-x (2018-03-08) 2 commits
327 + (merged to 'next' on 2018-03-09 at 6ec749c7b7)
328 + + t9402-git-cvsserver-refs: don't check the stderr of a subshell
329 + + t9400-git-cvsserver-server: don't rely on the output of 'test_cmp'
330
331 + Allow running a couple of tests with "sh -x".
332
248 -* dp/git-el-ls-files-excludes (2018-03-05) 1 commit
249 - - git.el: handle default excludesfile properly
333 + Will merge to 'master'.
334
335
252 -* jk/add-i-diff-filter (2018-03-05) 2 commits
253 - - add--interactive: detect bogus diffFilter output
254 - - t3701: add a test for interactive.diffFilter
336 +* tl/userdiff-csharp-async (2018-03-08) 1 commit
337 + (merged to 'next' on 2018-03-09 at 6dcf76e118)
338 + + userdiff.c: add C# async keyword in diff pattern
339
340 + Update funcname pattern used for C# to recognize "async" keyword.
341
257 -* jk/smart-http-protocol-doc-fix (2018-03-05) 1 commit
258 - - smart-http: document flush after "# service" line
342 + Will merge to 'master'.
343
344
261 -* nd/object-allocation-comments (2018-03-06) 2 commits
262 - - object.h: realign object flag allocation comment
263 - - object.h: update flag allocation comment
345 +* ti/fetch-everything-local-optim (2018-03-14) 1 commit
346 + - fetch-pack.c: use oidset to check existence of loose object
347
348 + A "git fetch" from a repository with insane number of refs into a
349 + repository that is already up-to-date still wasted too many cycles
350 + making many lstat(2) calls to see if these objects at the tips
351 + exist as loose objects locally. These lstat(2) calls are optimized
352 + away by enumerating all loose objects beforehand.
353
266 -* nd/pack-objects-pack-struct (2018-03-05) 9 commits
267 - - pack-objects: reorder 'hash' to pack struct object_entry
268 - - pack-objects: refer to delta objects by index instead of pointer
269 - - pack-objects: move in_pack out of struct object_entry
270 - - pack-objects: move in_pack_pos out of struct object_entry
271 - - pack-objects: note about in_pack_header_size
272 - - pack-objects: use bitfield for object_entry::depth
273 - - pack-objects: use bitfield for object_entry::dfs_state
274 - - pack-objects: turn type and in_pack_type to bitfields
275 - - pack-objects: document holes in struct object_entry.h
354 + It is unknown if the new strategy negatively affects existing use
355 + cases, fetching into a repository with many loose objects from a
356 + repository with small number of refs.
357
358 + Will merge to 'next'.
359
278 -* nd/repack-keep-pack (2018-03-06) 5 commits
279 - - pack-objects: display progress in get_object_details()
280 - - pack-objects: show some progress when counting kept objects
281 - - gc --auto: exclude base pack if not enough mem to "repack -ad"
282 - - repack: add --keep-pack option
283 - - t7700: have closing quote of a test at the beginning of line
360
361 +* ab/nuke-emacs-contrib (2018-03-13) 1 commit
362 + - git{,-blame}.el: remove old bitrotting Emacs code
363
286 -* nd/worktree-prune (2018-03-06) 3 commits
287 - - worktree prune: improve prune logic when worktree is moved
288 - - worktree: delete dead code
289 - - gc.txt: more details about what gc does
364 + The scripts in contrib/emacs/ have outlived their usefulness and
365 + have been removed.
366
367 + Will merge to 'next'.
368 +
369 +
370 +* bc/object-id (2018-03-14) 36 commits
371 + - convert: convert to struct object_id
372 + - sha1_file: introduce a constant for max header length
373 + - Convert lookup_replace_object to struct object_id
374 + - sha1_file: convert read_sha1_file to struct object_id
375 + - sha1_file: convert read_object_with_reference to object_id
376 + - tree-walk: convert tree entry functions to object_id
377 + - streaming: convert istream internals to struct object_id
378 + - tree-walk: convert get_tree_entry_follow_symlinks internals to object_id
379 + - builtin/notes: convert static functions to object_id
380 + - builtin/fmt-merge-msg: convert remaining code to object_id
381 + - sha1_file: convert sha1_object_info* to object_id
382 + - Convert remaining callers of sha1_object_info_extended to object_id
383 + - packfile: convert unpack_entry to struct object_id
384 + - sha1_file: convert retry_bad_packed_offset to struct object_id
385 + - sha1_file: convert assert_sha1_type to object_id
386 + - builtin/mktree: convert to struct object_id
387 + - streaming: convert open_istream to use struct object_id
388 + - sha1_file: convert check_sha1_signature to struct object_id
389 + - sha1_file: convert read_loose_object to use struct object_id
390 + - builtin/index-pack: convert struct ref_delta_entry to object_id
391 + - archive: convert sha1_file_to_archive to struct object_id
392 + - archive: convert write_archive_entry_fn_t to object_id
393 + - builtin/mktag: convert to struct object_id
394 + - replace_object: convert struct replace_object to object_id
395 + - send-pack: convert remaining functions to struct object_id
396 + - http-walker: convert struct object_request to use struct object_id
397 + - Convert find_unique_abbrev* to struct object_id
398 + - wt-status: convert struct wt_status_state to object_id
399 + - strbuf: convert strbuf_add_unique_abbrev to use struct object_id
400 + - ref-filter: convert grab_objectname to struct object_id
401 + - tree: convert read_tree_recursive to struct object_id
402 + - resolve-undo: convert struct resolve_undo_info to object_id
403 + - cache-tree: convert remnants to struct object_id
404 + - cache-tree: convert write_*_as_tree to object_id
405 + - builtin/write-tree: convert to struct object_id
406 + - bulk-checkin: convert index_bulk_checkin to struct object_id
407 +
408 + Conversion from uchar[20] to struct object_id continues.
409 +
410 + Will merge to 'next'.
411 +
412 +
413 +* jh/fsck-promisors (2018-03-13) 1 commit
414 + - sha1_file: restore OBJECT_INFO_QUICK functionality
415 +
416 + A hotfix to a topic that graduated recently.
417 +
418 + Will merge to 'next'.
419 +
420 +
421 +* ma/shortlog-revparse (2018-03-13) 3 commits
422 + - shortlog: do not accept revisions when run outside repo
423 + - shortlog: add usage-string for stdin-reading
424 + - git-shortlog.txt: reorder usages
425 +
426 + "git shortlog cruft" aborted with a BUG message when run outside a
427 + Git repository. The command has been taught to complain about
428 + extra and unwanted arguments on its command line instead in such a
429 + case.
430 +
431 + Expecting a reroll.
432 + cf. <CAN0heSoDSf+3VmRowHmiTPDDzfdvUjQi+tjpPF6RW172ZE5BWw@mail.gmail.com>
433
292 -* pw/add-p-select (2018-03-06) 3 commits
293 - - add -p: optimize line selection for short hunks
294 - - add -p: allow line selection to be inverted
295 - - add -p: select individual hunk lines
296 - (this branch uses pw/add-p-recount.)
434 +
435 +* ab/pcre-v2 (2018-03-14) 3 commits
436 + - Makefile: make USE_LIBPCRE=YesPlease mean v2, not v1
437 + - configure: detect redundant --with-libpcre & --with-libpcre1
438 + - configure: fix a regression in PCRE v1 detection
439 +
440 + Git can be built to use either v1 or v2 of the PCRE library, and so
441 + far, the build-time configuration USE_LIBPCRE=YesPlease instructed
442 + the build procedure to use v1, but now it means v2. USE_LIBPCRE1
443 + and USE_LIBPCRE2 can be used to explicitly choose which version to
444 + use, as before.
445 +
446 + Will merge to 'next'.
447
448 --------------------------------------------------
449 [Stalled]
@@ -346,69 +496,28 @@ of the repositories listed at
496 A build-time option has been added to allow Git to be told to refer
497 to its associated files relative to the main binary, in the same
498 way that has been possible on Windows for quite some time, for
349 - Linux, BSDs and Darwin.
350 -
351 - Perhaps it is about time to reboot the effort?
352 -
353 -
354 -* mk/http-backend-content-length (2017-11-27) 4 commits
355 - - SQUASH???
356 - - t5560-http-backend-noserver.sh: add CONTENT_LENGTH cases
357 - - SQUASH???
358 - - http-backend: respect CONTENT_LENGTH as specified by rfc3875
359 -
360 - The http-backend (used for smart-http transport) used to slurp the
361 - whole input until EOF, without paying attention to CONTENT_LENGTH
362 - that is supplied in the environment and instead expecting the Web
363 - server to close the input stream. This has been fixed.
364 -
365 - Expecting a reroll.
366 - Suggested fixes to be used when rerolling is queued, but I'd
367 - prefer _not_ squashing them myself.
368 -
369 - Also, it may be too complex solution for the problem.
370 - cf. <20171204171308.GA13332@sigill.intra.peff.net>
371 -
372 -
373 -* cc/require-tcl-tk-for-build (2017-11-29) 2 commits
374 - - travis-ci: avoid new tcl/tk build requirement
375 - - Makefile: check that tcl/tk is installed
376 -
377 - A first-time builder of Git may have installed neither tclsh nor
378 - msgfmt, in which case git-gui and gitk part will fail and break the
379 - build. As a workaround, refuse to run a build when tclsh is not
380 - installed and NO_TCLTK is not set.
381 -
382 - Stalled for too long without any response; will discard.
383 - I still feel that requring tclsh to be installed, with or without
384 - "escape hatch" for experts, may be too heavy-handed.
499 + Linux, BSDs and Darwin.
500
501 + Perhaps it is about time to reboot the effort?
502
387 -* mg/merge-base-fork-point (2017-09-17) 3 commits
388 - - merge-base: find fork-point outside partial reflog
389 - - merge-base: return fork-point outside reflog
390 - - t6010: test actual test output
503
392 - "merge-base --fork-point $branch $commit" is used to guess on which
393 - commit among the commits that were once at the tip of the $branch the
394 - $commit was built on top of, and it learns these historical tips from
395 - the reflog of the $branch. When the true fork-point is lost due to
396 - pruning of old reflog entries, the command does not give any output,
397 - because it has no way to guess correctly and does not want to mislead
398 - the user with a wrong guess.
504 +* mk/http-backend-content-length (2017-11-27) 4 commits
505 + - SQUASH???
506 + - t5560-http-backend-noserver.sh: add CONTENT_LENGTH cases
507 + - SQUASH???
508 + - http-backend: respect CONTENT_LENGTH as specified by rfc3875
509
400 - The command has been updated to give the best but not known to be
401 - correct guess, based on a hope that a merge-base between $commit and a
402 - virtual merge across all the reflog entries that still are available
403 - for $branch may still be a closer to the true fork-point than the
404 - merge-base between $commit and the current tip of the $branch.
510 + The http-backend (used for smart-http transport) used to slurp the
511 + whole input until EOF, without paying attention to CONTENT_LENGTH
512 + that is supplied in the environment and instead expecting the Web
513 + server to close the input stream. This has been fixed.
514
406 - This may have to be offered by an additional option, to allow the
407 - users that are prepared to see a potentially incorrect guess to opt
408 - into the feature, without affecting the current callers that may not
409 - be prepared to accept a guess that is not known to be correct.
515 + Expecting a reroll.
516 + Suggested fixes to be used when rerolling is queued, but I'd
517 + prefer _not_ squashing them myself.
518
411 - Stalled for too long without any response; will discard.
519 + Also, it may be too complex solution for the problem.
520 + cf. <20171204171308.GA13332@sigill.intra.peff.net>
521
522
523 * jk/drop-ancient-curl (2017-08-09) 5 commits
@@ -433,131 +542,116 @@ of the repositories listed at
542 Needs resurrecting by making sure the fix is good and still applies
543 (or adjusted to today's codebase).
544
436 -
437 -* mg/status-in-progress-info (2017-05-10) 2 commits
438 - - status --short --inprogress: spell it as --in-progress
439 - - status: show in-progress info for short status
440 -
441 - "git status" learns an option to report various operations
442 - (e.g. "merging") that the user is in the middle of.
443 -
444 - Stalled for too long without any response; will discard.
445 - cf. <xmqqmvakcdqw.fsf@gitster.mtv.corp.google.com>
446 -
545 --------------------------------------------------
546 [Cooking]
547
450 -* sg/travis-build-during-script-phase (2018-01-08) 1 commit
451 - (merged to 'next' on 2018-03-02 at 29e1585ae7)
452 - + travis-ci: build Git during the 'script' phase
453 -
454 - Build the executable in 'script' phase in Travis CI integration, to
455 - follow the established practice, rather than during 'before_script'
456 - phase. This allows the CI categorize the failures better ('failed'
457 - is project's fault, 'errored' is build environment's).
458 -
459 - Will merge to 'master'.
460 -
461 -
462 -* np/send-email-header-parsing (2017-12-15) 1 commit
463 - - send-email: extract email-parsing code into a subroutine
464 - (this branch is used by cl/send-email-reply-to.)
465 -
466 - Code refactoring.
467 -
468 -
469 -* ld/p4-unshelve (2018-02-22) 1 commit
470 - - git-p4: add unshelve command
471 -
472 - "git p4" learned to "unshelve" shelved commit from P4.
473 -
474 - Will hold, perhaps drop and use format-change that uses a proper "diff".
475 - cf. <CAE5ih7_ooDMqVtTMoQ70s5XCkncr04HY0JkqSp1UmKQeG81oaA@mail.gmail.com>
476 -
548 +* bb/git-gui-ssh-key-files (2018-03-02) 2 commits
549 + - Merge branch 'bb/ssh-key-files' of git-gui into bb/git-gui-ssh-key-files
550 + - git-gui: search for all current SSH key types
551
478 -* ps/contains-id-error-message (2018-03-06) 1 commit
479 - - parse-options: squelch usage help on certain errors
552 + "git gui" learned that "~/.ssh/id_ecdsa.pub" and
553 + "~/.ssh/id_ed25519.pub" are also possible SSH key files.
554
481 - "git tag --contains no-such-commit" gave a full list of options
482 - after giving an error message.
555
484 - Rebooted and fixed the root cause of the issue at a lower level.
556 +* bp/git-gui-bind-kp-enter (2018-03-02) 2 commits
557 + - Merge branch 'bp/bind-kp-enter' of git-gui into bp/git-gui-bind-kp-enter
558 + - git-gui: bind CTRL/CMD+numpad ENTER to do_commit
559
560 + "git gui" performs commit upon CTRL/CMD+ENTER but the
561 + CTRL/CMD+KP_ENTER (i.e. enter key on the numpad) did not have the
562 + same key binding. It now does.
563
487 -* rv/grep-cleanup (2018-02-23) 2 commits
488 - (merged to 'next' on 2018-03-02 at 4aafca15f9)
489 - + grep: simplify grep_oid and grep_file
490 - + grep: move grep_source_init outside critical section
564
492 - Threaded "git grep" has been optimized to avoid allocation in code
493 - section that is covered under a mutex.
565 +* cb/git-gui-ttk-style (2018-03-05) 2 commits
566 + - Merge branch 'cb/ttk-style' of git-gui into cb/git-gui-ttk-style
567 + - git-gui: workaround ttk:style theme use
568
495 - Will merge to 'master'.
569 + "git gui" has been taught to work with old versions of tk (like
570 + 8.5.7) that do not support "ttk::style theme use" as a way to query
571 + the current theme.
572
573
498 -* sg/subtree-signed-commits (2018-02-23) 1 commit
499 - (merged to 'next' on 2018-03-02 at c5f6fd33e6)
500 - + subtree: fix add and pull for GPG-signed commits
574 +* nd/pack-objects-pack-struct (2018-03-05) 9 commits
575 + - pack-objects: reorder 'hash' to pack struct object_entry
576 + - pack-objects: refer to delta objects by index instead of pointer
577 + - pack-objects: move in_pack out of struct object_entry
578 + - pack-objects: move in_pack_pos out of struct object_entry
579 + - pack-objects: note about in_pack_header_size
580 + - pack-objects: use bitfield for object_entry::depth
581 + - pack-objects: use bitfield for object_entry::dfs_state
582 + - pack-objects: turn type and in_pack_type to bitfields
583 + - pack-objects: document holes in struct object_entry.h
584
502 - "git subtree" script (in contrib/) scripted around "git log", whose
503 - output got affected by end-user configuration like log.showsignature
585 + "git pack-objects" needs to allocate tons of "struct object_entry"
586 + while doing its work, and shrinking its size helps the performance
587 + quite a bit.
588
505 - Will merge to 'master'.
589 + Will merge to 'next'.
590
591
508 -* ds/find-unique-abbrev-optim (2018-02-27) 1 commit
509 - (merged to 'next' on 2018-03-02 at 0b6d4f9335)
510 - + sha1_name: fix uninitialized memory errors
592 +* nd/repack-keep-pack (2018-03-07) 6 commits
593 + - SQUASH???
594 + - pack-objects: display progress in get_object_details()
595 + - pack-objects: show some progress when counting kept objects
596 + - gc --auto: exclude base pack if not enough mem to "repack -ad"
597 + - repack: add --keep-pack option
598 + - t7700: have closing quote of a test at the beginning of line
599
512 - While finding unique object name abbreviation, the code may
513 - accidentally have read beyond the end of the array of object names
514 - in a pack.
600 + "git gc" in a large repository takes a lot of time as it considers
601 + to repack all objects into one pack by default. The command has
602 + been taught to pretend as if the largest existing packfile is
603 + marked with ".keep" so that it is left untouched while objects in
604 + other packs and loose ones are repacked.
605
516 - Will merge to 'master'.
606 + Expecting a reroll.
607 + cf. <CACsJy8BW_EtxQvgL=YrCXCQY7cEWCQxgfkeH=Gd=X=uVYhPJcw@mail.gmail.com>
608 + Except for final finishing touches, this looked more-or-less ready
609 + for 'next'.
610
611
519 -* ds/mark-parents-uninteresting-optim (2018-02-27) 1 commit
520 - (merged to 'next' on 2018-03-02 at 5a42c79806)
521 - + revision.c: reduce object database queries
612 +* nd/worktree-prune (2018-03-06) 3 commits
613 + - worktree prune: improve prune logic when worktree is moved
614 + - worktree: delete dead code
615 + - gc.txt: more details about what gc does
616
523 - Micro optimization in revision traversal code.
617 + The way "git worktree prune" worked internally has been simplified,
618 + by assuming how "git worktree move" moves an existing worktree to a
619 + different place.
620
525 - Will merge to 'master'.
621 + Will merge to 'next'.
622
623
528 -* jc/test-must-be-empty (2018-02-27) 1 commit
529 - (merged to 'next' on 2018-03-02 at ec129f1b97)
530 - + test_must_be_empty: make sure the file exists, not just empty
624 +* pw/add-p-select (2018-03-06) 3 commits
625 + - add -p: optimize line selection for short hunks
626 + - add -p: allow line selection to be inverted
627 + - add -p: select individual hunk lines
628
532 - Test framework tweak to catch developer thinko.
629 + "git add -p" interactive interface learned to let users choose
630 + individual added/removed lines to be used in the operation, instead
631 + of accepting or rejecting a whole hunk.
632
534 - Will merge to 'master'.
633 + Expecting a reroll.
634 + cf. <6476d776-dbf7-09cf-1c65-e413798b9987@talktalk.net>
635
636
537 -* ma/roll-back-lockfiles (2018-02-28) 5 commits
538 - (merged to 'next' on 2018-03-06 at be29bf891c)
539 - + sequencer: do not roll back lockfile unnecessarily
540 - + merge: always roll back lock in `checkout_fast_forward()`
541 - + merge-recursive: always roll back lock in `merge_recursive_generic()`
542 - + sequencer: always roll back lock in `do_recursive_merge()`
543 - + sequencer: make lockfiles non-static
544 - (this branch is used by ma/skip-writing-unchanged-index.)
637 +* ld/p4-unshelve (2018-02-22) 1 commit
638 + - git-p4: add unshelve command
639
546 - Some codepaths used to take a lockfile and did not roll it back;
547 - they are automatically rolled back at program exit, so there is no
548 - real "breakage", but it still is a good practice to roll back when
549 - you are done with a lockfile.
640 + "git p4" learned to "unshelve" shelved commit from P4.
641
551 - Will merge to 'master'.
642 + Will hold, perhaps drop and use format-change that uses a proper "diff".
643 + cf. <CAE5ih7_ooDMqVtTMoQ70s5XCkncr04HY0JkqSp1UmKQeG81oaA@mail.gmail.com>
644
645
554 -* mk/doc-pretty-fill (2018-02-27) 1 commit
555 - (merged to 'next' on 2018-03-02 at 623461b127)
556 - + docs/pretty-formats: fix typo '% <(<N>)' -> '%<|(<N>)'
646 +* ps/contains-id-error-message (2018-03-06) 1 commit
647 + - parse-options: squelch usage help on certain errors
648
558 - Docfix.
649 + "git tag --contains no-such-commit" gave a full list of options
650 + after giving an error message.
651
560 - Will merge to 'master'.
652 + Expecting a reroll.
653 + cf. <CAN0heSrnERYggyJ8bL1nAV=X2JQYS8aOkc6nWZhnZu3oqhzAfA@mail.gmail.com>
654 + Rebooted and fixed the root cause of the issue at a lower level.
655
656
657 * nd/remove-ignore-env-field (2018-03-05) 5 commits
@@ -568,24 +662,9 @@ of the repositories listed at
662 - repository: initialize the_repository in main()
663 (this branch is used by sb/object-store and sb/packfiles-in-repository.)
664
665 + Code clean-up for the "repository" abstraction.
666
572 -* rj/test-i18ngrep (2018-02-28) 2 commits
573 - (merged to 'next' on 2018-03-06 at 7ea1a2352c)
574 - + t5536: simplify checking of messages output to stderr
575 - + t4151: consolidate multiple calls to test_i18ngrep
576 -
577 - Test updates.
578 -
579 - Will merge to 'master'.
580 -
581 -
582 -* rs/perf-repeat-thrice-by-default (2018-02-27) 1 commit
583 - (merged to 'next' on 2018-03-02 at 4898b3c450)
584 - + perf: use GIT_PERF_REPEAT_COUNT=3 by default even without config file
585 -
586 - Perf test regression fix.
587 -
588 - Will merge to 'master'.
667 + Will merge to 'next'.
668
669
670 * sb/object-store (2018-03-05) 27 commits
@@ -613,180 +692,93 @@ of the repositories listed at
692 - object-store: close all packs upon clearing the object store
693 - object-store: move packed_git and packed_git_mru to object store
694 - object-store: free alt_odb_list
616 - - object-store: move alt_odb_list and alt_odb_tail to object store
617 - - object-store: migrate alternates struct and functions from cache.h
618 - - repository: introduce raw object store field
619 - (this branch is used by sb/packfiles-in-repository; uses nd/remove-ignore-env-field.)
620 -
621 - Refactoring the internal global data structure to make it possible
622 - to open multiple repositories, work with and then close them.
623 -
624 - Rerolled by Duy on top of a separate preliminary clean-up topic.
625 - The resulting structure of the topics looked very sensible.
626 -
627 -
628 -* sb/packfiles-in-repository (2018-03-05) 12 commits
629 - - packfile: keep prepare_packed_git() private
630 - - packfile: allow find_pack_entry to handle arbitrary repositories
631 - - packfile: add repository argument to find_pack_entry
632 - - packfile: allow reprepare_packed_git to handle arbitrary repositories
633 - - packfile: allow prepare_packed_git to handle arbitrary repositories
634 - - packfile: allow prepare_packed_git_one to handle arbitrary repositories
635 - - packfile: add repository argument to reprepare_packed_git
636 - - packfile: add repository argument to prepare_packed_git
637 - - packfile: add repository argument to prepare_packed_git_one
638 - - packfile: allow install_packed_git to handle arbitrary repositories
639 - - packfile: allow rearrange_packed_git to handle arbitrary repositories
640 - - packfile: allow prepare_packed_git_mru to handle arbitrary repositories
641 - (this branch uses nd/remove-ignore-env-field and sb/object-store.)
642 -
643 - Refactoring of the internal global data structure continues.
644 -
645 -
646 -* sg/test-x (2018-02-28) 11 commits
647 - (merged to 'next' on 2018-03-06 at ab0684b27c)
648 - + travis-ci: run tests with '-x' tracing
649 - + t/README: add a note about don't saving stderr of compound commands
650 - + t1510-repo-setup: mark as untraceable with '-x'
651 - + t9903-bash-prompt: don't check the stderr of __git_ps1()
652 - + t5570-git-daemon: don't check the stderr of a subshell
653 - + t5526: use $TRASH_DIRECTORY to specify the path of GIT_TRACE log file
654 - + t5500-fetch-pack: don't check the stderr of a subshell
655 - + t3030-merge-recursive: don't check the stderr of a subshell
656 - + t1507-rev-parse-upstream: don't check the stderr of a shell function
657 - + t: add means to disable '-x' tracing for individual test scripts
658 - + t: prevent '-x' tracing from interfering with test helpers' stderr
659 -
660 - Running test scripts under -x option of the shell is often not a
661 - useful way to debug them, because the error messages from the
662 - commands tests try to capture and inspect are contaminated by the
663 - tracing output by the shell. An earlier work done to make it more
664 - pleasant to run tests under -x with recent versions of bash is
665 - extended to cover posix shells that do not support BASH_XTRACEFD.
666 -
667 - Will merge to 'master'.
668 -
669 -
670 -* ab/gc-auto-in-commit (2018-03-01) 1 commit
671 - (merged to 'next' on 2018-03-02 at 96a5a4d629)
672 - + commit: run git gc --auto just before the post-commit hook
673 -
674 - "git commit" used to run "gc --auto" near the end, which was lost
675 - when the command was reimplemented in C by mistake.
676 -
677 - Will merge to 'master'.
678 -
695 + - object-store: move alt_odb_list and alt_odb_tail to object store
696 + - object-store: migrate alternates struct and functions from cache.h
697 + - repository: introduce raw object store field
698 + (this branch is used by sb/packfiles-in-repository; uses nd/remove-ignore-env-field.)
699
680 -* ab/pre-auto-gc-battery (2018-02-28) 1 commit
681 - (merged to 'next' on 2018-03-06 at ca9cb273cb)
682 - + hooks/pre-auto-gc-battery: allow gc to run on non-laptops
700 + Refactoring the internal global data structure to make it possible
701 + to open multiple repositories, work with and then close them.
702
684 - A sample auto-gc hook (in contrib/) to skip auto-gc while on
685 - battery has been updated to almost always allow running auto-gc
686 - unless on_ac_power command is absolutely sure that we are on
687 - battery power (earlier, it skipped unless the command is sure that
688 - we are on ac power).
703 + Rerolled by Duy on top of a separate preliminary clean-up topic.
704 + The resulting structure of the topics looked very sensible.
705
690 - Will merge to 'master'.
706 + Waiting for a follow-up discussion.
707
708
693 -* ag/userdiff-go-funcname (2018-03-01) 1 commit
694 - (merged to 'next' on 2018-03-02 at ea404d1be9)
695 - + userdiff: add built-in pattern for golang
709 +* sb/packfiles-in-repository (2018-03-05) 12 commits
710 + - packfile: keep prepare_packed_git() private
711 + - packfile: allow find_pack_entry to handle arbitrary repositories
712 + - packfile: add repository argument to find_pack_entry
713 + - packfile: allow reprepare_packed_git to handle arbitrary repositories
714 + - packfile: allow prepare_packed_git to handle arbitrary repositories
715 + - packfile: allow prepare_packed_git_one to handle arbitrary repositories
716 + - packfile: add repository argument to reprepare_packed_git
717 + - packfile: add repository argument to prepare_packed_git
718 + - packfile: add repository argument to prepare_packed_git_one
719 + - packfile: allow install_packed_git to handle arbitrary repositories
720 + - packfile: allow rearrange_packed_git to handle arbitrary repositories
721 + - packfile: allow prepare_packed_git_mru to handle arbitrary repositories
722 + (this branch uses nd/remove-ignore-env-field and sb/object-store.)
723
697 - "git diff" and friends learned funcname patterns for Go language
698 - source files.
724 + Refactoring of the internal global data structure continues.
725
700 - Will merge to 'master'.
726 + Waiting for a follow-up discussion.
727
728
729 * ma/skip-writing-unchanged-index (2018-03-01) 1 commit
730 - write_locked_index(): add flag to avoid writing unchanged index
705 - (this branch uses ma/roll-back-lockfiles.)
731
732 Internal API clean-up to allow write_locked_index() optionally skip
733 writing the in-core index when it is not modified.
734
710 - May want to merge into ma/roll-back-lockfiles topic before merging
711 - to 'next'.
712 -
713 -
714 -* jh/status-no-ahead-behind (2018-01-24) 4 commits
715 - (merged to 'next' on 2018-03-02 at 68bde8d571)
716 - + status: support --no-ahead-behind in long format
717 - + status: update short status to respect --no-ahead-behind
718 - + status: add --[no-]ahead-behind to status and commit for V2 format.
719 - + stat_tracking_info: return +1 when branches not equal
720 -
721 - "git status" can spend a lot of cycles to compute the relation
722 - between the current branch and its upstream, which can now be
723 - disabled with "--no-ahead-behind" option.
724 -
725 - Will merge to 'master'.
726 -
727 -
728 -* nd/tilde-expand-opt-file-value (2018-02-14) 2 commits
729 - - init-db: change --template type to OPTION_FILENAME
730 - - parse-options: expand $HOME on filename options
731 -
732 - "git cmd --opt=~u/path/to/file" did not tilde-expand "~u" part to
733 - the path to the home directory of user 'u'
734 -
735 - Will discard.
736 - This may make the resulting whole more confusing, though.
737 - cf. <87wozffavp.fsf@evledraar.gmail.com>
735 + Will merge to 'next'.
736
737
738 * ab/perl-fixes (2018-03-05) 13 commits
741 - - perl Git::LoadCPAN: emit better errors under NO_PERL_CPAN_FALLBACKS
742 - - Makefile: add NO_PERL_CPAN_FALLBACKS knob
743 - - perl: move the perl/Git/FromCPAN tree to perl/FromCPAN
744 - - perl: generalize the Git::LoadCPAN facility
745 - - perl: move CPAN loader wrappers to another namespace
746 - - perl: update our copy of Mail::Address
747 - - perl: update our ancient copy of Error.pm
748 - - git-send-email: unconditionally use Net::{SMTP,Domain}
749 - - Git.pm: hard-depend on the File::{Temp,Spec} modules
750 - - gitweb: hard-depend on the Digest::MD5 5.8 module
751 - - Git.pm: add the "use warnings" pragma
752 - - Git.pm: remove redundant "use strict" from sub-package
753 - - perl: *.pm files should not have the executable bit
739 + (merged to 'next' on 2018-03-09 at 262d84c1ba)
740 + + perl Git::LoadCPAN: emit better errors under NO_PERL_CPAN_FALLBACKS
741 + + Makefile: add NO_PERL_CPAN_FALLBACKS knob
742 + + perl: move the perl/Git/FromCPAN tree to perl/FromCPAN
743 + + perl: generalize the Git::LoadCPAN facility
744 + + perl: move CPAN loader wrappers to another namespace
745 + + perl: update our copy of Mail::Address
746 + + perl: update our ancient copy of Error.pm
747 + + git-send-email: unconditionally use Net::{SMTP,Domain}
748 + + Git.pm: hard-depend on the File::{Temp,Spec} modules
749 + + gitweb: hard-depend on the Digest::MD5 5.8 module
750 + + Git.pm: add the "use warnings" pragma
751 + + Git.pm: remove redundant "use strict" from sub-package
752 + + perl: *.pm files should not have the executable bit
753
754 Clean-up to various pieces of Perl code we have.
755
757 - WIll merge to 'next'.
756 + Will merge to 'master'.
757
758
760 -* ds/commit-graph (2018-02-20) 13 commits
759 +* ds/commit-graph (2018-03-14) 17 commits
760 + - SQUASH??? sparse fixes
761 + - commit-graph: implement "--additive" option
762 - commit-graph: build graph from starting commits
763 - commit-graph: read only from specific pack-indexes
764 - commit: integrate commit graph with commit parsing
765 - commit-graph: close under reachability
766 - commit-graph: add core.commitGraph setting
766 - - commit-graph: implement --delete-expired
767 - - commit-graph: implement --set-latest
767 - commit-graph: implement git commit-graph read
768 - commit-graph: implement 'git-commit-graph write'
769 - commit-graph: implement write_commit_graph()
770 - commit-graph: create git-commit-graph builtin
771 - graph: add commit graph design document
772 - commit-graph: add format document
773 + - csum-file: refactor finalize_hashfile() method
774 + - csum-file: rename hashclose() to finalize_hashfile()
775 + - Merge branch 'jk/cached-commit-buffer' into HEAD
776 + - Merge branch 'jt/binsearch-with-fanout' into HEAD
777
778 Precompute and store information necessary for ancestry traversal
779 in a separate file to optimize graph walking.
780
778 - Reroll exists, but it appears that there will be a further reroll.
779 - cf. <1519698787-190494-1-git-send-email-dstolee@microsoft.com>
780 -
781 -
782 -* ot/ref-filter-cleanup (2018-02-21) 2 commits
783 - (merged to 'next' on 2018-03-02 at 3b4c39a4b5)
784 - + ref-filter: get rid of goto
785 - + ref-filter: get rid of duplicate code
786 -
787 - Code cleanup.
788 -
789 - Will merge to 'master'.
781 + It seems that this topic is getting there.
782
783
784 * ma/config-page-only-in-list-mode (2018-02-21) 3 commits
@@ -799,106 +791,7 @@ of the repositories listed at
791 pager setting when it is used for setting values (i.e. when the
792 purpose of the operation is not to "show").
793
802 - Is this ready for 'next'?
803 -
804 -
805 -* pw/add-p-recount (2018-03-05) 9 commits
806 - (merged to 'next' on 2018-03-06 at 68952f9bb0)
807 - + add -p: don't rely on apply's '--recount' option
808 - + add -p: fix counting when splitting and coalescing
809 - + add -p: calculate offset delta for edited patches
810 - + add -p: adjust offsets of subsequent hunks when one is skipped
811 - + t3701: add failing test for pathological context lines
812 - + t3701: don't hard code sha1 hash values
813 - + t3701: use test_write_lines and write_script
814 - + t3701: indent here documents
815 - + add -i: add function to format hunk header
816 - (this branch is used by pw/add-p-select.)
817 -
818 - "git add -p" has been lazy in coalescing split patches before
819 - passing the result to underlying "git apply", leading to corner
820 - case bugs; the logic to prepare the patch to be applied after hunk
821 - selections has been tightened.
822 -
823 - Will merge to 'master'.
824 -
825 -
826 -* bp/untracked-cache-noflush (2018-02-28) 2 commits
827 - (merged to 'next' on 2018-03-02 at 709887971b)
828 - + untracked cache: use git_env_bool() not getenv() for customization
829 - + dir.c: don't flag the index as dirty for changes to the untracked cache
830 -
831 - Writing out the index file when the only thing that changed in it
832 - is the untracked cache information is often wasteful, and this has
833 - been optimized out.
834 -
835 - Will merge to 'master'.
836 -
837 -
838 -* nd/diff-stat-with-summary (2018-02-27) 2 commits
839 - (merged to 'next' on 2018-03-06 at d543f92f5e)
840 - + diff: add --compact-summary
841 - + diff.c: refactor pprint_rename() to use strbuf
842 -
843 - "git diff" and friends learned "--compact-summary" that shows the
844 - information usually given with the "--summary" option on the same
845 - line as the diffstat output of the "--stat" option (which saves
846 - vertical space and keeps info on a single path at the same place).
847 -
848 - Will merge to 'master'.
849 -
850 -
851 -* nd/parseopt-completion (2018-03-06) 44 commits
852 - - SQUASH???
853 - - completion: simplify _git_notes
854 - - completion: don't set PARSE_OPT_NOCOMPLETE on --rerere-autoupdate
855 - (merged to 'next' on 2018-03-02 at d72a6525fd)
856 - + completion: use __gitcomp_builtin in _git_worktree
857 - + completion: use __gitcomp_builtin in _git_tag
858 - + completion: use __gitcomp_builtin in _git_status
859 - + completion: use __gitcomp_builtin in _git_show_branch
860 - + completion: use __gitcomp_builtin in _git_rm
861 - + completion: use __gitcomp_builtin in _git_revert
862 - + completion: use __gitcomp_builtin in _git_reset
863 - + completion: use __gitcomp_builtin in _git_replace
864 - + remote: force completing --mirror= instead of --mirror
865 - + completion: use __gitcomp_builtin in _git_remote
866 - + completion: use __gitcomp_builtin in _git_push
867 - + completion: use __gitcomp_builtin in _git_pull
868 - + completion: use __gitcomp_builtin in _git_notes
869 - + completion: use __gitcomp_builtin in _git_name_rev
870 - + completion: use __gitcomp_builtin in _git_mv
871 - + completion: use __gitcomp_builtin in _git_merge_base
872 - + completion: use __gitcomp_builtin in _git_merge
873 - + completion: use __gitcomp_builtin in _git_ls_remote
874 - + completion: use __gitcomp_builtin in _git_ls_files
875 - + completion: use __gitcomp_builtin in _git_init
876 - + completion: use __gitcomp_builtin in _git_help
877 - + completion: use __gitcomp_builtin in _git_grep
878 - + completion: use __gitcomp_builtin in _git_gc
879 - + completion: use __gitcomp_builtin in _git_fsck
880 - + completion: use __gitcomp_builtin in _git_fetch
881 - + completion: use __gitcomp_builtin in _git_difftool
882 - + completion: use __gitcomp_builtin in _git_describe
883 - + completion: use __gitcomp_builtin in _git_config
884 - + completion: use __gitcomp_builtin in _git_commit
885 - + completion: use __gitcomp_builtin in _git_clone
886 - + completion: use __gitcomp_builtin in _git_clean
887 - + completion: use __gitcomp_builtin in _git_cherry_pick
888 - + completion: use __gitcomp_builtin in _git_checkout
889 - + completion: use __gitcomp_builtin in _git_branch
890 - + completion: use __gitcomp_builtin in _git_apply
891 - + completion: use __gitcomp_builtin in _git_am
892 - + completion: use __gitcomp_builtin in _git_add
893 - + git-completion.bash: introduce __gitcomp_builtin
894 - + parse-options: let OPT__FORCE take optional flags argument
895 - + parse-options: add OPT_xxx_F() variants
896 - + parse-options: support --git-completion-helper
897 -
898 - Teach parse-options API an option to help the completion script,
899 - and make use of the mechanism in command line completion.
900 -
901 - Will merge to 'master'.
794 + Will merge to 'next'.
795
796
797 * pc/submodule-helper-foreach (2018-02-02) 5 commits
@@ -926,31 +819,25 @@ of the repositories listed at
819 suboptimal.
820
821
929 -* nd/worktree-move (2018-03-06) 8 commits
930 - (merged to 'next' on 2018-03-06 at a26271e7de)
931 - + t2028: fix minor error and issues in newly-added "worktree move" tests
932 - (merged to 'next' on 2018-03-02 at 5c514dfc92)
933 - + worktree remove: allow it when $GIT_WORK_TREE is already gone
934 - + worktree remove: new command
935 - + worktree move: refuse to move worktrees with submodules
936 - + worktree move: accept destination as directory
937 - + worktree move: new command
938 - + worktree.c: add update_worktree_location()
939 - + worktree.c: add validate_worktree()
822 +* np/send-email-header-parsing (2017-12-15) 1 commit
823 + (merged to 'next' on 2018-03-09 at 91ef7216f7)
824 + + send-email: extract email-parsing code into a subroutine
825 + (this branch is used by cl/send-email-reply-to.)
826
941 - "git worktree" learned move and remove subcommands.
827 + Code refactoring.
828
829 Will merge to 'master'.
830
831
832 * cl/send-email-reply-to (2018-03-06) 2 commits
947 - - send-email: support separate Reply-To address
948 - - send-email: rename variable for clarity
833 + (merged to 'next' on 2018-03-09 at 3d3c3ab441)
834 + + send-email: support separate Reply-To address
835 + + send-email: rename variable for clarity
836 (this branch uses np/send-email-header-parsing.)
837
838 "git send-email" learned "--reply-to=<address>" option.
839
953 - Will merge to 'next'.
840 + Will merge to 'master'.
841
842
843 * js/rebase-recreate-merge (2018-02-23) 12 commits
@@ -973,8 +860,7 @@ of the repositories listed at
860 Will merge to 'next'.
861
862
976 -* bw/protocol-v2 (2018-03-02) 36 commits
977 - - SQUASH???
863 +* bw/protocol-v2 (2018-03-14) 35 commits
864 - remote-curl: don't request v2 when pushing
865 - remote-curl: implement stateless-connect command
866 - http: eliminate "# service" line when using protocol v2
@@ -991,11 +877,11 @@ of the repositories listed at
877 - fetch-pack: support shallow requests
878 - fetch-pack: perform a fetch using v2
879 - upload-pack: introduce fetch server command
994 - - push: pass ref patterns when pushing
995 - - fetch: pass ref patterns when fetching
996 - - ls-remote: pass ref patterns when requesting a remote's refs
997 - - transport: convert transport_get_remote_refs to take a list of ref patterns
998 - - transport: convert get_refs_list to take a list of ref patterns
880 + - push: pass ref prefixes when pushing
881 + - fetch: pass ref prefixes when fetching
882 + - ls-remote: pass ref prefixes when requesting a remote's refs
883 + - transport: convert transport_get_remote_refs to take a list of ref prefixes
884 + - transport: convert get_refs_list to take a list of ref prefixes
885 - connect: request remote refs using v2
886 - ls-refs: introduce ls-refs server command
887 - serve: introduce git-serve
@@ -1014,13 +900,15 @@ of the repositories listed at
900 The beginning of the next-gen transfer protocol.
901
902
1017 -* ls/checkout-encoding (2018-03-06) 8 commits
903 +* ls/checkout-encoding (2018-03-09) 10 commits
904 - convert: add round trip check based on 'core.checkRoundtripEncoding'
905 - convert: add tracing for 'working-tree-encoding' attribute
906 + - convert: advise canonical UTF encoding names
907 - convert: check for detectable errors in UTF encodings
908 - convert: add 'working-tree-encoding' attribute
909 - utf8: add function to detect a missing UTF-16/32 BOM
910 - utf8: add function to detect prohibited UTF-16/32 BOM
911 + - strbuf: add a case insensitive starts_with()
912 - strbuf: add xstrdup_toupper()
913 - strbuf: remove unnecessary NUL assignment in xstrdup_tolower()
914
@@ -1028,8 +916,9 @@ of the repositories listed at
916 contents to the specified encoding when checking out to the working
917 tree (and the other way around when checking in).
918
1031 - Expecting a reroll; it is almost there, though.
1032 - cf. <570D707A-DD9E-4397-8155-E8B3C3D09760@gmail.com>
919 + Expecting a reroll.
920 + cf. <66370A41-A048-44E7-9BF8-4631C50AAE63@gmail.com>
921 + Modulo minor design decision corrections, the series is almost there.
922
923
924 * en/rename-directory-detection (2018-02-27) 29 commits
@@ -1077,34 +966,79 @@ of the repositories listed at
966 --------------------------------------------------
967 [Discarded]
968
1080 -* ot/cat-batch-format (2018-02-12) 23 commits
1081 - . cat-file: update of docs
1082 - . cat-file: tests for new atoms added
1083 - . for-each-ref: tests for new atoms added
1084 - . ref-filter: unifying formatting of cat-file opts
1085 - . ref-filter: make populate_value() internal again
1086 - . cat-file: reuse printing logic from ref-filter
1087 - . ref-filter: make valid_atom general again
1088 - . ref-filter: make cat_file_info independent
1089 - . cat-file: move skip_object_info into ref-filter
1090 - . ref_filter: add is_atom_used function
1091 - . ref-filter: get rid of mark_atom_in_object_info()
1092 - . cat-file: start reusing populate_value()
1093 - . ref-filter: rename field in ref_array_item stuct
1094 - . ref-filter: make populate_value() global
1095 - . cat-file: start use ref_array_item struct
1096 - . ref-filter: reuse parse_ref_filter_atom()
1097 - . cat-file: start migrating formatting to ref-filter
1098 - . cat-file: split expand_atom() into 2 functions
1099 - . cat-file: move struct expand_data into ref-filter
1100 - . ref-filter: make valid_atom as function parameter
1101 - . cat-file: reuse struct ref_format
1102 - . ref-filter: add return value to some functions
1103 - . ref-filter: get rid of goto
1104 -
1105 - Teach "cat-file --batch" to reuse the formatting machinery shared
1106 - by for-each-ref, branch --list, and tag --list.
1107 -
1108 - Discarded, as a rebooted effort is beginning elsewhere.
1109 - Allocates flex-array on stack, etc.
1110 - cf. <58b2bdcd-d621-fd21-ab4d-6a9478319b19@ramsayjones.plus.com>
969 +* cc/require-tcl-tk-for-build (2017-11-29) 2 commits
970 + - travis-ci: avoid new tcl/tk build requirement
971 + - Makefile: check that tcl/tk is installed
972 +
973 + A first-time builder of Git may have installed neither tclsh nor
974 + msgfmt, in which case git-gui and gitk part will fail and break the
975 + build. As a workaround, refuse to run a build when tclsh is not
976 + installed and NO_TCLTK is not set.
977 +
978 + Stalled for too long without any response; will discard.
979 + I still feel that requring tclsh to be installed, with or without
980 + "escape hatch" for experts, may be too heavy-handed.
981 +
982 +
983 +* mg/merge-base-fork-point (2017-09-17) 3 commits
984 + - merge-base: find fork-point outside partial reflog
985 + - merge-base: return fork-point outside reflog
986 + - t6010: test actual test output
987 +
988 + "merge-base --fork-point $branch $commit" is used to guess on which
989 + commit among the commits that were once at the tip of the $branch the
990 + $commit was built on top of, and it learns these historical tips from
991 + the reflog of the $branch. When the true fork-point is lost due to
992 + pruning of old reflog entries, the command does not give any output,
993 + because it has no way to guess correctly and does not want to mislead
994 + the user with a wrong guess.
995 +
996 + The command has been updated to give the best but not known to be
997 + correct guess, based on a hope that a merge-base between $commit and a
998 + virtual merge across all the reflog entries that still are available
999 + for $branch may still be a closer to the true fork-point than the
1000 + merge-base between $commit and the current tip of the $branch.
1001 +
1002 + This may have to be offered by an additional option, to allow the
1003 + users that are prepared to see a potentially incorrect guess to opt
1004 + into the feature, without affecting the current callers that may not
1005 + be prepared to accept a guess that is not known to be correct.
1006 +
1007 + Stalled for too long without any response; will discard.
1008 +
1009 +
1010 +* mg/status-in-progress-info (2017-05-10) 2 commits
1011 + - status --short --inprogress: spell it as --in-progress
1012 + - status: show in-progress info for short status
1013 +
1014 + "git status" learns an option to report various operations
1015 + (e.g. "merging") that the user is in the middle of.
1016 +
1017 + Stalled for too long without any response; will discard.
1018 + cf. <xmqqmvakcdqw.fsf@gitster.mtv.corp.google.com>
1019 +
1020 +
1021 +* nd/tilde-expand-opt-file-value (2018-02-14) 2 commits
1022 + - init-db: change --template type to OPTION_FILENAME
1023 + - parse-options: expand $HOME on filename options
1024 +
1025 + "git cmd --opt=~u/path/to/file" did not tilde-expand "~u" part to
1026 + the path to the home directory of user 'u'
1027 +
1028 + This may make the resulting whole more confusing, though.
1029 + cf. <87wozffavp.fsf@evledraar.gmail.com>
1030 +
1031 +
1032 +* dp/git-el-ls-files-excludes (2018-03-05) 1 commit
1033 + . git.el: handle default excludesfile properly
1034 +
1035 + The "git.el" script (in contrib/) has been taught to use
1036 + "--exclude-standard" option when driving "ls-files", instead of
1037 + locating the exclude files on its own. With this change, it now
1038 + honors $XDG_CONFIG_HOME when it is set.
1039 +
1040 + The author of "git.el" recommends that users consider switching to
1041 + "magit", though.
1042 +
1043 + Discarded, as contrib/emacs/ hierarchy is being emptied by the
1044 + ab/nuke-emacs-contrib topic.