What's cooking (2018/05 #04)

Junio C Hamano committed May 30, 2018 at 15:29 UTC 1869796879c4e40ef9a43b1e5224f82fb8014e05
1 file changed +630 -896
whats-cooking.txt
+630 -896
@@ -1,10 +1,10 @@
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 -Subject: What's cooking in git.git (May 2018, #03; Wed, 23)
4 -X-master-at: e144d126d74f5d2702870ca9423743102eec6fcd
5 -X-next-at: 671052e690087fed435bbc7ce67a6a0cc77818e0
3 +Subject: What's cooking in git.git (May 2018, #04; Wed, 30)
4 +X-master-at: f15a486ca1dd67757cb6a3c0545dc2c6ef992bc3
5 +X-next-at: e295dfb56eed062f935757b69da965cde0bc0927
6
7 -What's cooking in git.git (May 2018, #03; Wed, 23)
7 +What's cooking in git.git (May 2018, #04; Wed, 30)
8 --------------------------------------------------
9
10 Here are the topics that have been cooking. Commits prefixed with
@@ -12,6 +12,9 @@ Here are the topics that have been cooking. Commits prefixed with
12 '+' are in 'next'. The ones marked with '.' do not appear in any of
13 the integration branches, but I am still holding onto them.
14
15 +The recent fixes in v2.17.1 and downward have been merged to these
16 +integration branches 'master' and above.
17 +
18 You can find the changes described here in the integration branches
19 of the repositories listed at
20
@@ -20,558 +23,448 @@ of the repositories listed at
23 --------------------------------------------------
24 [Graduated to "master"]
25
23 -* ab/perl-python-attrs (2018-04-27) 3 commits
24 - (merged to 'next' on 2018-05-08 at b440e9bbb9)
25 - + .gitattributes: add a diff driver for Python
26 - + .gitattributes: use the "perl" differ for Perl
27 - + .gitattributes: add *.pl extension for Perl
26 +* ab/get-short-oid (2018-05-11) 5 commits
27 + (merged to 'next' on 2018-05-23 at 07e1908439)
28 + + get_short_oid: sort ambiguous objects by type, then SHA-1
29 + + sha1-name.c: move around the collect_ambiguous() function
30 + + git-p4: change "commitish" typo to "committish"
31 + + sha1-array.h: align function arguments
32 + + sha1-name.c: remove stray newline
33
29 - We learned that our source files with ".pl" and ".py" extensions
30 - are Perl and Python files respectively and changes to them are
31 - better viewed as such with appropriate diff drivers.
34 + When a short hexadecimal string is used to name an object but there
35 + are multiple objects that share the string as the prefix of their
36 + names, the code lists these ambiguous candidates in a help message.
37 + These object names are now sorted according to their types for
38 + easier eyeballing.
39
40
34 -* ah/misc-doc-updates (2018-05-06) 7 commits
35 - (merged to 'next' on 2018-05-16 at e2e3b68a66)
36 - + doc: normalize [--options] to [options] in git-diff
37 - + doc: add note about shell quoting to revision.txt
38 - + git-svn: remove ''--add-author-from' for 'commit-diff'
39 - + doc: add '-d' and '-o' for 'git push'
40 - + doc: clarify ignore rules for git ls-files
41 - + doc: align 'diff --no-index' in text and synopsis
42 - + doc: improve formatting in githooks.txt
41 +* bc/object-id (2018-05-02) 42 commits
42 + (merged to 'next' on 2018-05-23 at 916bcce829)
43 + + merge-one-file: compute empty blob object ID
44 + + add--interactive: compute the empty tree value
45 + + Update shell scripts to compute empty tree object ID
46 + + sha1_file: only expose empty object constants through git_hash_algo
47 + + dir: use the_hash_algo for empty blob object ID
48 + + sequencer: use the_hash_algo for empty tree object ID
49 + + cache-tree: use is_empty_tree_oid
50 + + sha1_file: convert cached object code to struct object_id
51 + + builtin/reset: convert use of EMPTY_TREE_SHA1_BIN
52 + + builtin/receive-pack: convert one use of EMPTY_TREE_SHA1_HEX
53 + + wt-status: convert two uses of EMPTY_TREE_SHA1_HEX
54 + + submodule: convert several uses of EMPTY_TREE_SHA1_HEX
55 + + sequencer: convert one use of EMPTY_TREE_SHA1_HEX
56 + + merge: convert empty tree constant to the_hash_algo
57 + + builtin/merge: switch tree functions to use object_id
58 + + builtin/am: convert uses of EMPTY_TREE_SHA1_BIN to the_hash_algo
59 + + sha1-file: add functions for hex empty tree and blob OIDs
60 + + builtin/receive-pack: avoid hard-coded constants for push certs
61 + + diff: specify abbreviation size in terms of the_hash_algo
62 + + upload-pack: replace use of several hard-coded constants
63 + + revision: replace use of hard-coded constants
64 + + http: eliminate hard-coded constants
65 + + dir: convert struct untracked_cache_dir to object_id
66 + + commit: convert uses of get_sha1_hex to get_oid_hex
67 + + index-pack: abstract away hash function constant
68 + + pack-redundant: convert linked lists to use struct object_id
69 + + Update struct index_state to use struct object_id
70 + + split-index: convert struct split_index to object_id
71 + + submodule-config: convert structures to object_id
72 + + fsck: convert static functions to struct object_id
73 + + tree-walk: convert get_tree_entry_follow_symlinks to object_id
74 + + tree-walk: avoid hard-coded 20 constant
75 + + pack-redundant: abstract away hash algorithm
76 + + pack-objects: abstract away hash algorithm
77 + + packfile: abstract away hash constant values
78 + + packfile: convert find_pack_entry to object_id
79 + + sha1-file: convert freshen functions to object_id
80 + + packfile: convert has_sha1_pack to object_id
81 + + packfile: remove unused member from struct pack_entry
82 + + Remove unused member in struct object_context
83 + + server-info: remove unused members from struct pack_info
84 + + cache: add a function to read an object ID from a buffer
85
44 - Misc doc fixes.
86 + Conversion from uchar[20] to struct object_id continues.
87
88
47 -* ao/config-api-doc (2018-05-11) 1 commit
48 - (merged to 'next' on 2018-05-22 at a17d6dda92)
49 - + doc: fix config API documentation about config_with_options
89 +* bp/merge-rename-config (2018-05-08) 3 commits
90 + (merged to 'next' on 2018-05-22 at 911440a742)
91 + + merge: pass aggressive when rename detection is turned off
92 + + merge: add merge.renames config setting
93 + + merge: update documentation for {merge,diff}.renameLimit
94 + (this branch is used by ma/unpack-trees-free-msgs.)
95
51 - Doc update.
96 + With merge.renames configuration set to false, the recursive merge
97 + strategy can be told not to spend cycles trying to find renamed
98 + paths and merge them accordingly.
99
100
54 -* bc/asciidoctor-tab-width (2018-05-07) 2 commits
55 - (merged to 'next' on 2018-05-16 at be2a42c473)
56 - + Documentation: render revisions correctly under Asciidoctor
57 - + Documentation: use 8-space tabs with Asciidoctor
101 +* bp/status-rename-config (2018-05-13) 1 commit
102 + (merged to 'next' on 2018-05-22 at ffcb0a7aa7)
103 + + add status config and command line options for rename detection
104
59 - Asciidoctor gives a reasonable imitation for AsciiDoc, but does not
60 - render illustration in a literal block correctly when indented with
61 - HT by default. The problem is fixed by forcing 8-space tabs.
105 + "git status" learned to honor a new status.renames configuration to
106 + skip rename detection, which could be useful for those who want to
107 + do so without disabling the default rename detection done by the
108 + "git diff" command.
109
110
64 -* bc/format-patch-cover-no-attach (2018-05-02) 1 commit
65 - (merged to 'next' on 2018-05-16 at fa1ffeb3fe)
66 - + format-patch: make cover letters always text/plain
111 +* cf/submodule-progress-dissociate (2018-05-22) 3 commits
112 + (merged to 'next' on 2018-05-22 at 9b3b96c54b)
113 + + submodule: add --dissociate option to add/update commands
114 + + submodule: add --progress option to add command
115 + + submodule: clean up substitutions in script
116
68 - "git format-patch --cover --attach" created a broken MIME multipart
69 - message for the cover letter, which has been fixed by keeping the
70 - cover letter as plain text file.
117 + "git submodule update" and "git submodule add" supported the
118 + "--reference" option to borrow objects from a neighbouring local
119 + repository like "git clone" does, but lacked the more recent
120 + invention "--dissociate". Also "git submodule add" has been taught
121 + to take the "--progress" option.
122
123
73 -* bc/mailmap-self (2018-05-08) 1 commit
74 - (merged to 'next' on 2018-05-16 at a009c64bd2)
75 - + mailmap: update brian m. carlson's email address
124 +* dd/send-email-reedit (2018-05-06) 1 commit
125 + (merged to 'next' on 2018-05-22 at 1f4c98324f)
126 + + git-send-email: allow re-editing of message
127
128 + "git send-email" can sometimes offer confirmation dialog "Send this
129 + email?" with choices 'Yes', 'No', 'Quit', and 'All'. A new action
130 + 'Edit' has been added to this dialog's choice.
131
78 -* bp/test-drop-caches (2018-05-04) 1 commit
79 - (merged to 'next' on 2018-05-16 at 0e40ab2408)
80 - + test-drop-caches: simplify delay loading of NtSetSystemInformation
132
82 - Code simplification.
133 +* jk/unavailable-can-be-missing (2018-05-13) 4 commits
134 + (merged to 'next' on 2018-05-22 at 91980c5d1e)
135 + + mark_parents_uninteresting(): avoid most allocation
136 + + mark_parents_uninteresting(): replace list with stack
137 + + mark_parents_uninteresting(): drop missing object check
138 + + mark_tree_contents_uninteresting(): drop missing object check
139
140 + Code clean-up to turn history traversal more robust in a
141 + semi-corrupt repository.
142
85 -* bw/server-options (2018-04-24) 4 commits
86 - (merged to 'next' on 2018-05-08 at a18ce56f3c)
87 - + fetch: send server options when using protocol v2
88 - + ls-remote: send server options when using protocol v2
89 - + serve: introduce the server-option capability
90 - + Merge branch 'bw/protocol-v2' into HEAD
91 -
92 - The transport protocol v2 is getting updated further.
93 -
94 -
95 -* cc/perf-aggregate-unknown-option (2018-04-26) 1 commit
96 - (merged to 'next' on 2018-05-08 at db7d2870f8)
97 - + perf/aggregate: use Getopt::Long for option parsing
98 -
99 - Perf-test helper updates.
100 -
101 -
102 -* cc/perf-bisect (2018-05-06) 1 commit
103 - (merged to 'next' on 2018-05-16 at 5a078a2fdf)
104 - + perf/bisect_run_script: disable codespeed
105 -
106 - Performance test updates.
107 -
108 -
109 -* ds/lazy-load-trees (2018-05-02) 6 commits
110 - (merged to 'next' on 2018-05-02 at d54016d9e3)
111 - + coccinelle: avoid wrong transformation suggestions from commit.cocci
112 - (merged to 'next' on 2018-04-25 at b90813f421)
113 - + commit-graph: lazy-load trees for commits
114 - + treewide: replace maybe_tree with accessor methods
115 - + commit: create get_commit_tree() method
116 - + treewide: rename tree to maybe_tree
117 - + Merge branch 'bw/c-plus-plus' into ds/lazy-load-trees
118 - (this branch is used by ds/commit-graph-lockfile-fix and ds/generation-numbers.)
119 -
120 - The code has been taught to use the duplicated information stored
121 - in the commit-graph file to learn the tree object name for a commit
122 - to avoid opening and parsing the commit object when it makes sense
123 - to do so.
124 -
125 -
126 -* em/status-rename-config (2018-05-06) 1 commit
127 - (merged to 'next' on 2018-05-16 at 33c1cc093c)
128 - + wt-status: use settings from git_diff_ui_config
129 - (this branch is used by bp/status-rename-config.)
130 -
131 - "git status" learned to pay attention to UI related diff
132 - configuration variables such as diff.renames.
133 -
134 -
135 -* en/git-debugger (2018-04-25) 1 commit
136 - (merged to 'next' on 2018-05-08 at 73369cd1e5)
137 - + Make running git under other debugger-like programs easy
138 -
139 - Dev support.
140 -
141 -
142 -* en/rename-directory-detection-reboot (2018-05-08) 36 commits
143 - (merged to 'next' on 2018-05-08 at be350ebc17)
144 - + merge-recursive: fix check for skipability of working tree updates
145 - + merge-recursive: make "Auto-merging" comment show for other merges
146 - + merge-recursive: fix remainder of was_dirty() to use original index
147 - + merge-recursive: fix was_tracked() to quit lying with some renamed paths
148 - + t6046: testcases checking whether updates can be skipped in a merge
149 - + merge-recursive: avoid triggering add_cacheinfo error with dirty mod
150 - + merge-recursive: move more is_dirty handling to merge_content
151 - + merge-recursive: improve add_cacheinfo error handling
152 - + merge-recursive: avoid spurious rename/rename conflict from dir renames
153 - + directory rename detection: new testcases showcasing a pair of bugs
154 - + merge-recursive: fix remaining directory rename + dirty overwrite cases
155 - + merge-recursive: fix overwriting dirty files involved in renames
156 - + merge-recursive: avoid clobbering untracked files with directory renames
157 - + merge-recursive: apply necessary modifications for directory renames
158 - + merge-recursive: when comparing files, don't include trees
159 - + merge-recursive: check for file level conflicts then get new name
160 - + merge-recursive: add computation of collisions due to dir rename & merging
161 - + merge-recursive: check for directory level conflicts
162 - + merge-recursive: add get_directory_renames()
163 - + merge-recursive: make a helper function for cleanup for handle_renames
164 - + merge-recursive: split out code for determining diff_filepairs
165 - + merge-recursive: make !o->detect_rename codepath more obvious
166 - + merge-recursive: fix leaks of allocated renames and diff_filepairs
167 - + merge-recursive: introduce new functions to handle rename logic
168 - + merge-recursive: move the get_renames() function
169 - + directory rename detection: tests for handling overwriting dirty files
170 - + directory rename detection: tests for handling overwriting untracked files
171 - + directory rename detection: miscellaneous testcases to complete coverage
172 - + directory rename detection: testcases exploring possibly suboptimal merges
173 - + directory rename detection: more involved edge/corner testcases
174 - + directory rename detection: testcases checking which side did the rename
175 - + directory rename detection: files/directories in the way of some renames
176 - + directory rename detection: partially renamed directory testcase/discussion
177 - + directory rename detection: testcases to avoid taking detection too far
178 - + directory rename detection: directory splitting testcases
179 - + directory rename detection: basic testcases
180 - (this branch is used by bp/merge-rename-config and ma/unpack-trees-free-msgs.)
181 -
182 - Rename detection logic in "diff" family that is used in "merge" has
183 - learned to guess when all of x/a, x/b and x/c have moved to z/a,
184 - z/b and z/c, it is likely that x/d added in the meantime would also
185 - want to move to z/d by taking the hint that the entire directory
186 - 'x' moved to 'z'. A bug causing dirty files involved in a rename
187 - to be overwritten during merge has also been fixed as part of this
188 - work. Incidentally, this also avoids updating a file in the
189 - working tree after a (non-trivial) merge whose result matches what
190 - our side originally had.
191 -
192 -
193 -* en/unpack-trees-split-index-fix (2018-05-02) 1 commit
194 - (merged to 'next' on 2018-05-16 at 1adff065b2)
195 - + unpack_trees: fix breakage when o->src_index != o->dst_index
196 -
197 - The split-index feature had a long-standing and dormant bug in
198 - certain use of the in-core merge machinery, which has been fixed.
199 - cf. <CACsJy8CeDhrT9GXe9q5gqsAeq_sSQ8jyF2nMOFxzjwKtE31oPQ@mail.gmail.com>
200 -
201 -
202 -* fg/completion-external (2018-05-07) 1 commit
203 - (merged to 'next' on 2018-05-16 at 5d83f92caf)
204 - + completion: load completion file for external subcommand
205 -
206 - The command line completion mechanism (in contrib/) learned to load
207 - custom completion file for "git $command" where $command is a
208 - custom "git-$command" that the end user has on the $PATH when using
209 - newer version of bash.
210 - cf. <CAM0VKjkTu+OkLM3gvX73mWugxArCVmqRBmWGHiKuLiLRNkkNow@mail.gmail.com>
211 -
212 -
213 -* hn/sort-ls-remote (2018-05-14) 1 commit
214 - (merged to 'next' on 2018-05-16 at 64336850f2)
215 - + t5512: run git fetch inside test
216 -
217 - Hotfix.
218 -
219 -
220 -* jk/apply-p-doc (2018-05-11) 1 commit
221 - (merged to 'next' on 2018-05-22 at 48f280346b)
222 - + apply: clarify "-p" documentation
223 -
224 - Doc update.
225 -
226 -
227 -* js/deprecate-grafts (2018-04-30) 12 commits
228 - (merged to 'next' on 2018-05-08 at 1d7b31d179)
229 - + Remove obsolete script to convert grafts to replace refs
230 - + technical/shallow: describe why shallow cannot use replace refs
231 - + technical/shallow: stop referring to grafts
232 - + filter-branch: stop suggesting to use grafts
233 - + Deprecate support for .git/info/grafts
234 - + Add a test for `git replace --convert-graft-file`
235 - + replace: introduce --convert-graft-file
236 - + replace: prepare create_graft() for converting graft files wholesale
237 - + replace: "libify" create_graft() and callees
238 - + replace: avoid using die() to indicate a bug
239 - + commit: Let the callback of for_each_mergetag return on error
240 - + argv_array: offer to split a string by whitespace
241 -
242 - The functionality of "$GIT_DIR/info/grafts" has been superseded by
243 - the "refs/replace/" mechanism for some time now, but the internal
244 - code had support for it in many places, which has been cleaned up
245 - in order to drop support of the "grafts" mechanism.
246 -
247 -
248 -* js/no-pager-shorthand (2018-05-04) 1 commit
249 - (merged to 'next' on 2018-05-08 at 10e6031dd1)
250 - + git: add -P as a short option for --no-pager
251 -
252 - "git --no-pager cmd" did not have short-and-sweet single letter
253 - option. Now it does.
254 -
255 -
256 -* js/rebase-i-clean-msg-after-fixup-continue (2018-05-02) 4 commits
257 - (merged to 'next' on 2018-05-08 at 7e684c153d)
258 - + rebase --skip: clean up commit message after a failed fixup/squash
259 - + sequencer: always commit without editing when asked for
260 - + rebase -i: Handle "combination of <n> commits" with GETTEXT_POISON
261 - + rebase -i: demonstrate bugs with fixup!/squash! commit messages
262 -
263 - "git rebase -i" sometimes left intermediate "# This is a
264 - combination of N commits" message meant for the human consumption
265 - inside an editor in the final result in certain corner cases, which
266 - has been fixed.
267 -
268 -
269 -* js/rebase-recreate-merge (2018-04-26) 17 commits
270 - (merged to 'next' on 2018-05-16 at f1aeea2879)
271 - + rebase -i --rebase-merges: add a section to the man page
272 - + rebase -i: introduce --rebase-merges=[no-]rebase-cousins
273 - + pull: accept --rebase=merges to recreate the branch topology
274 - + rebase --rebase-merges: avoid "empty merges"
275 - + sequencer: handle post-rewrite for merge commands
276 - + sequencer: make refs generated by the `label` command worktree-local
277 - + rebase --rebase-merges: add test for --keep-empty
278 - + rebase: introduce the --rebase-merges option
279 - + rebase-helper --make-script: introduce a flag to rebase merges
280 - + sequencer: fast-forward `merge` commands, if possible
281 - + sequencer: introduce the `merge` command
282 - + sequencer: introduce new commands to reset the revision
283 - + git-rebase--interactive: clarify arguments
284 - + sequencer: offer helpful advice when a command was rescheduled
285 - + sequencer: refactor how original todo list lines are accessed
286 - + sequencer: make rearrange_squash() a bit more obvious
287 - + sequencer: avoid using errno clobbered by rollback_lock_file()
288 - (this branch is used by js/sequencer-and-root-commits.)
143
290 - "git rebase" learned "--rebase-merges" to transplant the whole
291 - topology of commit graph elsewhere.
144 +* js/sequencer-and-root-commits (2018-05-06) 6 commits
145 + (merged to 'next' on 2018-05-22 at c1a62f5bc9)
146 + + rebase --rebase-merges: root commits can be cousins, too
147 + + rebase --rebase-merges: a "merge" into a new root is a fast-forward
148 + + sequencer: allow introducing new root commits
149 + + rebase -i --root: let the sequencer handle even the initial part
150 + + sequencer: learn about the special "fake root commit" handling
151 + + sequencer: extract helper to update active_cache_tree
152
153 + The implementation of "git rebase -i --root" has been updated to use
154 + the sequencer machinery more.
155
294 -* js/test-unset-prereq (2018-04-30) 1 commit
295 - (merged to 'next' on 2018-05-08 at 3aecbf25a3)
296 - + tests: introduce test_unset_prereq, for debugging
156
298 - Test debugging aid.
299 - cf. <20180507115950.3887-1-szeder.dev@gmail.com>
157 +* js/use-bug-macro (2018-05-10) 5 commits
158 + (merged to 'next' on 2018-05-22 at fd848c39ae)
159 + + BUG_exit_code: fix sparse "symbol not declared" warning
160 + + Convert remaining die*(BUG) messages
161 + + Replace all die("BUG: ...") calls by BUG() ones
162 + + run-command: use BUG() to report bugs, not die()
163 + + test-tool: help verifying BUG() code paths
164
165 + Developer support update, by using BUG() macro instead of die() to
166 + mark codepaths that should not happen more clearly.
167 + Further updates can come on top later.
168 + cf. <20180507090109.GA367@sigill.intra.peff.net>
169
302 -* nd/completion-aliasfiletype-typofix (2018-05-06) 1 commit
303 - (merged to 'next' on 2018-05-16 at 045e4ac190)
304 - + completion: fix misspelled config key aliasesfiletype
305 -
306 - Typofix.
307 -
308 -
309 -* nd/doc-header (2018-05-02) 1 commit
310 - (merged to 'next' on 2018-05-16 at 0599eb3ec9)
311 - + doc: keep first level section header in upper case
312 -
313 - Doc formatting fix.
314 -
315 -
316 -* nd/pack-format-doc (2018-05-13) 1 commit
317 - (merged to 'next' on 2018-05-22 at ff2c48f356)
318 - + pack-format.txt: more details on pack file format
319 -
320 - Doc update.
321 -
322 -
323 -* nd/pack-objects-pack-struct (2018-04-16) 15 commits
324 - (merged to 'next' on 2018-05-16 at 171459475d)
325 - + ci: exercise the whole test suite with uncommon code in pack-objects
326 - + pack-objects: reorder members to shrink struct object_entry
327 - + pack-objects: shrink delta_size field in struct object_entry
328 - + pack-objects: shrink size field in struct object_entry
329 - + pack-objects: clarify the use of object_entry::size
330 - + pack-objects: don't check size when the object is bad
331 - + pack-objects: shrink z_delta_size field in struct object_entry
332 - + pack-objects: refer to delta objects by index instead of pointer
333 - + pack-objects: move in_pack out of struct object_entry
334 - + pack-objects: move in_pack_pos out of struct object_entry
335 - + pack-objects: use bitfield for object_entry::depth
336 - + pack-objects: use bitfield for object_entry::dfs_state
337 - + pack-objects: turn type and in_pack_type to bitfields
338 - + pack-objects: a bit of document about struct object_entry
339 - + read-cache.c: make $GIT_TEST_SPLIT_INDEX boolean
340 -
341 - "git pack-objects" needs to allocate tons of "struct object_entry"
342 - while doing its work, and shrinking its size helps the performance
343 - quite a bit.
344 - cf. <CACsJy8CuVRy4UPEwXJJYAjePEz5zjKMLhRjh9UFw0DPYTzobkw@mail.gmail.com>
170
171 +* jt/partial-clone-proto-v2 (2018-05-06) 4 commits
172 + (merged to 'next' on 2018-05-23 at f8b3692e8e)
173 + + {fetch,upload}-pack: support filter in protocol v2
174 + + upload-pack: read config when serving protocol v2
175 + + upload-pack: fix error message typo
176 + + Merge branch 'bw/protocol-v2' into jt/partial-clone-proto-v2
177
347 -* nd/pack-unreachable-objects-doc (2018-05-06) 1 commit
348 - (merged to 'next' on 2018-05-16 at c4bf977564)
349 - + pack-objects: validation and documentation about unreachable options
178 + Transfer protocol v2 learned to support the partial clone.
179
351 - Doc update.
180
181 +* lm/credential-netrc (2018-05-14) 2 commits
182 + (merged to 'next' on 2018-05-23 at c3a0417715)
183 + + git-credential-netrc: accept gpg option
184 + + git-credential-netrc: adapt to test framework for git
185
354 -* nd/repack-keep-pack (2018-04-16) 7 commits
355 - (merged to 'next' on 2018-05-08 at ab906be358)
356 - + pack-objects: show some progress when counting kept objects
357 - + gc --auto: exclude base pack if not enough mem to "repack -ad"
358 - + gc: handle a corner case in gc.bigPackThreshold
359 - + gc: add gc.bigPackThreshold config
360 - + gc: add --keep-largest-pack option
361 - + repack: add --keep-pack option
362 - + t7700: have closing quote of a test at the beginning of line
186 + Update credential-netrc helper (in contrib/) to allow customizing
187 + the GPG used to decrypt the encrypted .netrc file.
188
364 - "git gc" in a large repository takes a lot of time as it considers
365 - to repack all objects into one pack by default. The command has
366 - been taught to pretend as if the largest existing packfile is
367 - marked with ".keep" so that it is left untouched while objects in
368 - other packs and loose ones are repacked.
369 - cf. <CACsJy8CuVRy4UPEwXJJYAjePEz5zjKMLhRjh9UFw0DPYTzobkw@mail.gmail.com>
189
190 +* ma/create-pseudoref-with-null-old-oid (2018-05-13) 3 commits
191 + (merged to 'next' on 2018-05-22 at c751a19b67)
192 + + refs: handle zero oid for pseudorefs
193 + + t1400: add tests around adding/deleting pseudorefs
194 + + refs.c: refer to "object ID", not "sha1", in error messages
195
372 -* nd/term-columns (2018-05-13) 2 commits
373 - (merged to 'next' on 2018-05-22 at e50b727a48)
374 - + column: fix off-by-one default width
375 - + pager: set COLUMNS to term_columns()
196 + "git update-ref A B" is supposed to ensure that ref A does not yet
197 + exist when B is a NULL OID, but this check was not done correctly
198 + for pseudo-refs outside refs/ hierarchy, e.g. MERGE_HEAD.
199
377 - The code did not propagate the terminal width to subprocesses via
378 - COLUMNS environment variable, which it now does. This caused
379 - trouble to "git column" helper subprocess when "git tag --column=row"
380 - tried to list the existing tags on a display with non-default width.
200
201 +* ma/lockfile-cleanup (2018-05-10) 5 commits
202 + (merged to 'next' on 2018-05-22 at e2efbf0b90)
203 + + lock_file: move static locks into functions
204 + + lock_file: make function-local locks non-static
205 + + refs.c: do not die if locking fails in `delete_pseudoref()`
206 + + refs.c: do not die if locking fails in `write_pseudoref()`
207 + + t/helper/test-write-cache: clean up lock-handling
208
383 -* sb/object-store-replace (2018-05-21) 4 commits
384 - (merged to 'next' on 2018-05-21 at 4fb28f7b16)
385 - + get_main_ref_store: BUG() when outside a repository
386 - (merged to 'next' on 2018-05-18 at c95db04db9)
387 - + object.c: clear replace map before freeing it
388 - (merged to 'next' on 2018-05-16 at 41bbedcc81)
389 - + replace-object.c: remove the_repository from prepare_replace_object
390 - + object.c: free replace map in raw_object_store_clear
209 + Code clean-up to adjust to a more recent lockfile API convention that
210 + allows lockfile instances kept on the stack.
211
392 - Hotfix.
212
213 +* nd/pack-struct-commit (2018-05-13) 1 commit
214 + (merged to 'next' on 2018-05-22 at 38d8a651f0)
215 + + commit.h: rearrange 'index' to shrink struct commit
216
395 -* sb/oid-object-info (2018-04-26) 9 commits
396 - (merged to 'next' on 2018-05-08 at f3c08f298e)
397 - + cache.h: allow oid_object_info to handle arbitrary repositories
398 - + packfile: add repository argument to cache_or_unpack_entry
399 - + packfile: add repository argument to unpack_entry
400 - + packfile: add repository argument to read_object
401 - + packfile: add repository argument to packed_object_info
402 - + packfile: add repository argument to packed_to_object_type
403 - + packfile: add repository argument to retry_bad_packed_offset
404 - + cache.h: add repository argument to oid_object_info
405 - + cache.h: add repository argument to oid_object_info_extended
406 - (this branch is used by sb/object-store-alloc and sb/object-store-grafts.)
217 + Memory optimization.
218
408 - The codepath around object-info API has been taught to take the
409 - repository object (which in turn tells the API which object store
410 - the objects are to be located).
219
220 +* nd/repo-clear-keep-the-index (2018-05-10) 1 commit
221 + (merged to 'next' on 2018-05-22 at 398c7ac4e9)
222 + + repository: fix free problem with repo_clear(the_repository)
223
413 -* sg/t5310-jgit-bitmap-test (2018-05-11) 1 commit
414 - (merged to 'next' on 2018-05-22 at ef0d86084d)
415 - + t5310-pack-bitmaps: make JGit tests work with GIT_TEST_SPLIT_INDEX
224 + the_repository->index is not a allocated piece of memory but
225 + repo_clear() indiscriminately attempted to free(3) it, which has
226 + been corrected.
227
417 - Test update.
228
229 +* nd/travis-gcc-8 (2018-05-21) 1 commit
230 + (merged to 'next' on 2018-05-22 at d5d54efa72)
231 + + travis-ci: run gcc-8 on linux-gcc jobs
232
420 -* sg/t5516-fixes (2018-05-11) 2 commits
421 - (merged to 'next' on 2018-05-22 at 254fa59e3a)
422 - + t5516-fetch-push: fix broken &&-chain
423 - + t5516-fetch-push: fix 'push with dry-run' test
233 + Developer support. Use newer GCC on one of the builds done at
234 + TravisCI.org to get more warnings and errors diagnosed.
235
425 - Test fixes.
236
237 +* rs/no-null-ptr-arith-in-fast-export (2018-05-10) 1 commit
238 + (merged to 'next' on 2018-05-22 at db60f06bba)
239 + + fast-export: avoid NULL pointer arithmetic
240
428 -* sg/t7005-spaces-in-filenames-cleanup (2018-05-15) 1 commit
429 - (merged to 'next' on 2018-05-22 at 0bc626c61a)
430 - + t7005-editor: get rid of the SPACES_IN_FILENAMES prereq
241 + Code clean-up to avoid non-standard-conformant pointer arithmetic.
242
432 - Test update.
243
244 +* sb/blame-color (2018-04-24) 3 commits
245 + (merged to 'next' on 2018-05-23 at 2e9c0daf0b)
246 + + builtin/blame: add new coloring scheme config
247 + + builtin/blame: highlight recently changed lines
248 + + builtin/blame: dim uninteresting metadata lines
249
435 -* tb/test-apfs-utf8-normalization (2018-05-02) 1 commit
436 - (merged to 'next' on 2018-05-16 at feabe72b42)
437 - + test: correct detection of UTF8_NFD_TO_NFC for APFS
250 + "git blame" learns to unhighlight uninteresting metadata from the
251 + originating commit on lines that are the same as the previous one,
252 + and also paint lines in different colors depending on the age of
253 + the commit.
254
439 - A test to see if the filesystem normalizes UTF-8 filename has been
440 - updated to check what we need to know in a more direct way, i.e. a
441 - path created in NFC form can be accessed with NFD form (or vice
442 - versa) to cope with APFS as well as HFS.
255
256 +* sb/submodule-update-try-harder (2018-05-16) 1 commit
257 + (merged to 'next' on 2018-05-23 at 698e6707d7)
258 + + git-submodule.sh: try harder to fetch a submodule
259
445 -* tg/worktree-add-existing-branch (2018-04-30) 4 commits
446 - (merged to 'next' on 2018-05-08 at 8b76505192)
447 - + worktree: teach "add" to check out existing branches
448 - + worktree: factor out dwim_branch function
449 - + worktree: improve message when creating a new worktree
450 - + worktree: remove extra members from struct add_opts
260 + "git submodule update" attempts two different kinds of "git fetch"
261 + against the upstream repository to grab a commit bound at the
262 + submodule's path, but it incorrectly gave up if the first kind
263 + (i.e. a normal fetch) failed, making the second "last resort" one
264 + (i.e. fetching an exact commit object by object name) ineffective.
265 + This has been corrected.
266
452 - "git worktree add" learned to check out an existing branch.
267 +
268 +* sg/complete-paths (2018-05-21) 13 commits
269 + (merged to 'next' on 2018-05-22 at a00b992aec)
270 + + t9902-completion: exercise __git_complete_index_file() directly
271 + + completion: don't return with error from __gitcomp_file_direct()
272 + (merged to 'next' on 2018-05-08 at 2a11444f90)
273 + + completion: fill COMPREPLY directly when completing paths
274 + + completion: improve handling quoted paths in 'git ls-files's output
275 + + completion: remove repeated dirnames with 'awk' during path completion
276 + + t9902-completion: ignore COMPREPLY element order in some tests
277 + + completion: use 'awk' to strip trailing path components
278 + + completion: let 'ls-files' and 'diff-index' filter matching paths
279 + + completion: improve handling quoted paths on the command line
280 + + completion: support completing non-ASCII pathnames
281 + + completion: simplify prefix path component handling during path completion
282 + + completion: move __git_complete_index_file() next to its helpers
283 + + t9902-completion: add tests demonstrating issues with quoted pathnames
284 +
285 + Command line completion (in contrib/) learned to complete pathnames
286 + for various commands better.
287 +
288 +
289 +* sg/t6500-no-redirect-of-stdin (2018-05-09) 1 commit
290 + (merged to 'next' on 2018-05-22 at 7019b3a1d5)
291 + + t6050-replace: don't disable stdin for the whole test script
292 +
293 + Test cleanup.
294
295 --------------------------------------------------
296 [New Topics]
297
457 -* bw/ref-prefix-for-configured-refspec (2018-05-18) 2 commits
458 - - fetch: generate ref-prefixes when using a configured refspec
459 - - refspec: consolidate ref-prefix generation logic
460 - (this branch uses bw/refspec-api.)
298 +* pa/import-tars-long-names (2018-05-24) 1 commit
299 + (merged to 'next' on 2018-05-30 at 5e043b2fca)
300 + + import-tars: read overlong names from pax extended header
301
462 - "git fetch $there $refspec" that talks over protocol v2 can take
463 - advantage of server-side ref filtering; the code has been extended
464 - so that this mechanism triggers also when fetching with configured
465 - refspec.
302 + The import-tars script (in contrib/) has been taught to handle
303 + tarballs with overly long paths that use PAX extended headers.
304
467 - Will merge to 'next'.
305 + Will merge to 'master'.
306
307
470 -* jk/config-blob-sans-repo (2018-05-21) 1 commit
471 - - config: die when --blob is used outside a repository
308 +* nd/use-opt-int-set-f (2018-05-24) 1 commit
309 + (merged to 'next' on 2018-05-30 at f8f5d612ed)
310 + + Use OPT_SET_INT_F() for cmdline option specification
311
473 - Error codepath fix.
312 + Code simplification.
313
475 - Will merge to 'next'.
314 + Will merge to 'master'.
315
316
478 -* jk/snprintf-truncation (2018-05-21) 5 commits
479 - - fmt_with_err: add a comment that truncation is OK
480 - - shorten_unambiguous_ref: use xsnprintf
481 - - fsmonitor: use internal argv_array of struct child_process
482 - - log_write_email_headers: use strbufs
483 - - http: use strbufs instead of fixed buffers
317 +* ds/commit-graph-fsck (2018-05-29) 20 commits
318 + - commit-graph: update design document
319 + - gc: automatically write commit-graph files
320 + - commit-graph: add '--reachable' option
321 + - fsck: verify commit-graph
322 + - commit-graph: verify contents match checksum
323 + - commit-graph: test for corrupted octopus edge
324 + - commit-graph: verify commit date
325 + - commit-graph: verify generation number
326 + - commit-graph: verify parent list
327 + - commit-graph: verify root tree OIDs
328 + - commit-graph: verify objects exist
329 + - commit-graph: verify corrupt OID fanout and lookup
330 + - commit-graph: verify required chunks are present
331 + - commit-graph: verify catches corrupt signature
332 + - commit-graph: add 'verify' subcommand
333 + - commit-graph: load a root tree from specific graph
334 + - commit: force commit to parse from object database
335 + - commit-graph: parse commit from chosen graph
336 + - commit-graph: fix GRAPH_MIN_SIZE
337 + - commit-graph: UNLEAK before die()
338 + (this branch uses ds/commit-graph-lockfile-fix and ds/generation-numbers.)
339
485 - Avoid unchecked snprintf() to make future code auditing easier.
340 + Expecting a reroll.
341 + cf. <ba3b8e06-b5e1-99a1-0fe4-ff97d6da8f15@gmail.com>
342 +
343 +
344 +* en/merge-recursive-tests (2018-05-28) 5 commits
345 + - t6036: prefer test_when_finished to manual cleanup in following test
346 + - t6036, t6042: prefer test_cmp to sequences of test
347 + - t6036, t6042: prefer test_path_is_file, test_path_is_missing
348 + - t6036, t6042: use test_line_count instead of wc -l
349 + - t6036, t6042: use test_create_repo to keep tests independent
350 +
351 + Clean up tests in t6xxx series about 'merge' command.
352
353 Will merge to 'next'.
354
355
490 -* js/empty-config-section-fix (2018-05-18) 1 commit
491 - - config: a user-provided invalid section is not a BUG
356 +* en/rev-parse-invalid-range (2018-05-25) 1 commit
357 + (merged to 'next' on 2018-05-30 at aec27f8a94)
358 + + rev-parse: check lookup'ed commit references for NULL
359
493 - Error codepath fix.
360 + "git rev-parse Y..." etc. misbehaved when given endpoints were
361 + not committishes.
362
495 - Will merge to 'next'.
363 + Will merge to 'master'.
364
365
498 -* ma/config-store-data-clear (2018-05-21) 3 commits
499 - - config: let `config_store_data_clear()` handle `key`
500 - - config: let `config_store_data_clear()` handle `value_regex`
501 - - config: free resources of `struct config_store_data`
366 +* jk/show-index (2018-05-29) 2 commits
367 + - show-index: update documentation for index v2
368 + - make show-index a builtin
369
503 - Leak plugging.
370 + Modernize a less often used command.
371
372 Will merge to 'next'.
373
374
508 -* ma/regex-no-regfree-after-comp-fail (2018-05-21) 1 commit
509 - - regex: do not call `regfree()` if compilation fails
375 +* js/rebase-recreate-merge (2018-05-30) 2 commits
376 + (merged to 'next' on 2018-05-30 at e295dfb56e)
377 + + sequencer: ensure labels that are object IDs are rewritten
378 + + git-rebase--interactive: fix copy-paste mistake
379
511 - We used to call regfree() after regcomp() failed in some codepaths,
512 - which have been corrected.
380 + Hotfixes.
381
514 - Will merge to 'next'.
382 + Will merge to 'master'.
383
384
517 -* ma/unpack-trees-free-msgs (2018-05-22) 4 commits
518 - - unpack_trees_options: free messages when done
519 - - argv-array: return the pushed string from argv_push*()
520 - - merge-recursive: provide pair of `unpack_trees_{start,finish}()`
521 - - merge: setup `opts` later in `checkout_fast_forward()`
522 - (this branch uses bp/merge-rename-config.)
385 +* jt/submodule-pull-recurse-rebase (2018-05-25) 1 commit
386 + - submodule: do not pass null OID to setup_revisions
387
524 - Leak plugging.
388 + "git pull -recurse-submodules --rebase", when the submodule
389 + repository's history did not have anything common between ours and
390 + the upstream's, failed to execute. We need to fetch from them to
391 + continue even in such a case.
392
393 Will merge to 'next'.
394
395
529 -* rm/p4-submit-with-commit-option (2018-05-21) 1 commit
530 - - git-p4: add options --commit and --disable-rebase
396 +* ma/wrapped-info (2018-05-28) 2 commits
397 + - usage: prefix all lines in `vreportf()`, not just the first
398 + - usage: extract `prefix_suffix_lines()` from `advise()`
399
532 - Needs sign-off.
400 + An attempt to help making multi-line messages fed to warning(),
401 + error(), and friends more easily translatable.
402
403 + Wait for discussion to settle.
404 + cf. <20180529213957.GF7964@sigill.intra.peff.net>
405
535 -* bw/remote-curl-compressed-responses (2018-05-23) 2 commits
536 - - remote-curl: accept compressed responses with protocol v2
537 - - remote-curl: accept all encodings supported by curl
406
539 - Our HTTP client code used to advertise that we accept gzip encoding
540 - from the other side; instead, just let cURL library to advertise
541 - and negotiate the best one.
407 +* nd/complete-config-vars (2018-05-29) 13 commits
408 + - completion: complete general config vars in two steps
409 + - log-tree: allow to customize 'grafted' color
410 + - completion: support case-insensitive config vars
411 + - completion: keep other config var completion in camelCase
412 + - completion: drop the hard coded list of config vars
413 + - am: move advice.amWorkDir parsing back to advice.c
414 + - advice: keep config name in camelCase in advice_config[]
415 + - fsck: produce camelCase config key names
416 + - help: add --config to list all available config
417 + - fsck: factor out msg_id_info[] lazy initialization code
418 + - grep: keep all colors in an array
419 + - Add and use generic name->id mapping code for color slot parsing
420 + - Merge branch 'nd/command-list' into nd/complete-config-vars
421 + (this branch uses nd/command-list.)
422
543 - Will merge to 'next'.
423 + Continuing with the idea to programatically enumerate various
424 + pieces of data required for command line completion, teach the
425 + codebase to report the list of configuration variables
426 + subcommands care about to help complete them.
427
428
546 -* cc/tests-without-assuming-ref-files-backend (2018-05-23) 1 commit
547 - - t: make many tests depend less on the refs being files
429 +* nd/completion-negation (2018-05-29) 3 commits
430 + - completion: collapse extra --no-.. options
431 + - completion: suppress some -no- options
432 + - parse-options: option to let --git-completion-helper show negative form
433
549 - Quite a many tests assumed that newly created refs are made as
550 - loose refs using the files backend, which have been updated to use
551 - proper plumbing like rev-parse and update-ref, to avoid breakage
552 - once we start using different ref backends.
434 + Continuing with the idea to programatically enumerate various
435 + pieces of data required for command line completion, the codebase
436 + has been taught to enumerate options prefixed with "--no-" to
437 + negate them.
438
554 - Will merge to 'next'.
439
556 ---------------------------------------------------
557 -[Stalled]
440 +* rd/doc-options-placeholder (2018-05-25) 1 commit
441 + (merged to 'next' on 2018-05-30 at e3961b038f)
442 + + Use proper syntax for replaceables in command docs
443
559 -* jm/cache-entry-from-mem-pool (2018-05-02) 5 commits
560 - - block alloc: add validations around cache_entry lifecyle
561 - - block alloc: allocate cache entries from mem_pool
562 - - mem-pool: fill out functionality
563 - - block alloc: add lifecycle APIs for cache_entry structs
564 - - read-cache: teach refresh_cache_entry() to take istate
444 + Docfix.
445 +
446 + Will merge to 'master'.
447 +
448 +
449 +* rd/tag-doc-lightweight (2018-05-29) 1 commit
450 + (merged to 'next' on 2018-05-30 at 979ba9f720)
451 + + tag: clarify in the doc that a tag can refer to a non-commit object
452 +
453 + Docfix.
454 +
455 + Will merge to 'master'.
456
566 - For a large tree, the index needs to hold many cache entries
567 - allocated on heap. These cache entries are now allocated out of a
568 - dedicated memory pool to amortize malloc(3) overhead.
457
570 - Needs review.
571 - Is the "caller always knows which pool an entry came from and calls
572 - the right kind of free" a feasible approach?
573 - Oh, another thing, there is "lifecyle" typo in the title.
458 +* rd/init-typo (2018-05-30) 1 commit
459 + (merged to 'next' on 2018-05-30 at 8813a649eb)
460 + + init: fix grammar in "templates not found" msg
461
462 + Message fix.
463 +
464 + Will merge to 'master'.
465 +
466 +--------------------------------------------------
467 +[Stalled]
468
469 * ab/fetch-tags-noclobber (2018-05-16) 9 commits
470 - fixup! push tests: assert re-pushing annotated tags
@@ -710,261 +603,284 @@ of the repositories listed at
603 --------------------------------------------------
604 [Cooking]
605
713 -* sg/t6500-no-redirect-of-stdin (2018-05-09) 1 commit
714 - (merged to 'next' on 2018-05-22 at 7019b3a1d5)
715 - + t6050-replace: don't disable stdin for the whole test script
606 +* jm/cache-entry-from-mem-pool (2018-05-24) 7 commits
607 + - block alloc: add validations around cache_entry lifecyle
608 + - block alloc: allocate cache entries from mem_pool
609 + - mem-pool: fill out functionality
610 + - mem-pool: add lifecycle management functions
611 + - mem-pool: only search head block for available space
612 + - block alloc: add lifecycle APIs for cache_entry structs
613 + - read-cache: teach refresh_cache_entry() to take istate
614
717 - Test cleanup.
615 + For a large tree, the index needs to hold many cache entries
616 + allocated on heap. These cache entries are now allocated out of a
617 + dedicated memory pool to amortize malloc(3) overhead.
618
719 - Will merge to 'master'.
619 + Is this ready for 'next'?
620
621
722 -* bc/hash-independent-tests (2018-05-21) 28 commits
723 - - t5300: abstract away SHA-1-specific constants
724 - - t4208: abstract away SHA-1-specific constants
725 - - t4045: abstract away SHA-1-specific constants
726 - - t4042: abstract away SHA-1-specific constants
727 - - t4205: sort log output in a hash-independent way
728 - - t/lib-diff-alternative: abstract away SHA-1-specific constants
729 - - t4030: abstract away SHA-1-specific constants
730 - - t4029: abstract away SHA-1-specific constants
731 - - t4029: fix test indentation
732 - - t4022: abstract away SHA-1-specific constants
733 - - t4020: abstract away SHA-1-specific constants
734 - - t4014: abstract away SHA-1-specific constants
735 - - t4008: abstract away SHA-1-specific constants
736 - - t4007: abstract away SHA-1-specific constants
737 - - t3905: abstract away SHA-1-specific constants
738 - - t3702: abstract away SHA-1-specific constants
739 - - t3103: abstract away SHA-1-specific constants
740 - - t2203: abstract away SHA-1-specific constants
741 - - t: skip pack tests if not using SHA-1
742 - - t4044: skip test if not using SHA-1
743 - - t1512: skip test if not using SHA-1
744 - - t1007: annotate with SHA1 prerequisite
745 - - t0000: annotate with SHA1 prerequisite
746 - - t: switch $_x40 to $OID_REGEX
747 - - t/test-lib: introduce OID_REGEX
748 - - t: switch $_z40 to $ZERO_OID
749 - - t/test-lib: introduce ZERO_OID
750 - - t/test-lib: add an SHA1 prerequisite
622 +* bw/ref-prefix-for-configured-refspec (2018-05-18) 2 commits
623 + (merged to 'next' on 2018-05-24 at a0d4af6180)
624 + + fetch: generate ref-prefixes when using a configured refspec
625 + + refspec: consolidate ref-prefix generation logic
626 + (this branch uses bw/refspec-api.)
627
752 - Many tests hardcode the raw object names, which would change once
753 - we migrate away from SHA-1. While some of them must test against
754 - exact object names, most of them do not have to use hardcoded
755 - constants in the test. The latter kind of tests have been updated
756 - to test the moral equivalent of the original without hardcoding the
757 - actual object names.
628 + "git fetch $there $refspec" that talks over protocol v2 can take
629 + advantage of server-side ref filtering; the code has been extended
630 + so that this mechanism triggers also when fetching with configured
631 + refspec.
632
759 - Will merge to 'next'.
633 + Will merge to 'master'.
634
635
762 -* bp/status-rename-config (2018-05-13) 1 commit
763 - (merged to 'next' on 2018-05-22 at ffcb0a7aa7)
764 - + add status config and command line options for rename detection
636 +* jk/config-blob-sans-repo (2018-05-21) 1 commit
637 + (merged to 'next' on 2018-05-24 at 3426d9508c)
638 + + config: die when --blob is used outside a repository
639
766 - "git status" learned to honor a new status.renames configuration to
767 - skip rename detection, which could be useful for those who want to
768 - do so without disabling the default rename detection done by the
769 - "git diff" command.
640 + Error codepath fix.
641
642 Will merge to 'master'.
643
644
774 -* bw/refspec-api (2018-05-18) 36 commits
775 - - submodule: convert push_unpushed_submodules to take a struct refspec
776 - - remote: convert check_push_refs to take a struct refspec
777 - - remote: convert match_push_refs to take a struct refspec
778 - - http-push: store refspecs in a struct refspec
779 - - transport: remove transport_verify_remote_names
780 - - send-pack: store refspecs in a struct refspec
781 - - transport: convert transport_push to take a struct refspec
782 - - push: convert to use struct refspec
783 - - push: check for errors earlier
784 - - remote: convert match_explicit_refs to take a struct refspec
785 - - remote: convert get_ref_match to take a struct refspec
786 - - remote: convert query_refspecs to take a struct refspec
787 - - remote: convert apply_refspecs to take a struct refspec
788 - - remote: convert get_stale_heads to take a struct refspec
789 - - fetch: convert prune_refs to take a struct refspec
790 - - fetch: convert get_ref_map to take a struct refspec
791 - - fetch: convert do_fetch to take a struct refspec
792 - - refspec: remove the deprecated functions
793 - - fetch: convert refmap to use struct refspec
794 - - fetch: convert fetch_one to use struct refspec
795 - - transport-helper: convert to use struct refspec
796 - - remote: remove add_prune_tags_to_fetch_refspec
797 - - remote: convert fetch refspecs to struct refspec
798 - - remote: convert push refspecs to struct refspec
799 - - fast-export: convert to use struct refspec
800 - - clone: convert cmd_clone to use refspec_item_init
801 - - remote: convert match_push_refs to use struct refspec
802 - - remote: convert check_push_refs to use struct refspec
803 - - transport: convert transport_push to use struct refspec
804 - - pull: convert get_tracking_branch to use refspec_item_init
805 - - submodule--helper: convert push_check to use struct refspec
806 - - refspec: convert valid_fetch_refspec to use parse_refspec
807 - - refspec: introduce struct refspec
808 - - refspec: factor out parsing a single refspec
809 - - refspec: rename struct refspec to struct refspec_item
810 - - refspec: move refspec parsing logic into its own file
811 - (this branch is used by bw/ref-prefix-for-configured-refspec.)
645 +* jk/snprintf-truncation (2018-05-21) 5 commits
646 + (merged to 'next' on 2018-05-24 at 4b78e15f66)
647 + + fmt_with_err: add a comment that truncation is OK
648 + + shorten_unambiguous_ref: use xsnprintf
649 + + fsmonitor: use internal argv_array of struct child_process
650 + + log_write_email_headers: use strbufs
651 + + http: use strbufs instead of fixed buffers
652
813 - An API update for handling of refspecs used by fetch & push
814 - codepath.
653 + Avoid unchecked snprintf() to make future code auditing easier.
654
816 - Will merge to 'next'.
655 + Will merge to 'master'.
656
657
819 -* ds/commit-graph-lockfile-fix (2018-05-22) 1 commit
820 - - commit-graph: fix UX issue when .lock file exists
821 - (this branch uses ds/generation-numbers.)
658 +* js/empty-config-section-fix (2018-05-18) 1 commit
659 + (merged to 'next' on 2018-05-24 at 3d0875c7b4)
660 + + config: a user-provided invalid section is not a BUG
661
823 - Update to ds/generation-numbers topic.
662 + Error codepath fix.
663
825 - Will merge to 'next'.
664 + Will merge to 'master'.
665
666
828 -* jk/unavailable-can-be-missing (2018-05-13) 4 commits
829 - (merged to 'next' on 2018-05-22 at 91980c5d1e)
830 - + mark_parents_uninteresting(): avoid most allocation
831 - + mark_parents_uninteresting(): replace list with stack
832 - + mark_parents_uninteresting(): drop missing object check
833 - + mark_tree_contents_uninteresting(): drop missing object check
667 +* ma/config-store-data-clear (2018-05-21) 3 commits
668 + (merged to 'next' on 2018-05-24 at cc6e4b9371)
669 + + config: let `config_store_data_clear()` handle `key`
670 + + config: let `config_store_data_clear()` handle `value_regex`
671 + + config: free resources of `struct config_store_data`
672
835 - Code clean-up to turn history traversal more robust in a
836 - semi-corrupt repository.
673 + Leak plugging.
674
675 Will merge to 'master'.
676
677
841 -* lm/credential-netrc (2018-05-14) 2 commits
842 - (merged to 'next' on 2018-05-23 at c3a0417715)
843 - + git-credential-netrc: accept gpg option
844 - + git-credential-netrc: adapt to test framework for git
678 +* ma/regex-no-regfree-after-comp-fail (2018-05-21) 1 commit
679 + (merged to 'next' on 2018-05-24 at 3e473da1b5)
680 + + regex: do not call `regfree()` if compilation fails
681
846 - Update credential-netrc helper (in contrib/) to allow customizing
847 - the GPG used to decrypt the encrypted .netrc file.
682 + We used to call regfree() after regcomp() failed in some codepaths,
683 + which have been corrected.
684
685 Will merge to 'master'.
686
687
852 -* ma/create-pseudoref-with-null-old-oid (2018-05-13) 3 commits
853 - (merged to 'next' on 2018-05-22 at c751a19b67)
854 - + refs: handle zero oid for pseudorefs
855 - + t1400: add tests around adding/deleting pseudorefs
856 - + refs.c: refer to "object ID", not "sha1", in error messages
688 +* ma/unpack-trees-free-msgs (2018-05-22) 4 commits
689 + (merged to 'next' on 2018-05-24 at 84cbd459f7)
690 + + unpack_trees_options: free messages when done
691 + + argv-array: return the pushed string from argv_push*()
692 + + merge-recursive: provide pair of `unpack_trees_{start,finish}()`
693 + + merge: setup `opts` later in `checkout_fast_forward()`
694
858 - "git update-ref A B" is supposed to ensure that ref A does not yet
859 - exist when B is a NULL OID, but this check was not done correctly
860 - for pseudo-refs outside refs/ hierarchy, e.g. MERGE_HEAD.
695 + Leak plugging.
696
697 Will merge to 'master'.
698
699
865 -* ma/lockfile-cleanup (2018-05-10) 5 commits
866 - (merged to 'next' on 2018-05-22 at e2efbf0b90)
867 - + lock_file: move static locks into functions
868 - + lock_file: make function-local locks non-static
869 - + refs.c: do not die if locking fails in `delete_pseudoref()`
870 - + refs.c: do not die if locking fails in `write_pseudoref()`
871 - + t/helper/test-write-cache: clean up lock-handling
700 +* rm/p4-submit-with-commit-option (2018-05-21) 1 commit
701 + - git-p4: add options --commit and --disable-rebase
702
873 - Code clean-up to adjust to a more recent lockfile API convention that
874 - allows lockfile instances kept on the stack.
703 + Needs sign-off.
704
876 - Will merge to 'master'.
705
706 +* bw/remote-curl-compressed-responses (2018-05-23) 2 commits
707 + (merged to 'next' on 2018-05-24 at 98ee4308dc)
708 + + remote-curl: accept compressed responses with protocol v2
709 + + remote-curl: accept all encodings supported by curl
710
879 -* nd/commit-util-to-slab (2018-05-21) 15 commits
880 - - commit.h: delete 'util' field in struct commit
881 - - merge: use commit-slab in merge remote desc instead of commit->util
882 - - log: use commit-slab in prepare_bases() instead of commit->util
883 - - show-branch: note about its object flags usage
884 - - show-branch: use commit-slab for commit-name instead of commit->util
885 - - name-rev: use commit-slab for rev-name instead of commit->util
886 - - bisect.c: use commit-slab for commit weight instead of commit->util
887 - - revision.c: use commit-slab for show_source
888 - - sequencer.c: use commit-slab to associate todo items to commits
889 - - sequencer.c: use commit-slab to mark seen commits
890 - - shallow.c: use commit-slab for commit depth instead of commit->util
891 - - describe: use commit-slab for commit names instead of commit->util
892 - - blame: use commit-slab for blame suspects instead of commit->util
893 - - commit-slab: support shared commit-slab
894 - - commit-slab.h: code split
711 + Our HTTP client code used to advertise that we accept gzip encoding
712 + from the other side; instead, just let cURL library to advertise
713 + and negotiate the best one.
714
896 - The in-core "commit" object had an all-purpose "void *util" field,
897 - which was tricky to use especially in library-ish part of the
898 - code. All of the existing uses of the field has been migrated to a
899 - more dedicated "commit-slab" mechanism and the field is eliminated.
715 + Will merge to 'master'.
716
901 - Will merge to 'next'.
717
718 +* cc/tests-without-assuming-ref-files-backend (2018-05-30) 2 commits
719 + (merged to 'next' on 2018-05-30 at e9605bacf0)
720 + + t990X: use '.git/objects' as 'deep inside .git' path
721 + (merged to 'next' on 2018-05-24 at 19138b162f)
722 + + t: make many tests depend less on the refs being files
723
904 -* nd/diff-apply-ita (2018-05-14) 2 commits
905 - (merged to 'next' on 2018-05-22 at a15cc0ce1c)
906 - + apply: add --intent-to-add
907 - + diff: turn --ita-invisible-in-index on by default
724 + Quite a many tests assumed that newly created refs are made as
725 + loose refs using the files backend, which have been updated to use
726 + proper plumbing like rev-parse and update-ref, to avoid breakage
727 + once we start using different ref backends.
728
909 - "git diff" compares the index and the working tree. For paths
910 - added with intent-to-add bit, the command shows the full contents
911 - of them as added, but the paths themselves were not marked as new
912 - files. They are now shown as new by default.
729 + Will merge to 'master'.
730
914 - "git apply" learned the "--intent-to-add" option so that an
915 - otherwise working-tree-only application of a patch will add new
916 - paths to the index marked with the "intent-to-add" bit.
731
918 - Will merge to and cook in 'next'.
732 +* bc/hash-independent-tests (2018-05-21) 28 commits
733 + (merged to 'next' on 2018-05-24 at 40fb709f7c)
734 + + t5300: abstract away SHA-1-specific constants
735 + + t4208: abstract away SHA-1-specific constants
736 + + t4045: abstract away SHA-1-specific constants
737 + + t4042: abstract away SHA-1-specific constants
738 + + t4205: sort log output in a hash-independent way
739 + + t/lib-diff-alternative: abstract away SHA-1-specific constants
740 + + t4030: abstract away SHA-1-specific constants
741 + + t4029: abstract away SHA-1-specific constants
742 + + t4029: fix test indentation
743 + + t4022: abstract away SHA-1-specific constants
744 + + t4020: abstract away SHA-1-specific constants
745 + + t4014: abstract away SHA-1-specific constants
746 + + t4008: abstract away SHA-1-specific constants
747 + + t4007: abstract away SHA-1-specific constants
748 + + t3905: abstract away SHA-1-specific constants
749 + + t3702: abstract away SHA-1-specific constants
750 + + t3103: abstract away SHA-1-specific constants
751 + + t2203: abstract away SHA-1-specific constants
752 + + t: skip pack tests if not using SHA-1
753 + + t4044: skip test if not using SHA-1
754 + + t1512: skip test if not using SHA-1
755 + + t1007: annotate with SHA1 prerequisite
756 + + t0000: annotate with SHA1 prerequisite
757 + + t: switch $_x40 to $OID_REGEX
758 + + t/test-lib: introduce OID_REGEX
759 + + t: switch $_z40 to $ZERO_OID
760 + + t/test-lib: introduce ZERO_OID
761 + + t/test-lib: add an SHA1 prerequisite
762
763 + Many tests hardcode the raw object names, which would change once
764 + we migrate away from SHA-1. While some of them must test against
765 + exact object names, most of them do not have to use hardcoded
766 + constants in the test. The latter kind of tests have been updated
767 + to test the moral equivalent of the original without hardcoding the
768 + actual object names.
769
921 -* nd/pack-struct-commit (2018-05-13) 1 commit
922 - (merged to 'next' on 2018-05-22 at 38d8a651f0)
923 - + commit.h: rearrange 'index' to shrink struct commit
770 + Will merge to 'master'.
771
925 - Memory optimization.
772 +
773 +* bw/refspec-api (2018-05-18) 36 commits
774 + (merged to 'next' on 2018-05-24 at 83d361419e)
775 + + submodule: convert push_unpushed_submodules to take a struct refspec
776 + + remote: convert check_push_refs to take a struct refspec
777 + + remote: convert match_push_refs to take a struct refspec
778 + + http-push: store refspecs in a struct refspec
779 + + transport: remove transport_verify_remote_names
780 + + send-pack: store refspecs in a struct refspec
781 + + transport: convert transport_push to take a struct refspec
782 + + push: convert to use struct refspec
783 + + push: check for errors earlier
784 + + remote: convert match_explicit_refs to take a struct refspec
785 + + remote: convert get_ref_match to take a struct refspec
786 + + remote: convert query_refspecs to take a struct refspec
787 + + remote: convert apply_refspecs to take a struct refspec
788 + + remote: convert get_stale_heads to take a struct refspec
789 + + fetch: convert prune_refs to take a struct refspec
790 + + fetch: convert get_ref_map to take a struct refspec
791 + + fetch: convert do_fetch to take a struct refspec
792 + + refspec: remove the deprecated functions
793 + + fetch: convert refmap to use struct refspec
794 + + fetch: convert fetch_one to use struct refspec
795 + + transport-helper: convert to use struct refspec
796 + + remote: remove add_prune_tags_to_fetch_refspec
797 + + remote: convert fetch refspecs to struct refspec
798 + + remote: convert push refspecs to struct refspec
799 + + fast-export: convert to use struct refspec
800 + + clone: convert cmd_clone to use refspec_item_init
801 + + remote: convert match_push_refs to use struct refspec
802 + + remote: convert check_push_refs to use struct refspec
803 + + transport: convert transport_push to use struct refspec
804 + + pull: convert get_tracking_branch to use refspec_item_init
805 + + submodule--helper: convert push_check to use struct refspec
806 + + refspec: convert valid_fetch_refspec to use parse_refspec
807 + + refspec: introduce struct refspec
808 + + refspec: factor out parsing a single refspec
809 + + refspec: rename struct refspec to struct refspec_item
810 + + refspec: move refspec parsing logic into its own file
811 + (this branch is used by bw/ref-prefix-for-configured-refspec.)
812 +
813 + An API update for handling of refspecs used by fetch & push
814 + codepath.
815
816 Will merge to 'master'.
817
818
930 -* nd/repo-clear-keep-the-index (2018-05-10) 1 commit
931 - (merged to 'next' on 2018-05-22 at 398c7ac4e9)
932 - + repository: fix free problem with repo_clear(the_repository)
819 +* ds/commit-graph-lockfile-fix (2018-05-22) 1 commit
820 + (merged to 'next' on 2018-05-24 at 3d12a02b0c)
821 + + commit-graph: fix UX issue when .lock file exists
822 + (this branch is used by ds/commit-graph-fsck; uses ds/generation-numbers.)
823
934 - the_repository->index is not a allocated piece of memory but
935 - repo_clear() indiscriminately attempted to free(3) it, which has
936 - been corrected.
824 + Update to ds/generation-numbers topic.
825
826 Will merge to 'master'.
827
828
941 -* nd/travis-gcc-8 (2018-05-21) 1 commit
942 - (merged to 'next' on 2018-05-22 at d5d54efa72)
943 - + travis-ci: run gcc-8 on linux-gcc jobs
829 +* nd/commit-util-to-slab (2018-05-21) 15 commits
830 + (merged to 'next' on 2018-05-24 at bb5643d75c)
831 + + commit.h: delete 'util' field in struct commit
832 + + merge: use commit-slab in merge remote desc instead of commit->util
833 + + log: use commit-slab in prepare_bases() instead of commit->util
834 + + show-branch: note about its object flags usage
835 + + show-branch: use commit-slab for commit-name instead of commit->util
836 + + name-rev: use commit-slab for rev-name instead of commit->util
837 + + bisect.c: use commit-slab for commit weight instead of commit->util
838 + + revision.c: use commit-slab for show_source
839 + + sequencer.c: use commit-slab to associate todo items to commits
840 + + sequencer.c: use commit-slab to mark seen commits
841 + + shallow.c: use commit-slab for commit depth instead of commit->util
842 + + describe: use commit-slab for commit names instead of commit->util
843 + + blame: use commit-slab for blame suspects instead of commit->util
844 + + commit-slab: support shared commit-slab
845 + + commit-slab.h: code split
846
945 - Developer support. Use newer GCC on one of the builds done at
946 - TravisCI.org to get more warnings and errors diagnosed.
847 + The in-core "commit" object had an all-purpose "void *util" field,
848 + which was tricky to use especially in library-ish part of the
849 + code. All of the existing uses of the field has been migrated to a
850 + more dedicated "commit-slab" mechanism and the field is eliminated.
851
852 Will merge to 'master'.
853
854
951 -* rs/no-null-ptr-arith-in-fast-export (2018-05-10) 1 commit
952 - (merged to 'next' on 2018-05-22 at db60f06bba)
953 - + fast-export: avoid NULL pointer arithmetic
855 +* nd/diff-apply-ita (2018-05-29) 4 commits
856 + (merged to 'next' on 2018-05-30 at f98728de81)
857 + + apply: add --intent-to-add
858 + + t2203: add a test about "diff HEAD" case
859 + + diff: turn --ita-invisible-in-index on by default
860 + + diff: ignore --ita-[in]visible-in-index when diffing worktree-to-tree
861
955 - Code clean-up to avoid non-standard-conformant pointer arithmetic.
862 + "git diff" compares the index and the working tree. For paths
863 + added with intent-to-add bit, the command shows the full contents
864 + of them as added, but the paths themselves were not marked as new
865 + files. They are now shown as new by default.
866
957 - Will merge to 'master'.
867 + "git apply" learned the "--intent-to-add" option so that an
868 + otherwise working-tree-only application of a patch will add new
869 + paths to the index marked with the "intent-to-add" bit.
870 +
871 + Kicked back to 'pu'.
872 + cf. <20180526120846.23663-1-pclouds@gmail.com>
873
874
875 * sb/grep-die-on-unreadable-index (2018-05-16) 1 commit
961 - - grep: handle corrupt index files early
876 + (merged to 'next' on 2018-05-24 at 6d78916503)
877 + + grep: handle corrupt index files early
878
879 Error behaviour of "git grep" when it cannot read the index was
880 inconsistent with other commands that uses the index, which has
881 been corrected to error out early.
882
967 - Will merge to 'next'.
883 + Will merge to 'master'.
884
885
886 * sb/object-store-grafts (2018-05-18) 19 commits
@@ -989,11 +905,17 @@ of the repositories listed at
905 - object-store: move object access functions to object-store.h
906 (this branch uses sb/object-store-alloc.)
907
908 + The conversion to pass "the_repository" and then "a_repository"
909 + throughout the object access API continues.
910 +
911 + Is this ready for 'next'?
912 +
913
914 * sb/submodule-merge-in-merge-recursive (2018-05-18) 3 commits
994 - - merge-recursive: give notice when submodule commit gets fast-forwarded
995 - - merge-recursive: i18n submodule merge output and respect verbosity
996 - - submodule.c: move submodule merging to merge-recursive.c
915 + (merged to 'next' on 2018-05-24 at 6228d22182)
916 + + merge-recursive: give notice when submodule commit gets fast-forwarded
917 + + merge-recursive: i18n submodule merge output and respect verbosity
918 + + submodule.c: move submodule merging to merge-recursive.c
919
920 By code restructuring of submodule merge in merge-recursive,
921 informational messages from the codepath are now given using the
@@ -1002,38 +924,16 @@ of the repositories listed at
924 when a submodule three-way merge resolves cleanly when one side
925 records a descendant of the commit chosen by the other side.
926
1005 - Will merge to 'next'.
1006 -
1007 -
1008 -* sb/submodule-update-try-harder (2018-05-16) 1 commit
1009 - (merged to 'next' on 2018-05-23 at 698e6707d7)
1010 - + git-submodule.sh: try harder to fetch a submodule
1011 -
1012 - "git submodule update" attempts two different kinds of "git fetch"
1013 - against the upstream repository to grab a commit bound at the
1014 - submodule's path, but it incorrectly gave up if the first kind
1015 - (i.e. a normal fetch) failed, making the second "last resort" one
1016 - (i.e. fetching an exact commit object by object name) ineffective.
1017 - This has been corrected.
1018 -
927 Will merge to 'master'.
928
929
1022 -* tb/grep-only-matching (2018-05-14) 2 commits
1023 - - builtin/grep.c: teach '-o', '--only-matching' to 'git-grep'
1024 - - grep.c: extract show_line_header()
1025 - (this branch uses tb/grep-column.)
1026 -
1027 -
1028 -* ld/p4-unshelve (2018-05-23) 3 commits
1029 - - git-p4: unshelve: use action==add instead of rev==none
1030 - - SQUASH???
1031 - - git-p4: add unshelve command
930 +* ld/p4-unshelve (2018-05-24) 1 commit
931 + (merged to 'next' on 2018-05-30 at 7367508399)
932 + + git-p4: add unshelve command
933
934 "git p4" learned to "unshelve" shelved commit from P4.
935
1035 - Expecting a reroll.
1036 - cf. <CAE5ih7_jgrTXv25hYqoq=95H0zArbJAeQO3gO_TRpyLHGfTWUg@mail.gmail.com>
936 + Will merge to 'master'.
937
938
939 * pc/submodule-helper-foreach (2018-05-11) 4 commits
@@ -1048,49 +948,6 @@ of the repositories listed at
948 Will merge to and cook in 'next'.
949
950
1051 -* ab/get-short-oid (2018-05-11) 5 commits
1052 - (merged to 'next' on 2018-05-23 at 07e1908439)
1053 - + get_short_oid: sort ambiguous objects by type, then SHA-1
1054 - + sha1-name.c: move around the collect_ambiguous() function
1055 - + git-p4: change "commitish" typo to "committish"
1056 - + sha1-array.h: align function arguments
1057 - + sha1-name.c: remove stray newline
1058 -
1059 - When a short hexadecimal string is used to name an object but there
1060 - are multiple objects that share the string as the prefix of their
1061 - names, the code lists these ambiguous candidates in a help message.
1062 - These object names are now sorted according to their types for
1063 - easier eyeballing.
1064 -
1065 - Will merge to 'master'.
1066 -
1067 -
1068 -* cf/submodule-progress-dissociate (2018-05-22) 3 commits
1069 - (merged to 'next' on 2018-05-22 at 9b3b96c54b)
1070 - + submodule: add --dissociate option to add/update commands
1071 - + submodule: add --progress option to add command
1072 - + submodule: clean up substitutions in script
1073 -
1074 - "git submodule update" and "git submodule add" supported the
1075 - "--reference" option to borrow objects from a neighbouring local
1076 - repository like "git clone" does, but lacked the more recent
1077 - invention "--dissociate". Also "git submodule add" has been taught
1078 - to take the "--progress" option.
1079 -
1080 - Will merge to 'master'.
1081 -
1082 -
1083 -* dd/send-email-reedit (2018-05-06) 1 commit
1084 - (merged to 'next' on 2018-05-22 at 1f4c98324f)
1085 - + git-send-email: allow re-editing of message
1086 -
1087 - "git send-email" can sometimes offer confirmation dialog "Send this
1088 - email?" with choices 'Yes', 'No', 'Quit', and 'All'. A new action
1089 - 'Edit' has been added to this dialog's choice.
1090 -
1091 - Will merge to 'master'.
1092 -
1093 -
951 * js/branch-diff (2018-05-16) 19 commits
952 - fixup! Add a function to solve least-cost assignment problems
953 - completion: support branch-diff
@@ -1120,59 +977,6 @@ of the repositories listed at
977 cf. <nycvar.QRO.7.76.6.1805052351560.77@tvgsbejvaqbjf.bet>
978
979
1123 -* js/sequencer-and-root-commits (2018-05-06) 6 commits
1124 - (merged to 'next' on 2018-05-22 at c1a62f5bc9)
1125 - + rebase --rebase-merges: root commits can be cousins, too
1126 - + rebase --rebase-merges: a "merge" into a new root is a fast-forward
1127 - + sequencer: allow introducing new root commits
1128 - + rebase -i --root: let the sequencer handle even the initial part
1129 - + sequencer: learn about the special "fake root commit" handling
1130 - + sequencer: extract helper to update active_cache_tree
1131 -
1132 - The implementation of "git rebase -i --root" has been updated to use
1133 - the sequencer machinery more.
1134 -
1135 - Will merge to 'master'.
1136 -
1137 -
1138 -* js/use-bug-macro (2018-05-10) 5 commits
1139 - (merged to 'next' on 2018-05-22 at fd848c39ae)
1140 - + BUG_exit_code: fix sparse "symbol not declared" warning
1141 - + Convert remaining die*(BUG) messages
1142 - + Replace all die("BUG: ...") calls by BUG() ones
1143 - + run-command: use BUG() to report bugs, not die()
1144 - + test-tool: help verifying BUG() code paths
1145 -
1146 - Developer support update, by using BUG() macro instead of die() to
1147 - mark codepaths that should not happen more clearly.
1148 -
1149 - Will merge to 'master'.
1150 - Further updates can come on top later.
1151 - cf. <20180507090109.GA367@sigill.intra.peff.net>
1152 -
1153 -
1154 -* jt/partial-clone-proto-v2 (2018-05-06) 4 commits
1155 - (merged to 'next' on 2018-05-23 at f8b3692e8e)
1156 - + {fetch,upload}-pack: support filter in protocol v2
1157 - + upload-pack: read config when serving protocol v2
1158 - + upload-pack: fix error message typo
1159 - + Merge branch 'bw/protocol-v2' into jt/partial-clone-proto-v2
1160 -
1161 - Transfer protocol v2 learned to support the partial clone.
1162 -
1163 - Will merge to 'master'.
1164 -
1165 -
1166 -* ma/doc-expand-tabs (2018-05-02) 1 commit
1167 - - revisions.txt: expand tabs to spaces in diagram
1168 -
1169 - Fix one instance of asciidoctor's misformatting by expanding a tab
1170 - into spaces in a literal block.
1171 -
1172 - Will discard. This approach is less maintainable than the approach
1173 - taken by bc/asciidoctor-tab-width topic.
1174 -
1175 -
980 * sb/object-store-alloc (2018-05-16) 13 commits
981 - alloc: allow arbitrary repositories for alloc functions
982 - object: allow create_object to handle arbitrary repositories
@@ -1192,6 +996,8 @@ of the repositories listed at
996 The conversion to pass "the_repository" and then "a_repository"
997 throughout the object access API continues.
998
999 + Is this ready for 'next'?
1000 +
1001
1002 * tb/grep-column (2018-05-14) 7 commits
1003 - contrib/git-jump/git-jump: jump to match column in addition to line
@@ -1206,171 +1012,88 @@ of the repositories listed at
1012 "git grep" learned the "--column" option that gives not just the
1013 line number but the column number of the hit.
1014
1015 + What's the doneness of this topic?
1016
1210 -* bc/object-id (2018-05-02) 42 commits
1211 - (merged to 'next' on 2018-05-23 at 916bcce829)
1212 - + merge-one-file: compute empty blob object ID
1213 - + add--interactive: compute the empty tree value
1214 - + Update shell scripts to compute empty tree object ID
1215 - + sha1_file: only expose empty object constants through git_hash_algo
1216 - + dir: use the_hash_algo for empty blob object ID
1217 - + sequencer: use the_hash_algo for empty tree object ID
1218 - + cache-tree: use is_empty_tree_oid
1219 - + sha1_file: convert cached object code to struct object_id
1220 - + builtin/reset: convert use of EMPTY_TREE_SHA1_BIN
1221 - + builtin/receive-pack: convert one use of EMPTY_TREE_SHA1_HEX
1222 - + wt-status: convert two uses of EMPTY_TREE_SHA1_HEX
1223 - + submodule: convert several uses of EMPTY_TREE_SHA1_HEX
1224 - + sequencer: convert one use of EMPTY_TREE_SHA1_HEX
1225 - + merge: convert empty tree constant to the_hash_algo
1226 - + builtin/merge: switch tree functions to use object_id
1227 - + builtin/am: convert uses of EMPTY_TREE_SHA1_BIN to the_hash_algo
1228 - + sha1-file: add functions for hex empty tree and blob OIDs
1229 - + builtin/receive-pack: avoid hard-coded constants for push certs
1230 - + diff: specify abbreviation size in terms of the_hash_algo
1231 - + upload-pack: replace use of several hard-coded constants
1232 - + revision: replace use of hard-coded constants
1233 - + http: eliminate hard-coded constants
1234 - + dir: convert struct untracked_cache_dir to object_id
1235 - + commit: convert uses of get_sha1_hex to get_oid_hex
1236 - + index-pack: abstract away hash function constant
1237 - + pack-redundant: convert linked lists to use struct object_id
1238 - + Update struct index_state to use struct object_id
1239 - + split-index: convert struct split_index to object_id
1240 - + submodule-config: convert structures to object_id
1241 - + fsck: convert static functions to struct object_id
1242 - + tree-walk: convert get_tree_entry_follow_symlinks to object_id
1243 - + tree-walk: avoid hard-coded 20 constant
1244 - + pack-redundant: abstract away hash algorithm
1245 - + pack-objects: abstract away hash algorithm
1246 - + packfile: abstract away hash constant values
1247 - + packfile: convert find_pack_entry to object_id
1248 - + sha1-file: convert freshen functions to object_id
1249 - + packfile: convert has_sha1_pack to object_id
1250 - + packfile: remove unused member from struct pack_entry
1251 - + Remove unused member in struct object_context
1252 - + server-info: remove unused members from struct pack_info
1253 - + cache: add a function to read an object ID from a buffer
1254 -
1255 - Conversion from uchar[20] to struct object_id continues.
1256 -
1257 - Will merge to 'master'.
1258 -
1259 -
1260 -* bp/merge-rename-config (2018-05-08) 3 commits
1261 - (merged to 'next' on 2018-05-22 at 911440a742)
1262 - + merge: pass aggressive when rename detection is turned off
1263 - + merge: add merge.renames config setting
1264 - + merge: update documentation for {merge,diff}.renameLimit
1265 - (this branch is used by ma/unpack-trees-free-msgs.)
1017
1267 - With merge.renames configuration set to false, the recursive merge
1268 - strategy can be told not to spend cycles trying to find renamed
1269 - paths and merge them accordingly.
1018 +* tb/grep-only-matching (2018-05-14) 2 commits
1019 + - builtin/grep.c: teach '-o', '--only-matching' to 'git-grep'
1020 + - grep.c: extract show_line_header()
1021 + (this branch uses tb/grep-column.)
1022
1271 - Will merge to 'master'.
1023 + What's the doneness of this topic?
1024
1025
1026 * sb/diff-color-move-more (2018-05-21) 8 commits
1275 - - diff: color-moved white space handling options imply color-moved
1276 - - diff.c: add --color-moved-ignore-space-delta option
1277 - - diff.c: decouple white space treatment from move detection algorithm
1278 - - diff.c: add a blocks mode for moved code detection
1279 - - diff.c: adjust hash function signature to match hashmap expectation
1280 - - diff.c: do not pass diff options as keydata to hashmap
1281 - - xdiff/xdiffi.c: remove unneeded function declarations
1282 - - xdiff/xdiff.h: remove unused flags
1027 + (merged to 'next' on 2018-05-24 at 45f3fb7975)
1028 + + diff: color-moved white space handling options imply color-moved
1029 + + diff.c: add --color-moved-ignore-space-delta option
1030 + + diff.c: decouple white space treatment from move detection algorithm
1031 + + diff.c: add a blocks mode for moved code detection
1032 + + diff.c: adjust hash function signature to match hashmap expectation
1033 + + diff.c: do not pass diff options as keydata to hashmap
1034 + + xdiff/xdiffi.c: remove unneeded function declarations
1035 + + xdiff/xdiff.h: remove unused flags
1036
1037 "git diff --color-moved" feature has further been tweaked.
1038
1286 - Will merge to 'next'.
1039 + Will kick back to 'pu'.
1040 + cf. <CAGZ79kag9m02xtJKg05aPE4Grq2wBWSmUr3JdwfyHsMawR7m5Q@mail.gmail.com>
1041
1042
1043 * ds/generation-numbers (2018-05-22) 11 commits
1290 - - commit-graph.txt: update design document
1291 - - merge: check config before loading commits
1292 - - commit: use generation number in remove_redundant()
1293 - - commit: add short-circuit to paint_down_to_common()
1294 - - commit: use generation numbers for in_merge_bases()
1295 - - ref-filter: use generation number for --contains
1296 - - commit-graph: always load commit-graph information
1297 - - commit: use generations in paint_down_to_common()
1298 - - commit-graph: compute generation numbers
1299 - - commit: add generation number to struct commit
1300 - - ref-filter: fix outdated comment on in_commit_list
1301 - (this branch is used by ds/commit-graph-lockfile-fix.)
1044 + (merged to 'next' on 2018-05-24 at 56fc38a1b6)
1045 + + commit-graph.txt: update design document
1046 + + merge: check config before loading commits
1047 + + commit: use generation number in remove_redundant()
1048 + + commit: add short-circuit to paint_down_to_common()
1049 + + commit: use generation numbers for in_merge_bases()
1050 + + ref-filter: use generation number for --contains
1051 + + commit-graph: always load commit-graph information
1052 + + commit: use generations in paint_down_to_common()
1053 + + commit-graph: compute generation numbers
1054 + + commit: add generation number to struct commit
1055 + + ref-filter: fix outdated comment on in_commit_list
1056 + (this branch is used by ds/commit-graph-fsck and ds/commit-graph-lockfile-fix.)
1057
1058 A recently added "commit-graph" datafile has learned to store
1059 pre-computed generation numbers to speed up the decisions to stop
1060 history traversal.
1061
1307 - Will merge to 'next'.
1062 + Will merge to 'master'.
1063
1064
1065 * nd/command-list (2018-05-21) 17 commits
1311 - - completion: allow to customize the completable command list
1312 - - completion: add and use --list-cmds=alias
1313 - - completion: add and use --list-cmds=nohelpers
1314 - - Move declaration for alias.c to alias.h
1315 - - completion: reduce completable command list
1316 - - completion: let git provide the completable command list
1317 - - command-list.txt: documentation and guide line
1318 - - help: use command-list.txt for the source of guides
1319 - - help: add "-a --verbose" to list all commands with synopsis
1320 - - git: support --list-cmds=list-<category>
1321 - - completion: implement and use --list-cmds=main,others
1322 - - git --list-cmds: collect command list in a string_list
1323 - - git.c: convert --list-* to --list-cmds=*
1324 - - Remove common-cmds.h
1325 - - help: use command-list.h for common command list
1326 - - generate-cmds.sh: export all commands to command-list.h
1327 - - generate-cmds.sh: factor out synopsis extract code
1066 + (merged to 'next' on 2018-05-24 at 093e983b05)
1067 + + completion: allow to customize the completable command list
1068 + + completion: add and use --list-cmds=alias
1069 + + completion: add and use --list-cmds=nohelpers
1070 + + Move declaration for alias.c to alias.h
1071 + + completion: reduce completable command list
1072 + + completion: let git provide the completable command list
1073 + + command-list.txt: documentation and guide line
1074 + + help: use command-list.txt for the source of guides
1075 + + help: add "-a --verbose" to list all commands with synopsis
1076 + + git: support --list-cmds=list-<category>
1077 + + completion: implement and use --list-cmds=main,others
1078 + + git --list-cmds: collect command list in a string_list
1079 + + git.c: convert --list-* to --list-cmds=*
1080 + + Remove common-cmds.h
1081 + + help: use command-list.h for common command list
1082 + + generate-cmds.sh: export all commands to command-list.h
1083 + + generate-cmds.sh: factor out synopsis extract code
1084 + (this branch is used by nd/complete-config-vars.)
1085
1086 The list of commands with their various attributes were spread
1087 across a few places in the build procedure, but it now is getting a
1088 bit more consolidated to allow more automation.
1089
1333 - Will merge to 'next'.
1334 -
1335 -
1336 -* sg/complete-paths (2018-05-21) 13 commits
1337 - (merged to 'next' on 2018-05-22 at a00b992aec)
1338 - + t9902-completion: exercise __git_complete_index_file() directly
1339 - + completion: don't return with error from __gitcomp_file_direct()
1340 - (merged to 'next' on 2018-05-08 at 2a11444f90)
1341 - + completion: fill COMPREPLY directly when completing paths
1342 - + completion: improve handling quoted paths in 'git ls-files's output
1343 - + completion: remove repeated dirnames with 'awk' during path completion
1344 - + t9902-completion: ignore COMPREPLY element order in some tests
1345 - + completion: use 'awk' to strip trailing path components
1346 - + completion: let 'ls-files' and 'diff-index' filter matching paths
1347 - + completion: improve handling quoted paths on the command line
1348 - + completion: support completing non-ASCII pathnames
1349 - + completion: simplify prefix path component handling during path completion
1350 - + completion: move __git_complete_index_file() next to its helpers
1351 - + t9902-completion: add tests demonstrating issues with quoted pathnames
1352 -
1353 - Command line completion (in contrib/) learned to complete pathnames
1354 - for various commands better.
1355 -
1356 - Will merge to 'master'.
1357 -
1358 -
1359 -* sb/blame-color (2018-04-24) 3 commits
1360 - (merged to 'next' on 2018-05-23 at 2e9c0daf0b)
1361 - + builtin/blame: add new coloring scheme config
1362 - + builtin/blame: highlight recently changed lines
1363 - + builtin/blame: dim uninteresting metadata lines
1364 -
1365 - "git blame" learns to unhighlight uninteresting metadata from the
1366 - originating commit on lines that are the same as the previous one,
1367 - and also paint lines in different colors depending on the age of
1368 - the commit.
1369 -
1090 Will merge to 'master'.
1091
1092
1373 -* jk/branch-l-0-deprecation (2018-03-26) 3 commits
1093 +* jk/branch-l-0-deprecation (2018-05-25) 5 commits
1094 + (merged to 'next' on 2018-05-30 at a94574dfd5)
1095 + + branch: customize "-l" warning in list mode
1096 + + branch: issue "-l" deprecation warning after pager starts
1097 (merged to 'next' on 2018-04-11 at 9b2b0305dd)
1098 + branch: deprecate "-l" option
1099 + t: switch "branch -l" to "branch --create-reflog"
@@ -1387,7 +1110,7 @@ of the repositories listed at
1110 Perhaps merge to 'master' immediately after 2.18 release?
1111
1112
1390 -* jk/branch-l-1-removal (2018-03-26) 1 commit
1113 +* jk/branch-l-1-removal (2018-05-30) 1 commit
1114 - branch: drop deprecated "-l" option
1115 (this branch is used by jk/branch-l-2-reincarnation; uses jk/branch-l-0-deprecation.)
1116
@@ -1396,7 +1119,7 @@ of the repositories listed at
1119 Will keep in 'pu'.
1120
1121
1399 -* jk/branch-l-2-reincarnation (2018-03-26) 1 commit
1122 +* jk/branch-l-2-reincarnation (2018-05-30) 1 commit
1123 - branch: make "-l" a synonym for "--list"
1124 (this branch uses jk/branch-l-0-deprecation and jk/branch-l-1-removal.)
1125
@@ -1435,3 +1158,14 @@ of the repositories listed at
1158
1159 Retracted.
1160 cf. <0de30972-b0a2-67e8-7cff-c19daf9ece8b@gmail.com>
1161 +
1162 +
1163 +* ma/doc-expand-tabs (2018-05-02) 1 commit
1164 + . revisions.txt: expand tabs to spaces in diagram
1165 +
1166 + Fix one instance of asciidoctor's misformatting by expanding a tab
1167 + into spaces in a literal block.
1168 +
1169 + Discarded.
1170 + This approach is less maintainable than the approach taken by
1171 + bc/asciidoctor-tab-width topic.