What's cooking (2019/05 #01)

Junio C Hamano committed May 9, 2019 at 02:15 UTC 5c6157f78bbe55b951823aafd59f2879cbaaad36
1 file changed +603 -875
whats-cooking.txt
+603 -875
@@ -1,10 +1,10 @@
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 -Subject: What's cooking in git.git (Apr 2019, #05; Thu, 25)
4 -X-master-at: 83232e38648b51abbcbdb56c94632b6906cc85a6
5 -X-next-at: f2820cf01acf778d953a46357a6160ba42711eb1
3 +Subject: What's cooking in git.git (May 2019, #01; Thu, 9)
4 +X-master-at: 6a6c0f10a70a6eb101c213b09ae82a9cad252743
5 +X-next-at: 81c186ecd2768836c2dc37eefd32d2e2a5e6dfb5
6
7 -What's cooking in git.git (Apr 2019, #05; Thu, 25)
7 +What's cooking in git.git (May 2019, #01; Thu, 9)
8 --------------------------------------------------
9
10 Here are the topics that have been cooking. Commits prefixed with
@@ -12,6 +12,13 @@ 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 8th batch of topics, which Hopefully is the final one before
16 +-rc0, have been pushed out to 'master'. The "no-extern" topic is
17 +now in 'next', with its merge conflict with many other topics, is
18 +still slowing me down when it is moved earlier in the merge order.
19 +I expect it to need only one more topic shuffling before merged to
20 +'master', so I hope I'd survive.
21 +
22 You can find the changes described here in the integration branches
23 of the repositories listed at
24
@@ -20,583 +27,516 @@ of the repositories listed at
27 --------------------------------------------------
28 [Graduated to "master"]
29
23 -* ab/commit-graph-fixes (2019-04-01) 8 commits
24 - (merged to 'next' on 2019-04-16 at 97f4ba02f0)
25 - + commit-graph: improve & i18n error messages
26 - + commit-graph write: don't die if the existing graph is corrupt
27 - + commit-graph verify: detect inability to read the graph
28 - + commit-graph: don't pass filename to load_commit_graph_one_fd_st()
29 - + commit-graph: don't early exit(1) on e.g. "git status"
30 - + commit-graph: fix segfault on e.g. "git status"
31 - + commit-graph tests: test a graph that's too small
32 - + commit-graph tests: split up corrupt_graph_and_verify()
33 - (this branch is used by ds/commit-graph-format-v2.)
34 -
35 - Code cleanup with more careful error checking before using data
36 - read from the commit-graph file.
37 -
38 -
39 -* ab/gc-docs (2019-04-08) 11 commits
40 - (merged to 'next' on 2019-04-22 at 02785d40f5)
41 - + gc docs: remove incorrect reference to gc.auto=0
42 - + gc docs: clarify that "gc" doesn't throw away referenced objects
43 - + gc docs: note "gc --aggressive" in "fast-import"
44 - + gc docs: downplay the usefulness of --aggressive
45 - + gc docs: note how --aggressive impacts --window & --depth
46 - + gc docs: fix formatting for "gc.writeCommitGraph"
47 - + gc docs: re-flow the "gc.*" section in "config"
48 - + gc docs: include the "gc.*" section from "config" in "gc"
49 - + gc docs: clean grammar for "gc.bigPackThreshold"
50 - + gc docs: stop noting "repack" flags
51 - + gc docs: modernize the advice for manually running "gc"
52 -
53 - Update docs around "gc".
54 -
55 -
56 -* ab/gc-reflog (2019-04-01) 7 commits
57 - (merged to 'next' on 2019-04-16 at aa27f951a8)
58 - + gc: handle & check gc.reflogExpire config
59 - + reflog tests: assert lack of early exit with expiry="never"
60 - + reflog tests: test for the "points nowhere" warning
61 - + reflog tests: make use of "test_config" idiom
62 - + gc: refactor a "call me once" pattern
63 - + gc: convert to using the_hash_algo
64 - + gc: remove redundant check for gc_auto_threshold
65 -
66 - Fix various glitches in "git gc" around reflog handling.
67 -
68 -
69 -* ab/test-lib-pass-trace2-env (2019-04-01) 1 commit
70 - (merged to 'next' on 2019-04-16 at 4dad6d6d7a)
71 - + test-lib: whitelist GIT_TR2_* in the environment
72 -
73 - Allow tracing of Git executable while running the testsuite.
74 -
75 -
76 -* ag/sequencer-reduce-rewriting-todo (2019-03-07) 18 commits
77 - (merged to 'next' on 2019-04-10 at 7eab7c7800)
78 - + rebase--interactive: move transform_todo_file()
79 - + sequencer: use edit_todo_list() in complete_action()
80 - + rebase-interactive: rewrite edit_todo_list() to handle the initial edit
81 - + rebase-interactive: append_todo_help() changes
82 - + rebase-interactive: use todo_list_write_to_file() in edit_todo_list()
83 - + sequencer: refactor skip_unnecessary_picks() to work on a todo_list
84 - + rebase--interactive: move rearrange_squash_in_todo_file()
85 - + rebase--interactive: move sequencer_add_exec_commands()
86 - + sequencer: change complete_action() to use the refactored functions
87 - + sequencer: make sequencer_make_script() write its script to a strbuf
88 - + sequencer: refactor rearrange_squash() to work on a todo_list
89 - + sequencer: refactor sequencer_add_exec_commands() to work on a todo_list
90 - + sequencer: refactor check_todo_list() to work on a todo_list
91 - + sequencer: introduce todo_list_write_to_file()
92 - + sequencer: refactor transform_todos() to work on a todo_list
93 - + sequencer: remove the 'arg' field from todo_item
94 - + sequencer: make the todo_list structure public
95 - + sequencer: changes in parse_insn_buffer()
96 - (this branch is used by pw/rebase-i-internal.)
97 -
98 - The scripted version of "git rebase -i" wrote and rewrote the todo
99 - list many times during a single step of its operation, and the
100 - recent C-rewrite made a faithful conversion of the logic to C. The
101 - implementation has been updated to carry necessary information
102 - around in-core to avoid rewriting the same file over and over
103 - unnecessarily.
104 - cf. <20190305191805.13561-1-alban.gruin@gmail.com> (v8)
105 -
106 -
107 -* bc/hash-transition-16 (2019-04-01) 35 commits
108 - (merged to 'next' on 2019-04-16 at 8227fea6fa)
109 - + gitweb: make hash size independent
110 - + Git.pm: make hash size independent
111 - + read-cache: read data in a hash-independent way
112 - + dir: make untracked cache extension hash size independent
113 - + builtin/difftool: use parse_oid_hex
114 - + refspec: make hash size independent
115 - + archive: convert struct archiver_args to object_id
116 - + builtin/get-tar-commit-id: make hash size independent
117 - + get-tar-commit-id: parse comment record
118 - + hash: add a function to lookup hash algorithm by length
119 - + remote-curl: make hash size independent
120 - + http: replace sha1_to_hex
121 - + http: compute hash of downloaded objects using the_hash_algo
122 - + http: replace hard-coded constant with the_hash_algo
123 - + http-walker: replace sha1_to_hex
124 - + http-push: remove remaining uses of sha1_to_hex
125 - + http-backend: allow 64-character hex names
126 - + http-push: convert to use the_hash_algo
127 - + builtin/pull: make hash-size independent
128 - + builtin/am: make hash size independent
129 - + fast-import: replace sha1_to_hex
130 - + fast-import: make hash-size independent
131 - + builtin/name-rev: make hash-size independent
132 - + object-store: rename and expand packed_git's sha1 member
133 - + notes: replace sha1_to_hex
134 - + notes: make hash size independent
135 - + notes-merge: switch to use the_hash_algo
136 - + submodule: avoid hard-coded constants
137 - + pack-bitmap: switch hash tables to use struct object_id
138 - + pack-bitmap: switch hard-coded constants to the_hash_algo
139 - + pack-bitmap: replace sha1_to_hex
140 - + pack-bitmap: convert struct stored_bitmap to object_id
141 - + pack-bitmap: make bitmap header handling hash agnostic
142 - + khash: move oid hash table definition
143 - + t/lib-submodule-update: use appropriate length constant
144 -
145 - Conversion from unsigned char[20] to struct object_id continues.
146 -
147 -
148 -* bc/send-email-qp-cr (2019-04-14) 1 commit
149 - (merged to 'next' on 2019-04-22 at 69398b0ea8)
150 - + send-email: default to quoted-printable when CR is present
151 -
152 - "git send-email" has been taught to use quoted-printable when the
153 - payload contains carriage-return. The use of the mechanism is in
154 - line with the design originally added the codepath that chooses QP
155 - when the payload has overly long lines.
156 -
157 -
158 -* bp/post-index-change-hook (2019-02-15) 1 commit
159 - (merged to 'next' on 2019-03-11 at cb96d1d7c4)
160 - + read-cache: add post-index-change hook
161 -
162 - Originally merged to 'next' on 2019-02-23
163 -
164 - A new hook "post-index-change" is called when the on-disk index
165 - file changes, which can help e.g. a virtualized working tree
166 - implementation.
167 -
168 -
169 -* bs/sendemail-tighten-anything-by (2019-04-04) 1 commit
170 - (merged to 'next' on 2019-04-22 at 0a0680f234)
171 - + send-email: don't cc *-by lines with '-' prefix
172 -
173 - The recently added feature to add addresses that are on
174 - anything-by: trailers in 'git send-email' was found to be way too
175 - eager and considered nonsense strings as if they can be legitimate
176 - beginning of *-by: trailer. This has been tightened.
177 -
178 -
179 -* dk/blame-keep-origin-blob (2019-04-03) 1 commit
180 - (merged to 'next' on 2019-04-16 at 39679dde8b)
181 - + blame.c: don't drop origin blobs as eagerly
182 -
183 - Performance fix around "git blame", especially in a linear history
184 - (which is the norm we should optimize for).
185 -
186 -
187 -* dl/submodule-set-branch (2019-04-10) 3 commits
188 - (merged to 'next' on 2019-04-22 at 3b640715ae)
189 - + submodule: teach set-branch subcommand
190 - + submodule--helper: teach config subcommand --unset
191 - + git-submodule.txt: "--branch <branch>" option defaults to 'master'
192 -
193 - "git submodule" learns "set-branch" subcommand that allows the
194 - submodule.*.branch settings to be modified.
195 -
196 -
197 -* en/fast-import-parsing-fix (2019-04-01) 5 commits
198 - (merged to 'next' on 2019-04-16 at b318831bde)
199 - + fast-import: fix erroneous handling of get-mark with empty orphan commits
200 - + fast-import: only allow cat-blob requests where it makes sense
201 - + fast-import: check most prominent commands first
202 - + git-fast-import.txt: fix wording about where ls command can appear
203 - + t9300: demonstrate bug with get-mark and empty orphan commits
204 -
205 - "git fast-import" update.
206 -
207 -
208 -* jc/gettext-test-fix (2019-04-15) 1 commit
209 - (merged to 'next' on 2019-04-22 at 7c57deeb04)
210 - + gettext tests: export the restored GIT_TEST_GETTEXT_POISON
211 -
212 - The GETTEXT_POISON test option has been quite broken ever since it
213 - was made runtime-tunable, which has been fixed.
214 -
215 -
216 -* jk/fetch-reachability-error-fix (2019-04-15) 7 commits
217 - (merged to 'next' on 2019-04-22 at b4ce8375c0)
218 - + fetch: do not consider peeled tags as advertised tips
219 - + remote.c: make singular free_ref() public
220 - + fetch: use free_refs()
221 - + pkt-line: prepare buffer before handling ERR packets
222 - + upload-pack: send ERR packet for non-tip objects
223 - + t5530: check protocol response for "not our ref"
224 - + t5516: drop ok=sigpipe from unreachable-want tests
225 -
226 - Code clean-up and a fix for "git fetch" by an explicit object name
227 - (as opposed to fetching refs by name).
228 -
229 -
230 -* jk/revision-rewritten-parents-in-prio-queue (2019-04-04) 1 commit
231 - (merged to 'next' on 2019-04-16 at bdc1465128)
232 - + revision: use a prio_queue to hold rewritten parents
30 +* cc/aix-has-fileno-as-a-macro (2019-04-25) 1 commit
31 + (merged to 'next' on 2019-04-25 at f1d6464f98)
32 + + Makefile: use fileno macro work around on AIX
33 + (this branch is used by cc/access-on-aix-workaround.)
34
234 - Performance fix for "rev-list --parents -- pathspec".
35 + AIX shared the same build issues with other BSDs around fileno(fp),
36 + which has been corrected.
37
38
237 -* jk/server-info-rabbit-hole (2019-04-16) 13 commits
238 - (merged to 'next' on 2019-04-16 at 3dded8be9a)
239 - + update_info_refs(): drop unused force parameter
240 - + server-info: drop objdirlen pointer arithmetic
241 - + server-info: drop nr_alloc struct member
242 - + server-info: use strbuf to read old info/packs file
243 - + server-info: simplify cleanup in parse_pack_def()
244 - + server-info: fix blind pointer arithmetic
245 - + http: simplify parsing of remote objects/info/packs
246 - + packfile: fix pack basename computation
247 - + midx: check both pack and index names for containment
248 - + t5319: drop useless --buffer from cat-file
249 - + t5319: fix bogus cat-file argument
250 - + pack-revindex: open index if necessary
251 - + packfile.h: drop extern from function declarations
39 +* cc/replace-graft-peel-tags (2019-04-15) 4 commits
40 + (merged to 'next' on 2019-04-25 at f8d0db27ba)
41 + + replace: peel tag when passing a tag first to --graft
42 + + replace: peel tag when passing a tag as parent to --graft
43 + + t6050: redirect expected error output to a file
44 + + t6050: use test_line_count instead of wc -l
45
253 - Code clean-up around a much-less-important-than-it-used-to-be
254 - update_server_info() funtion.
46 + When given a tag that points at a commit-ish, "git replace --graft"
47 + failed to peel the tag before writing a replace ref, which did not
48 + make sense because the old graft mechanism the feature wants to
49 + mimick only allowed to replace one commit object with another.
50 + This has been fixed.
51
52
257 -* jk/unused-params-even-more (2019-03-21) 13 commits
258 - (merged to 'next' on 2019-04-10 at 12edf8872f)
259 - + parse_opt_ref_sorting: always use with NONEG flag
260 - + pretty: drop unused strbuf from parse_padding_placeholder()
261 - + pretty: drop unused "type" parameter in needs_rfc2047_encoding()
262 - + parse-options: drop unused ctx parameter from show_gitcomp()
263 - + fetch_pack(): drop unused parameters
264 - + report_path_error(): drop unused prefix parameter
265 - + unpack-trees: drop unused error_type parameters
266 - + unpack-trees: drop name_entry from traverse_by_cache_tree()
267 - + test-date: drop unused "now" parameter from parse_dates()
268 - + update-index: drop unused prefix_length parameter from do_reupdate()
269 - + log: drop unused "len" from show_tagger()
270 - + log: drop unused rev_info from early output
271 - + revision: drop some unused "revs" parameters
53 +* dl/merge-cleanup-scissors-fix (2019-04-19) 10 commits
54 + (merged to 'next' on 2019-04-25 at 2014eef6b1)
55 + + cherry-pick/revert: add scissors line on merge conflict
56 + + sequencer.c: save and restore cleanup mode
57 + + merge: add scissors line on merge conflict
58 + + merge: cleanup messages like commit
59 + + parse-options.h: extract common --cleanup option
60 + + commit: extract cleanup_mode functions to sequencer
61 + + t7502: clean up style
62 + + t7604: clean up style
63 + + t3507: clean up style
64 + + t7600: clean up style
65 + (this branch uses pw/sequencer-cleanup-with-signoff-x-fix.)
66
273 - Code cleanup.
67 + The list of conflicted paths shown in the editor while concluding a
68 + conflicted merge was shown above the scissors line when the
69 + clean-up mode is set to "scissors", even though it was commented
70 + out just like the list of updated paths and other information to
71 + help the user explain the merge better.
72 +
73 +
74 +* dl/warn-tagging-a-tag (2019-04-12) 2 commits
75 + (merged to 'next' on 2019-04-25 at 8b966d7fe8)
76 + + tag: advise on nested tags
77 + + tag: fix formatting
78
79 + "git tag" learned to give an advice suggesting it might be a
80 + mistake when creating an annotated or signed tag that points at
81 + another tag.
82
276 -* jk/xmalloc (2019-04-12) 4 commits
277 - (merged to 'next' on 2019-04-22 at 1a907289fa)
278 - + progress: use xmalloc/xcalloc
279 - + xdiff: use xmalloc/xrealloc
280 - + xdiff: use git-compat-util
281 - + test-prio-queue: use xmalloc
83
283 - The code is updated to check the result of memory allocation before
284 - it is used in more places, by using xmalloc and/or xcalloc calls.
84 +* dr/ref-filter-push-track-fix (2019-04-18) 1 commit
85 + (merged to 'next' on 2019-04-25 at 07db067adc)
86 + + ref-filter: use correct branch for %(push:track)
87
88 + %(push:track) token used in the --format option to "git
89 + for-each-ref" and friends was not showing the right branch, which
90 + has been fixed.
91
287 -* js/difftool-no-index (2019-03-18) 3 commits
288 - (merged to 'next' on 2019-04-16 at 7313f9ff18)
289 - + difftool: allow running outside Git worktrees with --no-index
290 - + parse-options: make OPT_ARGUMENT() more useful
291 - + difftool: remove obsolete (and misleading) comment
92
293 - "git difftool" can now run outside a repository.
93 +* en/merge-directory-renames (2019-04-08) 15 commits
94 + (merged to 'next' on 2019-04-25 at fd5b4f57b4)
95 + + merge-recursive: switch directory rename detection default
96 + + merge-recursive: give callers of handle_content_merge() access to contents
97 + + merge-recursive: track information associated with directory renames
98 + + t6043: fix copied test description to match its purpose
99 + + merge-recursive: switch from (oid,mode) pairs to a diff_filespec
100 + + merge-recursive: cleanup handle_rename_* function signatures
101 + + merge-recursive: track branch where rename occurred in rename struct
102 + + merge-recursive: remove ren[12]_other fields from rename_conflict_info
103 + + merge-recursive: shrink rename_conflict_info
104 + + merge-recursive: move some struct declarations together
105 + + merge-recursive: use 'ci' for rename_conflict_info variable name
106 + + merge-recursive: rename locals 'o' and 'a' to 'obuf' and 'abuf'
107 + + merge-recursive: rename diff_filespec 'one' to 'o'
108 + + merge-recursive: rename merge_options argument from 'o' to 'opt'
109 + + Use 'unsigned short' for mode, like diff_filespec does
110
111 + "git merge-recursive" backend recently learned a new heuristics to
112 + infer file movement based on how other files in the same directory
113 + moved. As this is inherently less robust heuristics than the one
114 + based on the content similarity of the file itself (rather than
115 + based on what its neighbours are doing), it sometimes gives an
116 + outcome unexpected by the end users. This has been toned down to
117 + leave the renamed paths in higher/conflicted stages in the index so
118 + that the user can examine and confirm the result.
119
296 -* js/iso8895-test-on-apfs (2019-04-15) 1 commit
297 - (merged to 'next' on 2019-04-22 at c2fadead33)
298 - + t9822: skip tests if file names cannot be ISO-8859-1 encoded
120
300 - Test fix on APFS that is incapable of store paths in Latin-1.
121 +* jk/pack-objects-reports-num-objects-to-trace2 (2019-04-12) 1 commit
122 + (merged to 'next' on 2019-04-25 at e79464c054)
123 + + pack-objects: write objects packed to trace2
124
125 + The "git pack-objects" command learned to report the number of
126 + objects it packed via the trace2 mechanism.
127
303 -* js/macos-gettext-build (2019-04-15) 1 commit
304 - (merged to 'next' on 2019-04-22 at de4cbb1431)
305 - + macOS: make sure that gettext is found
128
307 - Build with gettext breaks on recent macOS w/ Homebrew when
308 - /usr/local/bin is not on PATH, which has been corrected.
129 +* jk/prune-optim (2019-04-19) 1 commit
130 + (merged to 'next' on 2019-04-25 at c50353b27f)
131 + + t5304: add a test for pruning with bitmaps
132
133 + A follow-up test for an earlier "git prune" improvements.
134
311 -* js/t3301-unbreak-notes-test (2019-04-09) 1 commit
312 - (merged to 'next' on 2019-04-22 at a015b00bd9)
313 - + t3301: fix false negative
135
315 - Test fix.
136 +* jk/untracked-cache-more-fixes (2019-04-19) 3 commits
137 + (merged to 'next' on 2019-04-25 at a6037ddd54)
138 + + untracked-cache: simplify parsing by dropping "len"
139 + + untracked-cache: simplify parsing by dropping "next"
140 + + untracked-cache: be defensive about missing NULs in index
141
142 + Code clean-up.
143
318 -* js/untracked-cache-allocfix (2019-04-12) 1 commit
319 - (merged to 'next' on 2019-04-22 at 004a544075)
320 - + untracked cache: fix off-by-one
321 - (this branch is used by jk/untracked-cache-more-fixes.)
144
323 - An underallocation in the code to read the untracked cache
324 - extension has been corrected.
145 +* js/misc-doc-fixes (2019-04-19) 8 commits
146 + (merged to 'next' on 2019-04-25 at 6898f709d0)
147 + + Turn `git serve` into a test helper
148 + + test-tool: handle the `-C <directory>` option just like `git`
149 + + check-docs: do not bother checking for legacy scripts' documentation
150 + + docs: exclude documentation for commands that have been excluded
151 + + check-docs: allow command-list.txt to contain excluded commands
152 + + help -a: do not list commands that are excluded from the build
153 + + Makefile: drop the NO_INSTALL variable
154 + + remote-testgit: move it into the support directory for t5801
155
156 + "make check-docs", "git help -a", etc. did not account for cases
157 + where a particular build may deliberately omit some subcommands,
158 + which has been corrected.
159
327 -* jt/batch-fetch-blobs-in-diff (2019-04-08) 2 commits
328 - (merged to 'next' on 2019-04-22 at 0598bae567)
329 - + diff: batch fetching of missing blobs
330 - + sha1-file: support OBJECT_INFO_FOR_PREFETCH
331 - (this branch is used by cc/multi-promisor.)
160
333 - While running "git diff" in a lazy clone, we can upfront know which
334 - missing blobs we will need, instead of waiting for the on-demand
335 - machinery to discover them one by one. Aim to achieve better
336 - performance by batching the request for these promised blobs.
161 +* js/trace2-to-directory (2019-03-22) 1 commit
162 + (merged to 'next' on 2019-04-25 at 53adf71c41)
163 + + trace2: write to directory targets
164
165 + The trace2 tracing facility learned to auto-generate a filename
166 + when told to log to a directory.
167
339 -* jt/fetch-no-update-shallow-in-proto-v2 (2019-04-01) 3 commits
340 - (merged to 'next' on 2019-04-16 at 05c5ebe471)
341 - + fetch-pack: respect --no-update-shallow in v2
342 - + fetch-pack: call prepare_shallow_info only if v0
343 - + Merge branch 'jt/test-protocol-version' into jt/fetch-no-update-shallow-in-proto-v2
168
345 - Fix for protocol v2 support in "git fetch-pack" of shallow clones.
169 +* jt/clone-server-option (2019-04-18) 2 commits
170 + (merged to 'next' on 2019-04-25 at 21f07cc85d)
171 + + clone: send server options when using protocol v2
172 + + transport: die if server options are unsupported
173
174 + "git clone" learned a new --server-option option when talking over
175 + the protocol version 2.
176
348 -* jt/fetch-pack-wanted-refs-optim (2019-04-01) 1 commit
349 - (merged to 'next' on 2019-04-16 at 051f6bd38a)
350 - + fetch-pack: binary search when storing wanted-refs
177
352 - Performance fix around "git fetch" that grabs many refs.
178 +* jt/submodule-repo-is-with-worktree (2019-04-21) 1 commit
179 + (merged to 'next' on 2019-04-25 at da2c6d684d)
180 + + worktree: update is_bare heuristics
181
182 + The logic to tell if a Git repository has a working tree protects
183 + "git branch -D" from removing the branch that is currently checked
184 + out by mistake. The implementation of this logic was broken for
185 + repositories with unusual name, which unfortunately is the norm for
186 + submodules these days. This has been fixed.
187
355 -* km/t3000-retitle (2019-04-12) 1 commit
356 - (merged to 'next' on 2019-04-22 at 2d5aa01ca6)
357 - + t3000 (ls-files -o): widen description to reflect current tests
188
359 - A test update.
189 +* km/empty-repo-is-still-a-repo (2019-04-10) 3 commits
190 + (merged to 'next' on 2019-04-25 at bb3d4406a5)
191 + + add: error appropriately on repository with no commits
192 + + dir: do not traverse repositories with no commits
193 + + submodule: refuse to add repository with no commits
194
195 + Running "git add" on a repository created inside the current
196 + repository is an explicit indication that the user wants to add it
197 + as a submodule, but when the HEAD of the inner repository is on an
198 + unborn branch, it cannot be added as a submodule. Worse, the files
199 + in its working tree can be added as if they are a part of the outer
200 + repository, which is not what the user wants. These problems are
201 + being addressed.
202
362 -* nd/checkout-m (2019-03-24) 4 commits
363 - (merged to 'next' on 2019-04-16 at 4d7c322bed)
364 - + checkout: prevent losing staged changes with --merge
365 - + read-tree: add --quiet
366 - + unpack-trees: rename "gently" flag to "quiet"
367 - + unpack-trees: keep gently check inside add_rejected_path
203
369 - "git checkout -m <other>" was about carrying the differences
370 - between HEAD and the working-tree files forward while checking out
371 - another branch, and ignored the differences between HEAD and the
372 - index. The command has been taught to abort when the index and the
373 - HEAD are different.
204 +* nd/sha1-name-c-wo-the-repository (2019-04-16) 34 commits
205 + (merged to 'next' on 2019-04-25 at d826918329)
206 + + sha1-name.c: remove the_repo from get_oid_mb()
207 + + sha1-name.c: remove the_repo from other get_oid_*
208 + + sha1-name.c: remove the_repo from maybe_die_on_misspelt_object_name
209 + + submodule-config.c: use repo_get_oid for reading .gitmodules
210 + + sha1-name.c: add repo_get_oid()
211 + + sha1-name.c: remove the_repo from get_oid_with_context_1()
212 + + sha1-name.c: remove the_repo from resolve_relative_path()
213 + + sha1-name.c: remove the_repo from diagnose_invalid_index_path()
214 + + sha1-name.c: remove the_repo from handle_one_ref()
215 + + sha1-name.c: remove the_repo from get_oid_1()
216 + + sha1-name.c: remove the_repo from get_oid_basic()
217 + + sha1-name.c: remove the_repo from get_describe_name()
218 + + sha1-name.c: remove the_repo from get_oid_oneline()
219 + + sha1-name.c: add repo_interpret_branch_name()
220 + + sha1-name.c: remove the_repo from interpret_branch_mark()
221 + + sha1-name.c: remove the_repo from interpret_nth_prior_checkout()
222 + + sha1-name.c: remove the_repo from get_short_oid()
223 + + sha1-name.c: add repo_for_each_abbrev()
224 + + sha1-name.c: store and use repo in struct disambiguate_state
225 + + sha1-name.c: add repo_find_unique_abbrev_r()
226 + + sha1-name.c: remove the_repo from find_abbrev_len_packed()
227 + + sha1-name.c: remove the_repo from sort_ambiguous()
228 + + commit.c: add repo_get_commit_tree()
229 + + commit.cocci: refactor code, avoid double rewrite
230 + + refs.c: remove the_repo from read_ref_at()
231 + + refs.c: add repo_dwim_log()
232 + + refs.c: add repo_dwim_ref()
233 + + refs.c: remove the_repo from expand_ref()
234 + + refs.c: remove the_repo from substitute_branch_name()
235 + + refs.c: add refs_shorten_unambiguous_ref()
236 + + refs.c: add refs_ref_exists()
237 + + packfile.c: add repo_approximate_object_count()
238 + + builtin rebase: use oideq()
239 + + builtin rebase: use FREE_AND_NULL
240
241 + Further code clean-up to allow the lowest level of name-to-object
242 + mapping layer to work with a passed-in repository other than the
243 + default one.
244
376 -* nd/commit-a-with-paths-msg-update (2019-03-22) 1 commit
377 - (merged to 'next' on 2019-04-16 at a36c712b39)
378 - + commit: improve error message in "-a <paths>" case
245
380 - The message given when "git commit -a <paths>" errors out has been
381 - updated.
246 +* pw/sequencer-cleanup-with-signoff-x-fix (2019-04-18) 1 commit
247 + (merged to 'next' on 2019-04-25 at cc587fb2b9)
248 + + sequencer: fix cleanup with --signoff and -x
249 + (this branch is used by dl/merge-cleanup-scissors-fix.)
250
251 + "git cherry-pick" run with the "-x" or the "--signoff" option used
252 + to (and more importantly, ought to) clean up the commit log message
253 + with the --cleanup=space option by default, but this has been
254 + broken since late 2017. This has been fixed.
255
384 -* nd/diff-parseopt-4 (2019-03-24) 20 commits
385 - (merged to 'next' on 2019-04-10 at 893b135f10)
386 - + am: avoid diff_opt_parse()
387 - + diff --no-index: use parse_options() instead of diff_opt_parse()
388 - + range-diff: use parse_options() instead of diff_opt_parse()
389 - + diff.c: allow --no-color-moved-ws
390 - + diff-parseopt: convert --color-moved-ws
391 - + diff-parseopt: convert --[no-]color-moved
392 - + diff-parseopt: convert --inter-hunk-context
393 - + diff-parseopt: convert --no-prefix
394 - + diff-parseopt: convert --line-prefix
395 - + diff-parseopt: convert --[src|dst]-prefix
396 - + diff-parseopt: convert --[no-]abbrev
397 - + diff-parseopt: convert --diff-filter
398 - + diff-parseopt: convert --find-object
399 - + diff-parseopt: convert -O
400 - + diff-parseopt: convert --pickaxe-all|--pickaxe-regex
401 - + diff-parseopt: convert -S|-G
402 - + diff-parseopt: convert -l
403 - + diff-parseopt: convert -z
404 - + diff-parseopt: convert --ita-[in]visible-in-index
405 - + diff-parseopt: convert --ws-error-highlight
256
407 - Fourth batch to teach the diff machinery to use the parse-options
408 - API.
257 +* ss/msvc-path-utils-fix (2019-04-09) 1 commit
258 + (merged to 'next' on 2019-04-25 at ee2850da18)
259 + + MSVC: include compat/win32/path-utils.h for MSVC, too, for real_path()
260
261 + An earlier update for MinGW and Cygwin accidentally broke MSVC build,
262 + which has been fixed.
263
411 -* nd/submodule-foreach-quiet (2019-04-15) 1 commit
412 - (merged to 'next' on 2019-04-22 at bf982bca7b)
413 - + submodule foreach: fix "<command> --quiet" not being respected
264
415 - "git submodule foreach <command> --quiet" did not pass the option
416 - down correctly, which has been corrected.
265 +* tb/unexpected (2019-04-10) 7 commits
266 + (merged to 'next' on 2019-04-25 at c49927fca0)
267 + + rev-list: detect broken root trees
268 + + rev-list: let traversal die when --missing is not in use
269 + + get_commit_tree(): return NULL for broken tree
270 + + list-objects.c: handle unexpected non-tree entries
271 + + list-objects.c: handle unexpected non-blob entries
272 + + t: introduce tests for unexpected object types
273 + + t: move 'hex2oct' into test-lib-functions.sh
274
275 + Code tightening against a "wrong" object appearing where an object
276 + of a different type is expected, instead of blindly assuming that
277 + the connection between objects are correctly made.
278
419 -* po/describe-not-necessarily-7 (2019-04-08) 1 commit
420 - (merged to 'next' on 2019-04-22 at 65b47ca73f)
421 - + describe doc: remove '7-char' abbreviation reference
279
423 - Docfix.
280 +* tz/git-svn-doc-markup-fix (2019-04-10) 1 commit
281 + (merged to 'next' on 2019-04-25 at 3efaa6285c)
282 + + Documentation/git-svn: improve asciidoctor compatibility
283
284 + Doc formatting fix.
285
426 -* po/rerere-doc-fmt (2019-04-08) 1 commit
427 - (merged to 'next' on 2019-04-22 at 780c0d2450)
428 - + rerere doc: quote `rerere.enabled`
286
430 - Docfix.
287 +* vk/autoconf-gettext (2019-04-19) 1 commit
288 + (merged to 'next' on 2019-04-25 at 918870cbc2)
289 + + autoconf: #include <libintl.h> when checking for gettext()
290
291 + The autoconf generated configure script failed to use the right
292 + gettext() implementations from -libintl by ignoring useless stub
293 + implementations shipped in some C library, which has been
294 + corrected.
295
433 -* pw/cherry-pick-continue (2019-03-18) 3 commits
434 - (merged to 'next' on 2019-04-16 at 1bfd7a7179)
435 - + cherry-pick --continue: remember options
436 - + cherry-pick: demonstrate option amnesia
437 - + sequencer: break some long lines
296 +--------------------------------------------------
297 +[New Topics]
298
439 - "git cherry-pick --options A..B", after giving control back to the
440 - user to ask help resolving a conflicted step, did not honor the
441 - options it originally received, which has been corrected.
299 +* ab/perf-installed-fix (2019-05-08) 6 commits
300 + - perf-lib.sh: forbid the use of GIT_TEST_INSTALLED
301 + - perf tests: add "bindir" prefix to git tree test results
302 + - perf-lib.sh: remove GIT_TEST_INSTALLED from perf-lib.sh
303 + - perf-lib.sh: make "./run <revisions>" use the correct gits
304 + - perf aggregate: remove GIT_TEST_INSTALLED from --codespeed
305 + - perf README: correct docs for 3c8f12c96c regression
306
307 + Performance test framework has been broken and measured the version
308 + of Git that happens to be on $PATH, not the specified one to
309 + measure, for a while, which has been corrected.
310
444 -* sg/blame-in-bare-start-at-head (2019-04-08) 1 commit
445 - (merged to 'next' on 2019-04-22 at 159777c280)
446 - + blame: default to HEAD in a bare repo when no start commit is given
311 + Will merge to 'next'.
312 + cf. <20190507105434.9600-1-avarab@gmail.com>
313
448 - "git blame -- path" in a non-bare repository starts blaming from
449 - the working tree, and the same command in a bare repository errors
450 - out because there is no working tree by definition. The command
451 - has been taught to instead start blaming from the commit at HEAD,
452 - which is more useful.
314
315 +* an/ignore-doc-update (2019-05-08) 1 commit
316 + - gitignore.txt: make slash-rules more readable
317
455 -* sg/index-pack-progress (2019-04-01) 1 commit
456 - (merged to 'next' on 2019-04-16 at a10bfdd950)
457 - + index-pack: show progress while checking objects
318 + The description about slashes in gitignore patterns (used to
319 + indicate things like "anchored to this level only" and "only
320 + matches directories") has been revamped.
321
459 - A progress indicator has been added to the "index-pack" step, which
460 - often makes users wait for completion during "git clone".
322 + Almost there.
323 + cf. <20190507104507.18735-1-admin@in-ici.net>
324
325
463 -* sg/overlong-progress-fix (2019-04-15) 4 commits
464 - (merged to 'next' on 2019-04-22 at 69921cdf09)
465 - + progress: break too long progress bar lines
466 - + progress: clear previous progress update dynamically
467 - + progress: assemble percentage and counters in a strbuf before printing
468 - + progress: make display_progress() return void
326 +* bl/t4253-exit-code-from-format-patch (2019-05-07) 1 commit
327 + - t4253-am-keep-cr-dos: avoid using pipes
328
470 - Updating the display with progress message has been cleaned up to
471 - deal better with overlong messages.
329 + Avoid patterns to pipe output from a git command to feed another
330 + command in tests.
331
332 + Will merge to 'next'.
333
474 -* sg/test-atexit (2019-03-14) 11 commits
475 - (merged to 'next' on 2019-04-10 at 7839135291)
476 - + t9811-git-p4-label-import: fix pipeline negation
477 - + git p4 test: disable '-x' tracing in the p4d watchdog loop
478 - + git p4 test: simplify timeout handling
479 - + git p4 test: clean up the p4d cleanup functions
480 - + git p4 test: use 'test_atexit' to kill p4d and the watchdog process
481 - + t0301-credential-cache: use 'test_atexit' to stop the credentials helper
482 - + tests: use 'test_atexit' to stop httpd
483 - + git-daemon: use 'test_atexit` to stop 'git-daemon'
484 - + test-lib: introduce 'test_atexit'
485 - + t/lib-git-daemon: make sure to kill the 'git-daemon' process
486 - + test-lib: fix interrupt handling with 'dash' and '--verbose-log -x'
334
488 - Test framework update to more robustly clean up leftover files and
489 - processes after tests are done.
335 +* cm/notes-comment-fix (2019-05-07) 1 commit
336 + - notes: correct documentation of format_display_notes()
337
338 + A stale in-code comment has been updated.
339
492 -* tg/ls-files-debug-format-fix (2019-04-08) 1 commit
493 - (merged to 'next' on 2019-04-22 at a5ac1ca49f)
494 - + ls-files: use correct format string
340 + Will merge to 'next'.
341
496 - Debugging code fix.
342
343 +* dl/branch-from-3dot-merge-base (2019-05-07) 2 commits
344 + - branch: make create_branch accept a merge base rev
345 + - t2018: cleanup in current test
346
499 -* tz/doc-apostrophe-no-longer-needed (2019-04-10) 1 commit
500 - (merged to 'next' on 2019-04-22 at 8ff03863ce)
501 - + Documentation/git-show-branch: avoid literal {apostrophe}
347 + "git branch new A...B" and "git checkout -b new A...B" have been
348 + taught that in their contexts, the notation A...B means "the merge
349 + base between these two commits", just like "git checkout A...B"
350 + detaches HEAD at that commit.
351
503 - Doc formatting fix.
352 + Will merge to 'next'.
353 + cf. <cover.1556366347.git.liu.denton@gmail.com>
354
505 ---------------------------------------------------
506 -[New Topics]
355
508 -* jc/make-dedup-ls-files-output (2019-04-22) 1 commit
509 - - Makefile: dedup list of files obtained from ls-files
356 +* ds/cvsexportcommit-force-text (2019-05-07) 1 commit
357 + - cvsexportcommit: force crlf translation
358
511 - A "ls-files" that emulates "find" to enumerate files in the working
512 - tree resulted in duplicated Makefile rules that caused the build to
513 - issue an unnecessary warning during a trial build after merge
514 - conflicts are resolved in working tree *.h files but before the
515 - resolved results are added to the index. This has been corrected.
359 + "git cvsexportcommit" running on msys did not expect cvsnt showed
360 + "cvs status" output with CRLF line endings.
361
362 Will merge to 'next'.
518 - A not-so-low hanging fruit to teach ls-files to dedup either optionally
519 - or always has also been discussed, which probably is a good idea,
520 - to prevent mistakes similar to the bug this topic fixes in the future.
363
364
523 -* jk/ls-files-doc-markup-fix (2019-04-23) 1 commit
524 - - doc/ls-files: put nested list for "-t" option into block
365 +* en/fast-export-encoding (2019-05-07) 5 commits
366 + - fast-export: do automatic reencoding of commit messages only if requested
367 + - fast-export: differentiate between explicitly utf-8 and implicitly utf-8
368 + - fast-export: avoid stripping encoding header if we cannot reencode
369 + - fast-import: support 'encoding' commit header
370 + - t9350: fix encoding test to actually test reencoding
371
526 - Docfix.
372 + The "git fast-export/import" pair has been taught to handle commits
373 + with log messages in encoding other than UTF-8 better.
374
375 Will merge to 'next'.
376
377
531 -* jk/p5302-avoid-collision-check-cost (2019-04-23) 1 commit
532 - - p5302: create the repo in each index-pack test
378 +* jh/trace2 (2019-04-26) 1 commit
379 + (merged to 'next' on 2019-05-09 at e1bba8aeac)
380 + + trace2: fix incorrect function pointer check
381 +
382 + An embarrassing bugfix.
383 +
384 + Will merge to 'master'.
385
534 - Fix index-pack perf test so that the repeated invocations always
535 - run in an empty repository, which emulates the initial clone
536 - situation better.
386 +
387 +* jk/apache-lsan (2019-05-08) 1 commit
388 + - t/lib-httpd: pass LSAN_OPTIONS through apache
389 +
390 + Allow tests that involve httpd to be run under leak sanitizer, just
391 + like we can already do so under address sanitizer.
392
393 Will merge to 'next'.
394
395
541 -* dl/rev-tilde-doc-clarify (2019-04-24) 1 commit
542 - - revisions.txt: mention <rev>~ form
396 +* jk/cocci-batch (2019-05-08) 2 commits
397 + - coccicheck: make batch size of 0 mean "unlimited"
398 + - coccicheck: optionally batch spatch invocations
399
544 - Docfix.
400 + Optionally "make coccicheck" can feed multiple source files to
401 + spatch, gaining performance while spending more memory.
402
403 Will merge to 'next'.
404
405
549 -* en/unicode-in-refnames (2019-04-24) 1 commit
550 - - Honor core.precomposeUnicode in more places
406 +* js/commit-graph-parse-leakfix (2019-05-07) 1 commit
407 + - commit-graph: fix memory leak
408
552 - The names of the refs stored as filesystem entities may become
553 - different from what the end-user expects, just like files in the
554 - working tree gets "renamed", on a filesystem like HFS+. Work it
555 - around by paying attemption to the core.precomposeUnicode
556 - configuration.
409 + Leakfix.
410
558 - Looked sensible. Ready for next?
411 + Will merge to 'next'.
412
413
561 -* jk/perf-aggregate-wo-libjson (2019-04-24) 1 commit
562 - - t/perf: depend on perl JSON only when using --codespeed
414 +* js/fsmonitor-refresh-after-discarding-index (2019-05-08) 2 commits
415 + - fsmonitor: force a refresh after the index was discarded
416 + - fsmonitor: demonstrate that it is not refreshed after discard_index()
417
564 - The script to aggregate perf result unconditionally depended on
565 - libjson-perl even though it did not have to, which has been
566 - corrected.
418 + The fsmonitor interface got out of sync after the in-core index
419 + file gets discarded, which has been corrected.
420
421 Will merge to 'next'.
422
423
571 -* cc/access-on-aix-workaround (2019-04-25) 1 commit
572 - - git-compat-util: work around for access(X_OK) under root
573 - (this branch uses cc/aix-has-fileno-as-a-macro.)
424 +* js/t5580-unc-alternate-test (2019-05-07) 1 commit
425 + - t5580: verify that alternates can be UNC paths
426
427 + An additional test for MinGW
428
576 -* dl/difftool-mergetool (2019-04-25) 6 commits
577 - - difftool: fallback on merge.guitool
578 - - difftool: make --gui, --tool and --extcmd mutually exclusive
579 - - mergetool: fallback to tool when guitool unavailable
580 - - mergetool: use get_merge_tool function
581 - - t7610: add mergetool --gui tests
582 - - t7610: unsuppress output
429 + Will merge to 'next'.
430 +
431 +
432 +* js/t6500-use-windows-pid-on-mingw (2019-05-08) 1 commit
433 + - t6500(mingw): use the Windows PID of the shell
434 +
435 + Future-proof a test against an update to MSYS2 runtime v3.x series.
436 +
437 + Will merge to 'next'.
438 + cf. <pull.185.git.gitgitgadget@gmail.com>
439 + It might be helpful in the longer term to encapsulate the code that
440 + uses /proc/$$/winpid into a helper function and use it anywhere $$
441 + is referenced, but let's defer it until we see such a callsite that
442 + would be helped by such a move.
443 +
444 +
445 +* mh/http-fread-api-fix (2019-05-08) 1 commit
446 + - Make fread/fwrite-like functions in http.c more like fread/fwrite.
447 +
448 + A pair of private functions in http.c that had names similar to
449 + fread/fwrite did not return the number of elements, which was found
450 + to be confusing.
451 +
452 + Will merge to 'next'.
453 +
454 +
455 +* nd/merge-quit (2019-05-07) 2 commits
456 + - merge: add --quit
457 + - merge: remove drop_save() in favor of remove_merge_branch_state()
458 +
459 + "git merge" learned "--quit" option that cleans up the in-progress
460 + merge while leaving the working tree and the index still in a mess.
461 +
462 + Hmph, why is this a good idea?
463 +
464 +
465 +* nd/parse-options-aliases (2019-05-07) 1 commit
466 + - parse-options: don't emit "ambiguous option" for aliases
467 +
468 + Attempt to use an abbreviated option in "git clone --recurs" is
469 + responded by a request to disambiguate between --recursive and
470 + --recurse-submodules, which is bad because these two are synonyms.
471 + The parse-options API has been extended to define such synonyms
472 + more easily and not produce an unnecessary failure.
473 +
474 + Will merge to 'next'.
475 +
476 +
477 +* pw/rebase-abort-clean-rewritten (2019-05-08) 1 commit
478 + - rebase --abort: cleanup refs/rewritten
479 + (this branch uses pw/rebase-i-internal.)
480 +
481 + "git rebase --abort" used to leave refs/rewritten/ when concluding
482 + "git rebase -r", which has been corrected.
483 +
484 + Will merge to 'next'.
485 +
486 +
487 +* sg/ci-libsvn-perl (2019-05-07) 1 commit
488 + - ci: install 'libsvn-perl' instead of 'git-svn'
489 +
490 + To run tests for Git SVN, our scripts for CI used to install the
491 + git-svn package (in the hope that it would bring in the right
492 + dependencies). This has been updated to install the more direct
493 + dependency, namely, libsvn-perl.
494 +
495 + Will merge to 'next'.
496 +
497 +
498 +* tt/no-ipv6-fallback-for-winxp (2019-05-07) 1 commit
499 + - mingw: remove obsolete IPv6-related code
500 +
501 + Code cleanup.
502 +
503 + Will merge to 'next'.
504 +
505 +
506 +* jc/send-email-transferencoding-fix (2019-05-08) 2 commits
507 + - send-email: honor transferencoding config option again
508 + - send-email: update the mechanism to set default configuration values
509 +
510 + Since "git send-email" learned to take 'auto' as the value for the
511 + transfer-encoding, it by mistake stopped honoring the values given
512 + to the configuration variables sendemail.transferencoding and/or
513 + sendemail.<ident>.transferencoding. Attempt to correct this.
514 +
515 + cf. <20190508105607.178244-1-gitster@pobox.com> (v2)
516
517 --------------------------------------------------
518 [Stalled]
519
587 -* nb/branch-show-other-worktrees-head (2019-03-18) 3 commits
588 - - branch: add worktree info on verbose output
589 - - branch: update output to include worktree info
590 - - ref-filter: add worktreepath atom
520 +* jn/unknown-index-extensions (2018-11-21) 2 commits
521 + - index: offer advice for unknown index extensions
522 + - index: do not warn about unrecognized extensions
523
592 - "git branch --list" learned to show branches that are checked out
593 - in other worktrees connected to the same repository prefixed with
594 - '+', similar to the way the currently checked out branch is shown
595 - with '*' in front.
524 + A bit too alarming warning given when unknown index extensions
525 + exist is getting revamped.
526
597 - Getting there...
598 - cf. <20190316013807.38756-1-nbelakovski@gmail.com> (v9)
599 - cf. <20190318121054.GC24175@szeder.dev>
527 + Expecting a reroll.
528 +
529 +
530 +* jc/format-patch-delay-message-id (2019-04-05) 1 commit
531 + - format-patch: move message-id and related headers to the end
532 +
533 + The location "git format-patch --thread" adds the Message-Id:
534 + header in the series of header fields has been moved down, which
535 + may help working around a suspected bug in GMail MSA, reported at
536 + <CAHk-=whP1stFZNAaJiMi5eZ9rj0MRt20Y_yHVczZPH+O01d+sA@mail.gmail.com>
537 +
538 + Waiting for feedback to see if it truly helps.
539 + Needs tests.
540
541
542 * jt/fetch-cdn-offload (2019-03-12) 9 commits
@@ -659,302 +599,185 @@ of the repositories listed at
599 --------------------------------------------------
600 [Cooking]
601
662 -* ds/midx-expire-repack (2019-04-25) 11 commits
663 - - t5319-multi-pack-index.sh: test batch size zero
664 - - midx: add test that 'expire' respects .keep files
665 - - multi-pack-index: test expire while adding packs
666 - - midx: implement midx_repack()
667 - - multi-pack-index: prepare 'repack' subcommand
668 - - multi-pack-index: implement 'expire' subcommand
669 - - midx: refactor permutation logic and pack sorting
670 - - midx: simplify computation of pack name lengths
671 - - multi-pack-index: prepare for 'expire' subcommand
672 - - Docs: rearrange subcommands for multi-pack-index
673 - - repack: refactor pack deletion for future use
674 -
675 - "git multi-pack-index expire/repack" are new subcommands that
676 - consult midx file and are used to drop unused pack files and
677 - coalesce small pack files that are still in use.
678 -
679 - cf. <20190424151428.170316-1-dstolee@microsoft.com> (v5)
680 -
681 -
682 -* es/first-contrib-tutorial (2019-04-25) 1 commit
683 - - documentation: add tutorial for first contribution
684 -
685 - A new tutorial targetting specifically aspiring git-core
686 - developers.
687 -
688 - cf. <20190423193410.101803-1-emilyshaffer@google.com> (v4)
689 -
690 -
691 -* pw/clean-sequencer-state-upon-final-commit (2019-04-17) 2 commits
692 - - fix cherry-pick/revert status after commit
693 - - commit/reset: try to clean up sequencer state
694 -
695 - "git chery-pick" (and "revert" that shares the same runtime engine)
696 - that deals with multiple commits got confused when the final step
697 - gets stopped with a conflict and the user concluded the sequence
698 - with "git commit". Attempt to fix it by cleaning up the state
699 - files used by these commands in such a situation.
700 -
701 - Will merge to 'next'.
702 -
703 -
704 -* pw/sequencer-cleanup-with-signoff-x-fix (2019-04-18) 1 commit
705 - (merged to 'next' on 2019-04-25 at cc587fb2b9)
706 - + sequencer: fix cleanup with --signoff and -x
707 - (this branch is used by dl/merge-cleanup-scissors-fix.)
708 -
709 - "git cherry-pick" run with the "-x" or the "--signoff" option used
710 - to (and more importantly, ought to) clean up the commit log message
711 - with the --cleanup=space option by default, but this has been
712 - broken since late 2017. This has been fixed.
602 +* nb/branch-show-other-worktrees-head (2019-05-07) 3 commits
603 + - branch: add worktree info on verbose output
604 + - branch: update output to include worktree info
605 + - ref-filter: add worktreepath atom
606
714 - Will merge to 'master'.
607 + "git branch --list" learned to show branches that are checked out
608 + in other worktrees connected to the same repository prefixed with
609 + '+', similar to the way the currently checked out branch is shown
610 + with '*' in front.
611
612
717 -* dr/ref-filter-push-track-fix (2019-04-18) 1 commit
718 - (merged to 'next' on 2019-04-25 at 07db067adc)
719 - + ref-filter: use correct branch for %(push:track)
613 +* jc/make-dedup-ls-files-output (2019-04-22) 1 commit
614 + (merged to 'next' on 2019-05-09 at e3d5825003)
615 + + Makefile: dedup list of files obtained from ls-files
616
721 - %(push:track) token used in the --format option to "git
722 - for-each-ref" and friends was not showing the right branch, which
723 - has been fixed.
617 + A "ls-files" that emulates "find" to enumerate files in the working
618 + tree resulted in duplicated Makefile rules that caused the build to
619 + issue an unnecessary warning during a trial build after merge
620 + conflicts are resolved in working tree *.h files but before the
621 + resolved results are added to the index. This has been corrected.
622
623 Will merge to 'master'.
624 + A not-so-low hanging fruit to teach ls-files to dedup either optionally
625 + or always has also been discussed, which probably is a good idea,
626 + to prevent mistakes similar to the bug this topic fixes in the future.
627
628
728 -* cc/aix-has-fileno-as-a-macro (2019-04-25) 1 commit
729 - (merged to 'next' on 2019-04-25 at f1d6464f98)
730 - + Makefile: use fileno macro work around on AIX
731 - (this branch is used by cc/access-on-aix-workaround.)
629 +* jk/ls-files-doc-markup-fix (2019-04-23) 1 commit
630 + (merged to 'next' on 2019-05-09 at a68fe0ae72)
631 + + doc/ls-files: put nested list for "-t" option into block
632
733 - AIX shared the same build issues with other BSDs around fileno(fp),
734 - which has been corrected.
633 + Docfix.
634
635 Will merge to 'master'.
636
637
739 -* jk/prune-optim (2019-04-19) 1 commit
740 - (merged to 'next' on 2019-04-25 at c50353b27f)
741 - + t5304: add a test for pruning with bitmaps
638 +* jk/p5302-avoid-collision-check-cost (2019-04-23) 1 commit
639 + (merged to 'next' on 2019-05-09 at 8dc92cad96)
640 + + p5302: create the repo in each index-pack test
641
743 - A follow-up test for an earlier "git prune" improvements.
642 + Fix index-pack perf test so that the repeated invocations always
643 + run in an empty repository, which emulates the initial clone
644 + situation better.
645
646 Will merge to 'master'.
647
648
748 -* jk/untracked-cache-more-fixes (2019-04-19) 3 commits
749 - (merged to 'next' on 2019-04-25 at a6037ddd54)
750 - + untracked-cache: simplify parsing by dropping "len"
751 - + untracked-cache: simplify parsing by dropping "next"
752 - + untracked-cache: be defensive about missing NULs in index
649 +* dl/rev-tilde-doc-clarify (2019-05-08) 4 commits
650 + (merged to 'next' on 2019-05-09 at 6efd564b11)
651 + + revisions.txt: remove ambibuity between <rev>:<path> and :<path>
652 + + revisions.txt: mention <rev>~ form
653 + + revisions.txt: mark optional rev arguments with []
654 + + revisions.txt: change "rev" to "<rev>"
655
754 - Code clean-up.
656 + Docfix.
657
658 Will merge to 'master'.
659
660
759 -* jt/submodule-repo-is-with-worktree (2019-04-21) 1 commit
760 - (merged to 'next' on 2019-04-25 at da2c6d684d)
761 - + worktree: update is_bare heuristics
661 +* en/unicode-in-refnames (2019-04-26) 1 commit
662 + - Honor core.precomposeUnicode in more places
663
763 - The logic to tell if a Git repository has a working tree protects
764 - "git branch -D" from removing the branch that is currently checked
765 - out by mistake. The implementation of this logic was broken for
766 - repositories with unusual name, which unfortunately is the norm for
767 - submodules these days. This has been fixed.
664 + The names of the refs stored as filesystem entities may become
665 + different from what the end-user expects, just like files in the
666 + working tree gets "renamed", on a filesystem like HFS+. Work it
667 + around by paying attemption to the core.precomposeUnicode
668 + configuration.
669
769 - Will merge to 'master'.
670 + Looked sensible. Ready for next?
671
672
772 -* vk/autoconf-gettext (2019-04-19) 1 commit
773 - (merged to 'next' on 2019-04-25 at 918870cbc2)
774 - + autoconf: #include <libintl.h> when checking for gettext()
673 +* jk/perf-aggregate-wo-libjson (2019-04-24) 1 commit
674 + (merged to 'next' on 2019-05-09 at e697c1993b)
675 + + t/perf: depend on perl JSON only when using --codespeed
676
776 - The autoconf generated configure script failed to use the right
777 - gettext() implementations from -libintl by ignoring useless stub
778 - implementations shipped in some C library, which has been
677 + The script to aggregate perf result unconditionally depended on
678 + libjson-perl even though it did not have to, which has been
679 corrected.
680
681 Will merge to 'master'.
682
683
784 -* dl/no-extern-in-func-decl (2019-04-24) 4 commits
785 - - cocci: prevent extern function declarations
786 - - *.[ch]: manually align parameter lists
787 - - *.[ch]: remove extern from function declarations using sed
788 - - *.[ch]: remove extern from function declarations using spatch
789 -
790 - Mechanically and systematically drop "extern" from function
791 - declarlation.
792 -
793 - Will merge to 'next'.
794 -
795 - This is the kind of code churn patch that causes heavy conflicts
796 - with multiple topics in flight, which causes conflicts in slightly
797 - different shape when it gets merged with them in different order.
798 - I've queued it moderately early in 'pu' for the night, and I am
799 - reasonably sure the merge of the topic itself is OK, but I do not
800 - have much confidence in the resolutions of conflicts with other
801 - topics later merged to 'pu'.
802 -
803 -
804 -* js/partial-clone-connectivity-check (2019-04-21) 1 commit
805 - (merged to 'next' on 2019-04-25 at ebd8b4bffd)
806 - + clone: do faster object check for partial clones
807 -
808 - During an initial "git clone --depth=..." partial clone, it is
809 - pointless to spend cycles for a large portion of the connectivity
810 - check that enumerates and skips promisor objects (which by
811 - definition is all objects fetched from the other side). This has
812 - been optimized out.
813 -
814 - Will merge to 'master'.
815 -
816 -
817 -* hs/send-email-transferencoding-fix (2019-04-10) 1 commit
818 - - send-email: honor transferencoding config option again
819 -
820 - Since "git send-email" learned to take 'auto' as the value for the
821 - transfer-encoding, it by mistake stopped honoring the values given
822 - to the configuration variables sendemail.transferencoding and/or
823 - sendemail.<ident>.transferencoding. Attempt to correct this.
824 -
825 - Not quite.
826 - cf. <xmqq8swi34h5.fsf@gitster-ct.c.googlers.com>
827 -
828 -
829 -* jk/pack-objects-reports-num-objects-to-trace2 (2019-04-12) 1 commit
830 - (merged to 'next' on 2019-04-25 at e79464c054)
831 - + pack-objects: write objects packed to trace2
832 -
833 - The "git pack-objects" command learned to report the number of
834 - objects it packed via the trace2 mechanism.
835 -
836 - Will merge to 'master'.
837 -
838 -
839 -* js/misc-doc-fixes (2019-04-19) 8 commits
840 - (merged to 'next' on 2019-04-25 at 6898f709d0)
841 - + Turn `git serve` into a test helper
842 - + test-tool: handle the `-C <directory>` option just like `git`
843 - + check-docs: do not bother checking for legacy scripts' documentation
844 - + docs: exclude documentation for commands that have been excluded
845 - + check-docs: allow command-list.txt to contain excluded commands
846 - + help -a: do not list commands that are excluded from the build
847 - + Makefile: drop the NO_INSTALL variable
848 - + remote-testgit: move it into the support directory for t5801
849 -
850 - "make check-docs", "git help -a", etc. did not account for cases
851 - where a particular build may deliberately omit some subcommands,
852 - which has been corrected.
853 -
854 - Will merge to 'master'.
855 -
856 -
857 -* dl/warn-tagging-a-tag (2019-04-12) 2 commits
858 - (merged to 'next' on 2019-04-25 at 8b966d7fe8)
859 - + tag: advise on nested tags
860 - + tag: fix formatting
684 +* cc/access-on-aix-workaround (2019-04-25) 1 commit
685 + (merged to 'next' on 2019-05-09 at 79b25b1954)
686 + + git-compat-util: work around for access(X_OK) under root
687
862 - "git tag" learned to give an advice suggesting it might be a
863 - mistake when creating an annotated or signed tag that points at
864 - another tag.
688 + Workaround for standard-compliant but less-than-useful behaviour of
689 + access(2) for the root user.
690
691 Will merge to 'master'.
692
693
869 -* jc/format-patch-delay-message-id (2019-04-05) 1 commit
870 - - format-patch: move message-id and related headers to the end
871 -
872 - The location "git format-patch --thread" adds the Message-Id:
873 - header in the series of header fields has been moved down, which
874 - may help working around a suspected bug in GMail MSA, reported at
875 - <CAHk-=whP1stFZNAaJiMi5eZ9rj0MRt20Y_yHVczZPH+O01d+sA@mail.gmail.com>
876 -
877 - Waiting for feedback to see if it truly helps.
878 - Needs tests.
879 -
880 -
881 -* tb/unexpected (2019-04-10) 7 commits
882 - (merged to 'next' on 2019-04-25 at c49927fca0)
883 - + rev-list: detect broken root trees
884 - + rev-list: let traversal die when --missing is not in use
885 - + get_commit_tree(): return NULL for broken tree
886 - + list-objects.c: handle unexpected non-tree entries
887 - + list-objects.c: handle unexpected non-blob entries
888 - + t: introduce tests for unexpected object types
889 - + t: move 'hex2oct' into test-lib-functions.sh
694 +* dl/difftool-mergetool (2019-04-25) 6 commits
695 + - difftool: fallback on merge.guitool
696 + - difftool: make --gui, --tool and --extcmd mutually exclusive
697 + - mergetool: fallback to tool when guitool unavailable
698 + - mergetool: use get_merge_tool function
699 + - t7610: add mergetool --gui tests
700 + - t7610: unsuppress output
701
891 - Code tightening against a "wrong" object appearing where an object
892 - of a different type is expected, instead of blindly assuming that
893 - the connection between objects are correctly made.
702 + Update "git difftool" and "git mergetool" so that the combinations
703 + of {diff,merge}.{tool,guitool} configuration variables serve as
704 + fallback settings of each other in a sensible order.
705
895 - Will merge to 'master'.
706 + Will merge to 'next'.
707
708
898 -* en/merge-directory-renames (2019-04-08) 15 commits
899 - (merged to 'next' on 2019-04-25 at fd5b4f57b4)
900 - + merge-recursive: switch directory rename detection default
901 - + merge-recursive: give callers of handle_content_merge() access to contents
902 - + merge-recursive: track information associated with directory renames
903 - + t6043: fix copied test description to match its purpose
904 - + merge-recursive: switch from (oid,mode) pairs to a diff_filespec
905 - + merge-recursive: cleanup handle_rename_* function signatures
906 - + merge-recursive: track branch where rename occurred in rename struct
907 - + merge-recursive: remove ren[12]_other fields from rename_conflict_info
908 - + merge-recursive: shrink rename_conflict_info
909 - + merge-recursive: move some struct declarations together
910 - + merge-recursive: use 'ci' for rename_conflict_info variable name
911 - + merge-recursive: rename locals 'o' and 'a' to 'obuf' and 'abuf'
912 - + merge-recursive: rename diff_filespec 'one' to 'o'
913 - + merge-recursive: rename merge_options argument from 'o' to 'opt'
914 - + Use 'unsigned short' for mode, like diff_filespec does
709 +* ds/midx-expire-repack (2019-04-25) 11 commits
710 + - t5319-multi-pack-index.sh: test batch size zero
711 + - midx: add test that 'expire' respects .keep files
712 + - multi-pack-index: test expire while adding packs
713 + - midx: implement midx_repack()
714 + - multi-pack-index: prepare 'repack' subcommand
715 + - multi-pack-index: implement 'expire' subcommand
716 + - midx: refactor permutation logic and pack sorting
717 + - midx: simplify computation of pack name lengths
718 + - multi-pack-index: prepare for 'expire' subcommand
719 + - Docs: rearrange subcommands for multi-pack-index
720 + - repack: refactor pack deletion for future use
721
916 - "git merge-recursive" backend recently learned a new heuristics to
917 - infer file movement based on how other files in the same directory
918 - moved. As this is inherently less robust heuristics than the one
919 - based on the content similarity of the file itself (rather than
920 - based on what its neighbours are doing), it sometimes gives an
921 - outcome unexpected by the end users. This has been toned down to
922 - leave the renamed paths in higher/conflicted stages in the index so
923 - that the user can examine and confirm the result.
722 + "git multi-pack-index expire/repack" are new subcommands that
723 + consult midx file and are used to drop unused pack files and
724 + coalesce small pack files that are still in use.
725
925 - Will merge to 'master'.
726 + Ready for next?
727 + cf. <20190424151428.170316-1-dstolee@microsoft.com> (v5)
728
729
928 -* jt/clone-server-option (2019-04-18) 2 commits
929 - (merged to 'next' on 2019-04-25 at 21f07cc85d)
930 - + clone: send server options when using protocol v2
931 - + transport: die if server options are unsupported
730 +* es/first-contrib-tutorial (2019-05-08) 2 commits
731 + - documentation: add anchors to MyFirstContribution
732 + - documentation: add tutorial for first contribution
733
933 - "git clone" learned a new --server-option option when talking over
934 - the protocol version 2.
734 + A new tutorial targetting specifically aspiring git-core
735 + developers.
736
936 - Will merge to 'master'.
737 + I think we are almost there.
738 + cf. <20190507213040.151799-1-emilyshaffer@google.com> (v5)
739
740
939 -* tz/git-svn-doc-markup-fix (2019-04-10) 1 commit
940 - (merged to 'next' on 2019-04-25 at 3efaa6285c)
941 - + Documentation/git-svn: improve asciidoctor compatibility
741 +* pw/clean-sequencer-state-upon-final-commit (2019-04-17) 2 commits
742 + (merged to 'next' on 2019-05-09 at cf6cce8ca7)
743 + + fix cherry-pick/revert status after commit
744 + + commit/reset: try to clean up sequencer state
745
943 - Doc formatting fix.
746 + "git chery-pick" (and "revert" that shares the same runtime engine)
747 + that deals with multiple commits got confused when the final step
748 + gets stopped with a conflict and the user concluded the sequence
749 + with "git commit". Attempt to fix it by cleaning up the state
750 + files used by these commands in such a situation.
751
752 Will merge to 'master'.
753
754
948 -* ss/msvc-path-utils-fix (2019-04-09) 1 commit
949 - (merged to 'next' on 2019-04-25 at ee2850da18)
950 - + MSVC: include compat/win32/path-utils.h for MSVC, too, for real_path()
755 +* dl/no-extern-in-func-decl (2019-05-05) 3 commits
756 + (merged to 'next' on 2019-05-09 at d165ac4cee)
757 + + *.[ch]: manually align parameter lists
758 + + *.[ch]: remove extern from function declarations using sed
759 + + *.[ch]: remove extern from function declarations using spatch
760
952 - An earlier update for MinGW and Cygwin accidentally broke MSVC build,
953 - which has been fixed.
761 + Mechanically and systematically drop "extern" from function
762 + declarlation.
763
764 Will merge to 'master'.
765
766
767 +* js/partial-clone-connectivity-check (2019-05-05) 2 commits
768 + - t/perf: add perf script for partial clones
769 + (merged to 'next' on 2019-04-25 at ebd8b4bffd)
770 + + clone: do faster object check for partial clones
771 +
772 + During an initial "git clone --depth=..." partial clone, it is
773 + pointless to spend cycles for a large portion of the connectivity
774 + check that enumerates and skips promisor objects (which by
775 + definition is all objects fetched from the other side). This has
776 + been optimized out.
777 +
778 + Will merge to 'next' and then to 'master'.
779 +
780 +
781 * cc/multi-promisor (2019-04-15) 17 commits
782 - Move core_partial_clone_filter_default to promisor-remote.c
783 - Move repository_format_partial_clone to promisor-remote.c
@@ -981,9 +804,9 @@ of the repositories listed at
804 Needs review.
805
806
984 -* nd/switch-and-restore (2019-04-12) 43 commits
807 +* nd/switch-and-restore (2019-05-07) 43 commits
808 + - Declare both git-switch and git-restore experimental
809 - help: move git-diff and git-reset to different groups
986 - - rm: add --staged as alias for --cached
810 - doc: promote "git restore"
811 - user-manual.txt: prefer 'merge --abort' over 'reset --hard'
812 - completion: support restore
@@ -1035,19 +858,21 @@ of the repositories listed at
858 The "switch" part seems more or less ready for testing. Perhaps
859 we should split this back into two topics and merge it to 'next'.
860 cf. <20190329103919.15642-1-pclouds@gmail.com> (switch v6)
1038 - cf. <20190411131218.19195-1-pclouds@gmail.com> (restore v2)
861 + cf. <20190425094600.15673-1-pclouds@gmail.com> (restore v3)
862
863
864 * ew/repack-with-bitmaps-by-default (2019-03-18) 3 commits
1042 - - pack-objects: default to writing bitmap hash-cache
1043 - - t5310: correctly remove bitmaps for jgit test
1044 - - repack: enable bitmaps by default on bare repos
865 + (merged to 'next' on 2019-05-09 at 4f8e8b01c8)
866 + + pack-objects: default to writing bitmap hash-cache
867 + + t5310: correctly remove bitmaps for jgit test
868 + + repack: enable bitmaps by default on bare repos
869
870 The connectivity bitmaps are created by default in bare
871 repositories now; also the pathname hash-cache is created by
872 default to avoid making crappy deltas when repacking.
873
1050 - Will merge to 'next'.
874 + Will merge to 'master'.
875 + cf. <87a7g2iuem.fsf@evledraar.gmail.com>
876
877
878 * jc/format-patch-noclobber (2019-02-22) 1 commit
@@ -1074,22 +899,6 @@ of the repositories listed at
899 Is this ready for 'next'?
900
901
1077 -* cc/replace-graft-peel-tags (2019-04-15) 4 commits
1078 - (merged to 'next' on 2019-04-25 at f8d0db27ba)
1079 - + replace: peel tag when passing a tag first to --graft
1080 - + replace: peel tag when passing a tag as parent to --graft
1081 - + t6050: redirect expected error output to a file
1082 - + t6050: use test_line_count instead of wc -l
1083 -
1084 - When given a tag that points at a commit-ish, "git replace --graft"
1085 - failed to peel the tag before writing a replace ref, which did not
1086 - make sense because the old graft mechanism the feature wants to
1087 - mimick only allowed to replace one commit object with another.
1088 - This has been fixed.
1089 -
1090 - Will merge to 'master'.
1091 -
1092 -
902 * dl/rebase-i-keep-base (2019-04-25) 6 commits
903 - rebase: teach rebase --keep-base
904 - rebase: fast-forward --fork-point in more cases
@@ -1106,10 +915,13 @@ of the repositories listed at
915 The command also has learned to fast-forward in more cases where it
916 can instead of replaying to recreate identical commits.
917
1109 - Will merge to 'next'.
918 + On hold.
919 + cf. <20190508001252.15752-1-avarab@gmail.com>
920 + cf. <xmqqa7fxionx.fsf@gitster-ct.c.googlers.com>
921
922
1112 -* jh/trace2-sid-fix (2019-04-16) 10 commits
923 +* jh/trace2-sid-fix (2019-05-07) 11 commits
924 + - trace2: fixup access problem on /etc/gitconfig in read_very_early_config
925 (merged to 'next' on 2019-04-25 at a5c08f1226)
926 + trace2: update docs to describe system/global config settings
927 + trace2: make SIDs more unique
@@ -1126,116 +938,31 @@ of the repositories listed at
938 configuration can specify site-wide trace2 settings, which can be
939 overridden with per-user configuration and environment variables.
940
1129 - Will merge to 'master'.
941 + Will merge to 'next' and then to 'master'.
942 cf. <pull.169.v4.git.gitgitgadget@gmail.com> (v4)
943
944
1133 -* js/trace2-to-directory (2019-03-22) 1 commit
1134 - (merged to 'next' on 2019-04-25 at 53adf71c41)
1135 - + trace2: write to directory targets
1136 -
1137 - The trace2 tracing facility learned to auto-generate a filename
1138 - when told to log to a directory.
1139 -
1140 - Will merge to 'master'.
1141 -
1142 -
1143 -* km/empty-repo-is-still-a-repo (2019-04-10) 3 commits
1144 - (merged to 'next' on 2019-04-25 at bb3d4406a5)
1145 - + add: error appropriately on repository with no commits
1146 - + dir: do not traverse repositories with no commits
1147 - + submodule: refuse to add repository with no commits
1148 -
1149 - Running "git add" on a repository created inside the current
1150 - repository is an explicit indication that the user wants to add it
1151 - as a submodule, but when the HEAD of the inner repository is on an
1152 - unborn branch, it cannot be added as a submodule. Worse, the files
1153 - in its working tree can be added as if they are a part of the outer
1154 - repository, which is not what the user wants. These problems are
1155 - being addressed.
1156 -
1157 - Will merge to 'master'.
1158 -
1159 -
1160 -* nd/precious (2019-04-09) 1 commit
1161 - - Introduce "precious" file concept
1162 -
1163 - "git clean" learned to pay attention to the 'precious' attributes
1164 - and keep untracked paths with the attribute instead of removing
1165 - when the "--keep-precious" is given.
1166 -
1167 - Retracted.
1168 - cf. <CACsJy8AEZ-Lz6zgEsuNukvphB9TTa9FAC1gK05fhnie2xtfc9w@mail.gmail.com>
1169 -
1170 - I am not sure what aspect of this longer-term "precious" vision,
1171 - which gets taught to various commands and use cases individually
1172 - and incrementally, Ævar finds problematic, which I understand is
1173 - the reason of redtraction.
1174 -
1175 -
1176 -* nd/sha1-name-c-wo-the-repository (2019-04-16) 34 commits
1177 - (merged to 'next' on 2019-04-25 at d826918329)
1178 - + sha1-name.c: remove the_repo from get_oid_mb()
1179 - + sha1-name.c: remove the_repo from other get_oid_*
1180 - + sha1-name.c: remove the_repo from maybe_die_on_misspelt_object_name
1181 - + submodule-config.c: use repo_get_oid for reading .gitmodules
1182 - + sha1-name.c: add repo_get_oid()
1183 - + sha1-name.c: remove the_repo from get_oid_with_context_1()
1184 - + sha1-name.c: remove the_repo from resolve_relative_path()
1185 - + sha1-name.c: remove the_repo from diagnose_invalid_index_path()
1186 - + sha1-name.c: remove the_repo from handle_one_ref()
1187 - + sha1-name.c: remove the_repo from get_oid_1()
1188 - + sha1-name.c: remove the_repo from get_oid_basic()
1189 - + sha1-name.c: remove the_repo from get_describe_name()
1190 - + sha1-name.c: remove the_repo from get_oid_oneline()
1191 - + sha1-name.c: add repo_interpret_branch_name()
1192 - + sha1-name.c: remove the_repo from interpret_branch_mark()
1193 - + sha1-name.c: remove the_repo from interpret_nth_prior_checkout()
1194 - + sha1-name.c: remove the_repo from get_short_oid()
1195 - + sha1-name.c: add repo_for_each_abbrev()
1196 - + sha1-name.c: store and use repo in struct disambiguate_state
1197 - + sha1-name.c: add repo_find_unique_abbrev_r()
1198 - + sha1-name.c: remove the_repo from find_abbrev_len_packed()
1199 - + sha1-name.c: remove the_repo from sort_ambiguous()
1200 - + commit.c: add repo_get_commit_tree()
1201 - + commit.cocci: refactor code, avoid double rewrite
1202 - + refs.c: remove the_repo from read_ref_at()
1203 - + refs.c: add repo_dwim_log()
1204 - + refs.c: add repo_dwim_ref()
1205 - + refs.c: remove the_repo from expand_ref()
1206 - + refs.c: remove the_repo from substitute_branch_name()
1207 - + refs.c: add refs_shorten_unambiguous_ref()
1208 - + refs.c: add refs_ref_exists()
1209 - + packfile.c: add repo_approximate_object_count()
1210 - + builtin rebase: use oideq()
1211 - + builtin rebase: use FREE_AND_NULL
1212 -
1213 - Further code clean-up to allow the lowest level of name-to-object
1214 - mapping layer to work with a passed-in repository other than the
1215 - default one.
1216 -
1217 - Will merge to 'master'.
1218 -
1219 -
945 * pw/rebase-i-internal (2019-04-19) 13 commits
1221 - - rebase -i: run without forking rebase--interactive
1222 - - rebase: use a common action enum
1223 - - rebase -i: use struct rebase_options in do_interactive_rebase()
1224 - - rebase -i: use struct rebase_options to parse args
1225 - - rebase -i: use struct object_id for squash_onto
1226 - - rebase -i: use struct commit when parsing options
1227 - - rebase -i: remove duplication
1228 - - rebase -i: combine rebase--interactive.c with rebase.c
1229 - - rebase: use OPT_RERERE_AUTOUPDATE()
1230 - - rebase: rename write_basic_state()
1231 - - rebase: don't translate trace strings
1232 - - sequencer: always discard index after checkout
1233 - - Merge branch 'ag/sequencer-reduce-rewriting-todo' into pw/rebase-i-internal
946 + (merged to 'next' on 2019-05-09 at 1206aa6865)
947 + + rebase -i: run without forking rebase--interactive
948 + + rebase: use a common action enum
949 + + rebase -i: use struct rebase_options in do_interactive_rebase()
950 + + rebase -i: use struct rebase_options to parse args
951 + + rebase -i: use struct object_id for squash_onto
952 + + rebase -i: use struct commit when parsing options
953 + + rebase -i: remove duplication
954 + + rebase -i: combine rebase--interactive.c with rebase.c
955 + + rebase: use OPT_RERERE_AUTOUPDATE()
956 + + rebase: rename write_basic_state()
957 + + rebase: don't translate trace strings
958 + + sequencer: always discard index after checkout
959 + + Merge branch 'ag/sequencer-reduce-rewriting-todo' into pw/rebase-i-internal
960 + (this branch is used by pw/rebase-abort-clean-rewritten.)
961
962 The internal implementation of "git rebase -i" has been updated to
963 avoid forking a separate "rebase--interactive" process.
964
1238 - Will merge to 'next'.
965 + Will merge to 'master'.
966
967
968 * nd/worktree-name-sanitization (2019-03-20) 2 commits
@@ -1251,27 +978,19 @@ of the repositories listed at
978 to 'next'. Opinions?
979
980
1254 -* dm/some-stdio-functions-are-macro-on-freebsd (2019-02-01) 1 commit
1255 - - http: cast result to FILE *
1256 -
1257 - Variants of BSD define fileno(fh) as a macro, breaking a program
1258 - that passes a "void *" to it.
1259 -
1260 - Expecting a reroll.
1261 - cf. <49B9198C-53E5-42BD-8834-B1EDEB3332CB@usask.ca>
1262 -
1263 -
1264 -* ds/commit-graph-format-v2 (2019-04-25) 5 commits
981 +* ds/commit-graph-format-v2 (2019-05-08) 6 commits
982 + - commit-graph: remove Future Work section
983 - commit-graph: implement file format version 2
984 - commit-graph: add --version=<n> option
1267 - - commit-graph: create new version flags
985 + - commit-graph: create new version parameter
986 - commit-graph: collapse parameters into flags
987 - commit-graph: return with errors during write
988
989 Introduce version 2 of the commit-graph format to correct
990 deficiency in the initial version.
991
1274 - cf. <pull.112.v2.git.gitgitgadget@gmail.com> (v2)
992 + Still actively discussed.
993 + cf. <pull.112.v3.git.gitgitgadget@gmail.com> (v3)
994
995
996 * br/blame-ignore (2019-04-14) 6 commits
@@ -1290,47 +1009,56 @@ of the repositories listed at
1009 cf. <a742dd62-c84e-1f85-0663-4a3aa4d14989@google.com>
1010 cf. <3db6bad3-e7a5-af1d-3fe2-321bd17db2c6@google.com>
1011
1012 +--------------------------------------------------
1013 +[Discarded]
1014 +
1015 +* nd/precious (2019-04-09) 1 commit
1016 + - Introduce "precious" file concept
1017 +
1018 + "git clean" learned to pay attention to the 'precious' attributes
1019 + and keep untracked paths with the attribute instead of removing
1020 + when the "--keep-precious" is given.
1021 +
1022 + Retracted.
1023 + cf. <CACsJy8AEZ-Lz6zgEsuNukvphB9TTa9FAC1gK05fhnie2xtfc9w@mail.gmail.com>
1024 +
1025 + I am not sure what aspect of this longer-term "precious" vision,
1026 + which gets taught to various commands and use cases individually
1027 + and incrementally, Ævar finds problematic, which I understand is
1028 + the reason of redtraction.
1029 +
1030
1031 * nd/config-move-to (2019-01-14) 7 commits
1295 - - config.h: fix hdr-check warnings
1296 - - config: add --move-to
1297 - - config: factor out set_config_source_file()
1298 - - config: use OPT_FILENAME()
1299 - - config.c: add repo_config_set_worktree_gently()
1300 - - worktree.c: add get_worktree_config()
1301 - - config.c: avoid git_path() in do_git_config_sequence()
1032 + . config.h: fix hdr-check warnings
1033 + . config: add --move-to
1034 + . config: factor out set_config_source_file()
1035 + . config: use OPT_FILENAME()
1036 + . config.c: add repo_config_set_worktree_gently()
1037 + . worktree.c: add get_worktree_config()
1038 + . config.c: avoid git_path() in do_git_config_sequence()
1039
1303 - Needs review.
1040 + Dropped.
1041 + cf. <CACsJy8DcaxBLCa2vK=MfoxkaHS0gDmdUsmamyqE2yOaoG_Esog@mail.gmail.com>
1042
1043
1306 -* dl/merge-cleanup-scissors-fix (2019-04-19) 10 commits
1307 - (merged to 'next' on 2019-04-25 at 2014eef6b1)
1308 - + cherry-pick/revert: add scissors line on merge conflict
1309 - + sequencer.c: save and restore cleanup mode
1310 - + merge: add scissors line on merge conflict
1311 - + merge: cleanup messages like commit
1312 - + parse-options.h: extract common --cleanup option
1313 - + commit: extract cleanup_mode functions to sequencer
1314 - + t7502: clean up style
1315 - + t7604: clean up style
1316 - + t3507: clean up style
1317 - + t7600: clean up style
1318 - (this branch uses pw/sequencer-cleanup-with-signoff-x-fix.)
1044 +* dm/some-stdio-functions-are-macro-on-freebsd (2019-02-01) 1 commit
1045 + . http: cast result to FILE *
1046
1320 - The list of conflicted paths shown in the editor while concluding a
1321 - conflicted merge was shown above the scissors line when the
1322 - clean-up mode is set to "scissors", even though it was commented
1323 - out just like the list of updated paths and other information to
1324 - help the user explain the merge better.
1047 + Variants of BSD define fileno(fh) as a macro, breaking a program
1048 + that passes a "void *" to it.
1049
1326 - Will merge to 'master'.
1050 + Can be safely discarded.
1051 + cf. <CACsJy8BcyD199L4qGv6-TP-8HD+GS+ZDNN5jspkh5uVaWekkoQ@mail.gmail.com>
1052
1053
1329 -* jn/unknown-index-extensions (2018-11-21) 2 commits
1330 - - index: offer advice for unknown index extensions
1331 - - index: do not warn about unrecognized extensions
1054 +* hs/send-email-transferencoding-fix (2019-04-10) 1 commit
1055 + . send-email: honor transferencoding config option again
1056
1333 - A bit too alarming warning given when unknown index extensions
1334 - exist is getting revamped.
1057 + Since "git send-email" learned to take 'auto' as the value for the
1058 + transfer-encoding, it by mistake stopped honoring the values given
1059 + to the configuration variables sendemail.transferencoding and/or
1060 + sendemail.<ident>.transferencoding. Attempt to correct this.
1061
1336 - Expecting a reroll.
1062 + Not quite.
1063 + cf. <xmqq8swi34h5.fsf@gitster-ct.c.googlers.com>
1064 + Replaced by jc/send-email-transferencoding-fix