What's cooking (2017/03 #08)

Junio C Hamano committed Mar 20, 2017 at 14:23 UTC 5e6efcad551b46bb5ae79f481588be34fa056b47
1 file changed +315 -363
whats-cooking.txt
+315 -363
@@ -1,10 +1,10 @@
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 -Subject: What's cooking in git.git (Mar 2017, #07; Fri, 17)
4 -X-master-at: 9d77b0405ce6b471cb5ce3a904368fc25e55643d
5 -X-next-at: ad415229794d1880faab8b9fdd535ab7cc736444
3 +Subject: What's cooking in git.git (Mar 2017, #08; Mon, 20)
4 +X-master-at: c0f9c705890ac30871c70219c4b08d740fb40e2e
5 +X-next-at: ab5fba24ee0096b15bf4e814f5ebf1f0cc20c7a5
6
7 -What's cooking in git.git (Mar 2017, #07; Fri, 17)
7 +What's cooking in git.git (Mar 2017, #08; Mon, 20)
8 --------------------------------------------------
9
10 Here are the topics that have been cooking. Commits prefixed with
@@ -20,292 +20,151 @@ of the repositories listed at
20 --------------------------------------------------
21 [Graduated to "master"]
22
23 -* bc/object-id (2017-02-22) 19 commits
24 - (merged to 'next' on 2017-03-14 at 0b3ec5a05e)
25 - + wt-status: convert to struct object_id
26 - + builtin/merge-base: convert to struct object_id
27 - + Convert object iteration callbacks to struct object_id
28 - + sha1_file: introduce an nth_packed_object_oid function
29 - + refs: simplify parsing of reflog entries
30 - + refs: convert each_reflog_ent_fn to struct object_id
31 - + reflog-walk: convert struct reflog_info to struct object_id
32 - + builtin/replace: convert to struct object_id
33 - + Convert remaining callers of resolve_refdup to object_id
34 - + builtin/merge: convert to struct object_id
35 - + builtin/clone: convert to struct object_id
36 - + builtin/branch: convert to struct object_id
37 - + builtin/grep: convert to struct object_id
38 - + builtin/fmt-merge-message: convert to struct object_id
39 - + builtin/fast-export: convert to struct object_id
40 - + builtin/describe: convert to struct object_id
41 - + builtin/diff-tree: convert to struct object_id
42 - + builtin/commit: convert to struct object_id
43 - + hex: introduce parse_oid_hex
44 -
45 - "uchar [40]" to "struct object_id" conversion continues.
46 -
47 -
48 -* bc/sha1-header-selection-with-cpp-macros (2017-03-15) 1 commit
49 - (merged to 'next' on 2017-03-15 at 71c3a4f4ba)
50 - + hash.h: move SHA-1 implementation selection into a header file
51 - (this branch is used by jk/sha1dc.)
52 -
53 - Our source code has used the SHA1_HEADER cpp macro after "#include"
54 - in the C code to switch among the SHA-1 implementations. Instead,
55 - list the exact header file names and switch among implementations
56 - using "#ifdef BLK_SHA1/#include "block-sha1/sha1.h"/.../#endif";
57 - this helps some IDE tools.
58 -
59 -
60 -* bw/attr-pathspec (2017-03-13) 2 commits
61 - (merged to 'next' on 2017-03-14 at 3af5d6c1fc)
62 - + pathspec: allow escaped query values
63 - + pathspec: allow querying for attributes
64 -
65 - The pathspec mechanism learned to further limit the paths that
66 - match the pattern to those that have specified attributes attached
67 - via the gitattributes mechanism.
68 -
69 -
70 -* cc/split-index-config (2017-03-06) 22 commits
71 - (merged to 'next' on 2017-03-12 at 53cdc2016d)
72 - + Documentation/git-update-index: explain splitIndex.*
73 - + Documentation/config: add splitIndex.sharedIndexExpire
74 - + read-cache: use freshen_shared_index() in read_index_from()
75 - + read-cache: refactor read_index_from()
76 - + t1700: test shared index file expiration
77 - + read-cache: unlink old sharedindex files
78 - + config: add git_config_get_expiry() from gc.c
79 - + read-cache: touch shared index files when used
80 - + sha1_file: make check_and_freshen_file() non static
81 - + Documentation/config: add splitIndex.maxPercentChange
82 - + t1700: add tests for splitIndex.maxPercentChange
83 - + read-cache: regenerate shared index if necessary
84 - + config: add git_config_get_max_percent_split_change()
85 - + Documentation/git-update-index: talk about core.splitIndex config var
86 - + Documentation/config: add information for core.splitIndex
87 - + t1700: add tests for core.splitIndex
88 - + update-index: warn in case of split-index incoherency
89 - + read-cache: add and then use tweak_split_index()
90 - + split-index: add {add,remove}_split_index() functions
91 - + config: add git_config_get_split_index()
92 - + t1700: change here document style
93 - + config: mark an error message up for translation
94 -
95 - The experimental "split index" feature has gained a few
96 - configuration variables to make it easier to use.
97 -
98 -
99 -* jk/add-i-use-pathspecs (2017-03-14) 1 commit
100 - (merged to 'next' on 2017-03-14 at 13ce4d91e1)
101 - + add--interactive: do not expand pathspecs with ls-files
102 -
103 - "git add -p <pathspec>" unnecessarily expanded the pathspec to a
104 - list of individual files that matches the pathspec by running "git
105 - ls-files <pathspec>", before feeding it to "git diff-index" to see
106 - which paths have changes, because historically the pathspec
107 - language supported by "diff-index" was weaker. These days they are
108 - equivalent and there is no reason to internally expand it. This
109 - helps both performance and avoids command line argument limit on
110 - some platforms.
111 -
112 -
113 -* jk/cherry-pick-0-mainline (2017-03-15) 1 commit
114 - (merged to 'next' on 2017-03-16 at e9a888e5c4)
115 - + cherry-pick: detect bogus arguments to --mainline
116 -
117 - "git revert -m 0 $merge_commit" complained that reverting a merge
118 - needs to say relative to which parent the reversion needs to
119 - happen, as if "-m 0" weren't given. The correct diagnosis is that
120 - "-m 0" does not refer to the first parent ("-m 1" does). This has
121 - been fixed.
122 -
123 -
124 -* jk/http-walker-buffer-underflow-fix (2017-03-13) 1 commit
125 - (merged to 'next' on 2017-03-14 at 02020b475d)
126 - + http-walker: fix buffer underflow processing remote alternates
127 -
128 - "Dumb http" transport used to misparse a nonsense http-alternates
129 - response, which has been fixed.
130 -
131 -
132 -* jk/interop-test (2017-03-10) 2 commits
133 - (merged to 'next' on 2017-03-12 at 704b328022)
134 - + t/interop: add test of old clients against modern git-daemon
135 - + t: add an interoperability test harness
136 -
137 - Picking two versions of Git and running tests to make sure the
138 - older one and the newer one interoperate happily has now become
139 - possible.
140 -
141 -
142 -* jk/ref-filter-flags-cleanup (2017-03-10) 4 commits
143 - (merged to 'next' on 2017-03-14 at c335c9cf6e)
144 - + ref-filter: use separate cache for contains_tag_algo
145 - + ref-filter: die on parse_commit errors
146 - + ref-filter: use contains_result enum consistently
147 - + ref-filter: move ref_cbdata definition into ref-filter.c
148 - (this branch is used by ab/ref-filter-no-contains.)
149 -
150 - "git tag --contains" used to (ab)use the object bits to keep track
151 - of the state of object reachability without clearing them after
152 - use; this has been cleaned up and made to use the newer commit-slab
153 - facility.
154 -
155 -
156 -* js/early-config (2017-03-14) 12 commits
157 - (merged to 'next' on 2017-03-14 at ce43b4a309)
158 - + setup.c: mention unresolved problems
159 - + t1309: document cases where we would want early config not to die()
160 - + setup_git_directory_gently_1(): avoid die()ing
161 - + t1309: test read_early_config()
162 - + read_early_config(): really discover .git/
163 - + read_early_config(): avoid .git/config hack when unneeded
164 - + setup: make read_early_config() reusable
165 - + setup: introduce the discover_git_directory() function
166 - + setup_git_directory_1(): avoid changing global state
167 - + setup: prepare setup_discovered_git_dir() for the root directory
168 - + setup_git_directory(): use is_dir_sep() helper
169 - + t7006: replace dubious test
170 -
171 - The start-up sequence of "git" needs to figure out some configured
172 - settings before it finds and set itself up in the location of the
173 - repository and was quite messy due to its "chicken-and-egg" nature.
174 - The code has been restructured.
175 -
176 -
177 -* mg/status-porcelain-no-i18n (2017-03-14) 1 commit
178 - (merged to 'next' on 2017-03-14 at 0955895825)
179 - + git-status: make porcelain more robust
180 -
181 - "git status --porcelain" is supposed to give a stable output, but a
182 - few strings were left as translatable by mistake.
183 -
184 -
185 -* rs/blame-code-cleanup (2017-03-11) 1 commit
186 - (merged to 'next' on 2017-03-12 at 8fd4bf325a)
187 - + blame: move blame_entry duplication to add_blame_entry()
23 +* js/difftool-builtin (2017-03-15) 3 commits
24 + (merged to 'next' on 2017-03-16 at 3fccb60a07)
25 + + difftool: handle modified symlinks in dir-diff mode
26 + + t7800: cleanup cruft left behind by tests
27 + + t7800: remove whitespace before redirect
28
189 - Code clean-up.
29 + "git difftool --dir-diff" used to die a controlled death giving a
30 + "fatal" message when encountering a locally modified symbolic link,
31 + but it started segfaulting since v2.12. This has been fixed.
32
33 +--------------------------------------------------
34 +[New Topics]
35
192 -* sb/rev-parse-show-superproject-root (2017-03-08) 1 commit
193 - (merged to 'next' on 2017-03-14 at 537c299db6)
194 - + rev-parse: add --show-superproject-working-tree
36 +* ab/doc-submitting (2017-03-18) 2 commits
37 + - doc/SubmittingPatches: show how to get a CLI commit summary
38 + - doc/SubmittingPatches: clarify the casing convention for "area: change..."
39
196 - From a working tree of a repository, a new option of "rev-parse"
197 - lets you ask if the repository is used as a submodule of another
198 - project, and where the root level of the working tree of that
199 - project (i.e. your superproject) is.
40 + Doc update.
41
201 ---------------------------------------------------
202 -[New Topics]
42 + The example added by the second one may want to be shortened.
43
204 -* jc/name-rev (2017-03-16) 2 commits
205 - - name-rev: favor describing with tags and use committer date to tiebreak
206 - - name-rev: refactor logic to see if a new candidate is a better name
44
208 - "git name-rev" penalized lightweight tags too much, making them
209 - almost useless especially when the command is run with "--tags".
210 - Give the same precedence to lightweight tags as annotated tags as
211 - the base for naming a commit.
45 +* bw/grep-recurse-submodules (2017-03-18) 2 commits
46 + - grep: fix builds with with no thread support
47 + - grep: set default output method
48
49 + Build fix for NO_PTHREADS build.
50
214 -* jk/pack-name-cleanups (2017-03-16) 5 commits
215 - (merged to 'next' on 2017-03-16 at 6aa72195f5)
216 - + index-pack: make pointer-alias fallbacks safer
217 - + replace snprintf with odb_pack_name()
218 - + odb_pack_keep(): stop generating keepfile name
219 - + sha1_file.c: make pack-name helper globally accessible
220 - + move odb_* declarations out of git-compat-util.h
51 + Will merge to 'next'.
52 +
53 +
54 +* ja/doc-l10n (2017-03-18) 2 commits
55 + . l10n: Add git-add.txt to localized man pages
56 + . l10n: Introduce framework for localizing man pages
57 +
58 + A proposal to use po4a to localize our manual pages.
59 +
60 +
61 +* jk/execv-dashed-external (2017-03-18) 1 commit
62 + (merged to 'next' on 2017-03-20 at 62119fa314)
63 + + run-command: fix segfault when cleaning forked async process
64 +
65 + Fix for NO_PTHREADS build.
66 +
67 + Will merge to 'master'.
68 +
69 +
70 +* js/regexec-buf (2017-03-18) 1 commit
71 + (merged to 'next' on 2017-03-20 at 7381595eb7)
72 + + pickaxe: fix segfault with '-S<...> --pickaxe-regex'
73 +
74 + Fix for potential segv introduced in v2.11.0 and later (also
75 + v2.10.2).
76 +
77 + Will merge to 'master'.
78 +
79 +
80 +* rs/http-push-cleanup (2017-03-18) 1 commit
81 + (merged to 'next' on 2017-03-20 at fcf8d30bc0)
82 + + http-push: don't check return value of lookup_unknown_object()
83
84 Code clean-up.
85
86 Will merge to 'master'.
87
88
227 -* jk/rev-parse-cleanup (2017-03-15) 3 commits
228 - (merged to 'next' on 2017-03-16 at 2799b37404)
229 - + rev-parse: simplify parsing of ref options
230 - + rev-parse: add helper for parsing "--foo/--foo="
231 - + rev-parse: use skip_prefix when parsing options
89 +* rs/path-name-safety-cleanup (2017-03-18) 1 commit
90 + (merged to 'next' on 2017-03-20 at 78ea574469)
91 + + revision: remove declaration of path_name()
92
93 Code clean-up.
94
95 Will merge to 'master'.
96
97
238 -* js/difftool-builtin (2017-03-15) 3 commits
239 - (merged to 'next' on 2017-03-16 at 3fccb60a07)
240 - + difftool: handle modified symlinks in dir-diff mode
241 - + t7800: cleanup cruft left behind by tests
242 - + t7800: remove whitespace before redirect
98 +* rs/shortlog-cleanup (2017-03-18) 1 commit
99 + (merged to 'next' on 2017-03-20 at a826dff5cf)
100 + + shortlog: don't set after_subject to an empty string
101
244 - "git difftool --dir-diff" used to die a controlled death giving a
245 - "fatal" message when encountering a locally modified symbolic link,
246 - but it started segfaulting since v2.12. This has been fixed.
102 + Code clean-up.
103
104 Will merge to 'master'.
105
106
251 -* mg/prompt-describe-tags (2017-03-15) 1 commit
252 - (merged to 'next' on 2017-03-16 at 4de192caf4)
253 - + git-prompt: add a describe style for any tags
107 +* rs/update-hook-optim (2017-03-18) 1 commit
108 + (merged to 'next' on 2017-03-20 at f36ede55be)
109 + + receive-pack: simplify run_update_post_hook()
110
255 - The command line prompt (in contrib/) learned a new 'tag' style
256 - that can be specified with GIT_PS1_DESCRIBE_STYLE, to describe a
257 - detached HEAD with "git describe --tags".
111 + Code clean-up.
112
113 Will merge to 'master'.
114
115
262 -* sb/submodule-config-parse-ignore-fix (2017-03-15) 1 commit
263 - (merged to 'next' on 2017-03-16 at 99d2524abd)
264 - + submodule-config: correct error reporting for invalid ignore value
116 +* sg/test-with-stdin (2017-03-18) 2 commits
117 + (merged to 'next' on 2017-03-20 at a66fec5692)
118 + + tests: make the 'test_pause' helper work in non-verbose mode
119 + + tests: create an interactive gdb session with the 'debug' helper
120
266 - Code to read submodule.<name>.ignore config did not state the
267 - variable name correctly when giving an error message diagnosing
268 - misconfiguration.
121 + Teach the "debug" helper used in the test framework that allows a
122 + command to run under "gdb" to make the session interactive.
123
124 Will merge to 'master'.
125
126
273 -* bw/recurse-submodules-relative-fix (2017-03-17) 5 commits
274 - - ls-files: fix bug when recursing with relative pathspec
275 - - ls-files: fix typo in variable name
276 - - grep: fix bug when recursing with relative pathspec
277 - - setup: allow for prefix to be passed to git commands
278 - - grep: fix help text typo
127 +* ab/doc-no-option-notation-fix (2017-03-20) 1 commit
128 + (merged to 'next' on 2017-03-20 at a6afe78ab4)
129 + + doc: change erroneous --[no]-whatever into --[no-]whatever
130
280 - A few commands that recently learned the "--recurse-submodule"
281 - option misbehaved when started from a subdirectory of the
282 - superproject.
131 + Doc fix.
132
133 + Will merge to 'master'.
134
285 -* jc/p4-current-branch-fix (2017-03-17) 1 commit
286 - - DONTMERGE git-p4: "name-rev HEAD" is not a way to find the current branch
135
288 - "git p4" used "name-rev HEAD" when it wants to learn what branch is
289 - checked out; it should use "symbolic-ref HEAD".
136 +* ab/push-default-doc-fix (2017-03-20) 1 commit
137 + (merged to 'next' on 2017-03-20 at 0f4d4470de)
138 + + push: mention "push.default=tracking" in the documentation
139
291 - Waiting for git-p4 folks to send a finished patch.
140 + Doc fix.
141
142 + Will merge to 'master'.
143
294 -* js/rebase-helper (2017-03-17) 1 commit
295 - - sequencer: drop "warning:" when stopping for edit
144
297 - Recent update to "rebase -i" started showing a message that is not
298 - a warning with "warning:" prefix by mistake. This has been fixed.
145 +* nd/commit-hook-doc-fix (2017-03-20) 1 commit
146 + (merged to 'next' on 2017-03-20 at 7ab46d99f4)
147 + + git-commit.txt: list post-rewrite in HOOKS section
148
300 - Will merge to 'next'.
149 + Doc fix.
150
151 + Will merge to 'master'.
152
303 -* sb/wt-status-cleanup (2017-03-17) 1 commit
304 - - wt-status: simplify by using for_each_string_list_item
153
306 - Code clean-up.
154 +* tg/stash-push-fixup (2017-03-20) 3 commits
155 + - stash: pass the pathspec argument to git reset
156 + - stash: make push -p -q --no-keep-index quiet
157 + - stash: show less information for stash push -- <pathspec>
158
308 - Will merge to 'next'.
159 + Recent enhancement to "git stash push" command to support pathspec
160 + to allow only a subset of working tree changes to be stashed away
161 + was found to be too chatty and exposed the internal implementation
162 + detail (e.g. when it uses reset to match the index to HEAD before
163 + doing other things, output from reset seeped out). These, and
164 + other chattyness has been fixed.
165 +
166 + Looked alright.
167 + cf. <20170317145039.dmcb3qyqbzfvtmgz@sigill.intra.peff.net>
168
169 --------------------------------------------------
170 [Stalled]
@@ -350,22 +209,6 @@ of the repositories listed at
209 cf. <xmqq60jmnmef.fsf@junio-linux.mtv.corp.google.com>
210
211
353 -* ab/ref-filter-no-contains (2017-03-11) 1 commit
354 - - ref-filter: add --no-contains option to tag/branch/for-each-ref
355 -
356 - "git tag/branch/for-each-ref" family of commands long allowed to
357 - filter the refs by "--contains X" (show only the refs that are
358 - descendants of X), "--merged X" (show only the refs that are
359 - ancestors of X), "--no-merged X" (show only the refs that are not
360 - ancestors of X). One curious omission, "--no-contains X" (show
361 - only the refs that are not descendants of X) has been added to
362 - them.
363 -
364 - Expecting a reroll.
365 - cf. <CACBZZX4v49zfyGVpcxGSKsxbMfVaUcGHtitpfaZMUtG82YzW-g@mail.gmail.com>
366 - The topic is almost there.
367 -
368 -
212 * sg/completion-refs-speedup (2017-02-13) 13 commits
213 - squash! completion: fill COMPREPLY directly when completing refs
214 - completion: fill COMPREPLY directly when completing refs
@@ -389,97 +232,6 @@ of the repositories listed at
232 What's the donness of this topic?
233
234
392 -* nd/prune-in-worktree (2017-02-19) 15 commits
393 - . rev-list: expose and document --single-worktree
394 - . revision.c: --reflog add HEAD reflog from all worktrees
395 - . files-backend: make reflog iterator go through per-worktree reflog
396 - . refs: add refs_for_each_reflog[_ent]()
397 - . revision.c: --all adds HEAD from all worktrees
398 - . refs: remove dead for_each_*_submodule()
399 - . revision.c: use refs_for_each*() instead of for_each_*_submodule()
400 - . refs: add a refs_for_each_in() and friends
401 - . refs: add refs_for_each_ref()
402 - . refs: add refs_head_ref()
403 - . refs: add refs_read_ref[_full]()
404 - . refs: move submodule slash stripping code to get_submodule_ref_store
405 - . revision.c: --indexed-objects add objects from all worktrees
406 - . revision.c: refactor add_index_objects_to_pending()
407 - . revision.h: new flag in struct rev_info wrt. worktree-related refs
408 - (this branch uses nd/worktree-kill-parse-ref; is tangled with nd/files-backend-git-dir.)
409 -
410 - "git gc" and friends when multiple worktrees are used off of a
411 - single repository did not consider the index and per-worktree refs
412 - of other worktrees as the root for reachability traversal, making
413 - objects that are in use only in other worktrees to be subject to
414 - garbage collection.
415 -
416 -
417 -* nd/worktree-kill-parse-ref (2017-02-19) 22 commits
418 - . refs: kill set_worktree_head_symref()
419 - . refs: add refs_create_symref()
420 - . worktree.c: kill parse_ref() in favor of refs_resolve_ref_unsafe()
421 - . refs.c: add refs_resolve_ref_unsafe()
422 - . refs: introduce get_worktree_ref_store()
423 - . refs: rename get_ref_store() to get_submodule_ref_store() and make it public
424 - . files-backend: remove submodule_allowed from files_downcast()
425 - . refs: move submodule code out of files-backend.c
426 - . path.c: move some code out of strbuf_git_path_submodule()
427 - . refs.c: make get_main_ref_store() public and use it
428 - . refs.c: kill register_ref_store(), add register_submodule_ref_store()
429 - . refs.c: flatten get_ref_store() a bit
430 - . refs: rename lookup_ref_store() to lookup_submodule_ref_store()
431 - . refs.c: introduce get_main_ref_store()
432 - . files-backend: remove the use of git_path()
433 - . refs.c: share is_per_worktree_ref() to files-backend.c
434 - . files-backend: replace *git_path*() with files_path()
435 - . files-backend: add files_path()
436 - . files-backend: convert git_path() to strbuf_git_path()
437 - . refs-internal.c: make files_log_ref_write() static
438 - . Merge branch 'mh/ref-remove-empty-directory' into nd/files-backend-git-dir
439 - . Merge branch 'mh/submodule-hash' into nd/files-backend-git-dir
440 - (this branch is used by nd/prune-in-worktree; is tangled with nd/files-backend-git-dir.)
441 -
442 - (hopefully) a beginning of safer "git worktree" that is resistant
443 - to "gc".
444 -
445 - Waiting for nd/files-backend-git-dir to settle.
446 -
447 -
448 -* nd/files-backend-git-dir (2017-02-22) 26 commits
449 - . t1406: new tests for submodule ref store
450 - . t1405: some basic tests on main ref store
451 - . t/helper: add test-ref-store to test ref-store functions
452 - . refs: delete pack_refs() in favor of refs_pack_refs()
453 - . files-backend: avoid ref api targetting main ref store
454 - . refs: new transaction related ref-store api
455 - . refs: add new ref-store api
456 - . refs: rename get_ref_store() to get_submodule_ref_store() and make it public
457 - . files-backend: replace submodule_allowed check in files_downcast()
458 - . refs: move submodule code out of files-backend.c
459 - . path.c: move some code out of strbuf_git_path_submodule()
460 - . refs.c: make get_main_ref_store() public and use it
461 - . refs.c: kill register_ref_store(), add register_submodule_ref_store()
462 - . refs.c: flatten get_ref_store() a bit
463 - . refs: rename lookup_ref_store() to lookup_submodule_ref_store()
464 - . refs.c: introduce get_main_ref_store()
465 - . files-backend: remove the use of git_path()
466 - . files-backend: add and use files_refname_path()
467 - . files-backend: add and use files_reflog_path()
468 - . files-backend: move "logs/" out of TMP_RENAMED_LOG
469 - . files-backend: convert git_path() to strbuf_git_path()
470 - . files-backend: add and use files_packed_refs_path()
471 - . files-backend: make files_log_ref_write() static
472 - . refs.h: add forward declaration for structs used in this file
473 - . Merge branch 'mh/ref-remove-empty-directory' into nd/files-backend-git-dir
474 - . Merge branch 'mh/submodule-hash' into nd/files-backend-git-dir
475 - (this branch is tangled with nd/prune-in-worktree and nd/worktree-kill-parse-ref.)
476 -
477 - The "submodule" specific field in the ref_store structure is
478 - replaced with a more generic "gitdir" that can later be used also
479 - when dealing with ref_store that represents the set of refs visible
480 - from the other worktrees.
481 -
482 -
235 * nd/worktree-move (2017-01-27) 7 commits
236 . fixup! worktree move: new command
237 . worktree remove: new command
@@ -571,7 +323,204 @@ of the repositories listed at
323 --------------------------------------------------
324 [Cooking]
325
574 -* bw/submodule-is-active (2017-03-17) 10 commits
326 +* nd/prune-in-worktree (2017-03-18) 12 commits
327 + - rev-list: expose and document --single-worktree
328 + - revision.c: --reflog add HEAD reflog from all worktrees
329 + - files-backend: make reflog iterator go through per-worktree reflog
330 + - revision.c: --all adds HEAD from all worktrees
331 + - refs: remove dead for_each_*_submodule()
332 + - revision.c: use refs_for_each*() instead of for_each_*_submodule()
333 + - refs: add refs_head_ref()
334 + - refs: move submodule slash stripping code to get_submodule_ref_store
335 + - refs.c: refactor get_submodule_ref_store(), share common free block
336 + - revision.c: --indexed-objects add objects from all worktrees
337 + - revision.c: refactor add_index_objects_to_pending()
338 + - revision.h: new flag in struct rev_info wrt. worktree-related refs
339 + (this branch uses nd/files-backend-git-dir and nd/worktree-kill-parse-ref.)
340 +
341 + "git gc" and friends when multiple worktrees are used off of a
342 + single repository did not consider the index and per-worktree refs
343 + of other worktrees as the root for reachability traversal, making
344 + objects that are in use only in other worktrees to be subject to
345 + garbage collection.
346 +
347 + Waiting for nd/files-backend-git-dir to settle.
348 +
349 +
350 +* nd/worktree-kill-parse-ref (2017-03-18) 4 commits
351 + - refs: kill set_worktree_head_symref()
352 + - worktree.c: kill parse_ref() in favor of refs_resolve_ref_unsafe()
353 + - refs: introduce get_worktree_ref_store()
354 + - environment.c: fix potential segfault by get_git_common_dir()
355 + (this branch is used by nd/prune-in-worktree; uses nd/files-backend-git-dir.)
356 +
357 + (hopefully) a beginning of safer "git worktree" that is resistant
358 + to "gc".
359 +
360 + Waiting for nd/files-backend-git-dir to settle.
361 +
362 +
363 +* nd/files-backend-git-dir (2017-03-18) 27 commits
364 + - refs.h: add a note about sorting order of for_each_ref_*
365 + - t1406: new tests for submodule ref store
366 + - t1405: some basic tests on main ref store
367 + - t/helper: add test-ref-store to test ref-store functions
368 + - refs: delete pack_refs() in favor of refs_pack_refs()
369 + - files-backend: avoid ref api targetting main ref store
370 + - refs: new transaction related ref-store api
371 + - refs: add new ref-store api
372 + - refs: rename get_ref_store() to get_submodule_ref_store() and make it public
373 + - files-backend: replace submodule_allowed check in files_downcast()
374 + - refs: move submodule code out of files-backend.c
375 + - path.c: move some code out of strbuf_git_path_submodule()
376 + - refs.c: make get_main_ref_store() public and use it
377 + - refs.c: kill register_ref_store(), add register_submodule_ref_store()
378 + - refs.c: flatten get_ref_store() a bit
379 + - refs: rename lookup_ref_store() to lookup_submodule_ref_store()
380 + - refs.c: introduce get_main_ref_store()
381 + - files-backend: remove the use of git_path()
382 + - files-backend: add and use files_refname_path()
383 + - files-backend: add and use files_reflog_path()
384 + - files-backend: move "logs/" out of TMP_RENAMED_LOG
385 + - files-backend: convert git_path() to strbuf_git_path()
386 + - files-backend: make sure files_rename_ref() always reach the end
387 + - files-backend: add and use files_packed_refs_path()
388 + - files-backend: delete dead code in files_init_db()
389 + - files-backend: make files_log_ref_write() static
390 + - refs.h: add forward declaration for structs used in this file
391 + (this branch is used by nd/prune-in-worktree and nd/worktree-kill-parse-ref.)
392 +
393 + The "submodule" specific field in the ref_store structure is
394 + replaced with a more generic "gitdir" that can later be used also
395 + when dealing with ref_store that represents the set of refs visible
396 + from the other worktrees.
397 +
398 + Expecting a reroll.
399 + cf. <CACsJy8A6mZGjNdFbhKgWAR=XSK+2mO-HG7Vayp7VODRJwu1ixA@mail.gmail.com>
400 + cf. <CACsJy8CC-BDHPLnE8DAXCxpttwgEsrQU9gzzc=PGsmFnh=XNpw@mail.gmail.com>
401 + It is almost there; only a few minor niggles remain.
402 +
403 +
404 +* ab/ref-filter-no-contains (2017-03-18) 8 commits
405 + - tag: change --point-at to default to HEAD
406 + - tag: add tests for --with and --without
407 + - ref-filter: add --no-contains option to tag/branch/for-each-ref
408 + - tag: implicitly supply --list given the -n option
409 + - tag: implicitly supply --list given another list-like option
410 + - tag: change misleading --list <pattern> documentation
411 + - tag: refactor the options handling code to be less bizarre
412 + - tag: remove a TODO item from the test suite
413 +
414 + "git tag/branch/for-each-ref" family of commands long allowed to
415 + filter the refs by "--contains X" (show only the refs that are
416 + descendants of X), "--merged X" (show only the refs that are
417 + ancestors of X), "--no-merged X" (show only the refs that are not
418 + ancestors of X). One curious omission, "--no-contains X" (show
419 + only the refs that are not descendants of X) has been added to
420 + them.
421 +
422 + Expecting a reroll.
423 + cf. <CACBZZX5GErSBsiCz0Y2SgtvckcPE51ekfUgBpvYjNF1u44piMA@mail.gmail.com>
424 + Again, this is almost there and a reroll is expected to be very minor.
425 +
426 +
427 +* jc/name-rev (2017-03-16) 2 commits
428 + - name-rev: favor describing with tags and use committer date to tiebreak
429 + - name-rev: refactor logic to see if a new candidate is a better name
430 +
431 + "git name-rev" penalized lightweight tags too much, making them
432 + almost useless especially when the command is run with "--tags".
433 + Give the same precedence to lightweight tags as annotated tags as
434 + the base for naming a commit.
435 +
436 +
437 +* jk/pack-name-cleanups (2017-03-16) 5 commits
438 + (merged to 'next' on 2017-03-16 at 6aa72195f5)
439 + + index-pack: make pointer-alias fallbacks safer
440 + + replace snprintf with odb_pack_name()
441 + + odb_pack_keep(): stop generating keepfile name
442 + + sha1_file.c: make pack-name helper globally accessible
443 + + move odb_* declarations out of git-compat-util.h
444 +
445 + Code clean-up.
446 +
447 + Will merge to 'master'.
448 +
449 +
450 +* jk/rev-parse-cleanup (2017-03-15) 3 commits
451 + (merged to 'next' on 2017-03-16 at 2799b37404)
452 + + rev-parse: simplify parsing of ref options
453 + + rev-parse: add helper for parsing "--foo/--foo="
454 + + rev-parse: use skip_prefix when parsing options
455 +
456 + Code clean-up.
457 +
458 + Will merge to 'master'.
459 +
460 +
461 +* mg/prompt-describe-tags (2017-03-15) 1 commit
462 + (merged to 'next' on 2017-03-16 at 4de192caf4)
463 + + git-prompt: add a describe style for any tags
464 +
465 + The command line prompt (in contrib/) learned a new 'tag' style
466 + that can be specified with GIT_PS1_DESCRIBE_STYLE, to describe a
467 + detached HEAD with "git describe --tags".
468 +
469 + Will merge to 'master'.
470 +
471 +
472 +* sb/submodule-config-parse-ignore-fix (2017-03-15) 1 commit
473 + (merged to 'next' on 2017-03-16 at 99d2524abd)
474 + + submodule-config: correct error reporting for invalid ignore value
475 +
476 + Code to read submodule.<name>.ignore config did not state the
477 + variable name correctly when giving an error message diagnosing
478 + misconfiguration.
479 +
480 + Will merge to 'master'.
481 +
482 +
483 +* bw/recurse-submodules-relative-fix (2017-03-17) 5 commits
484 + - ls-files: fix bug when recursing with relative pathspec
485 + - ls-files: fix typo in variable name
486 + - grep: fix bug when recursing with relative pathspec
487 + - setup: allow for prefix to be passed to git commands
488 + - grep: fix help text typo
489 +
490 + A few commands that recently learned the "--recurse-submodule"
491 + option misbehaved when started from a subdirectory of the
492 + superproject.
493 +
494 +
495 +* jc/p4-current-branch-fix (2017-03-17) 1 commit
496 + - DONTMERGE git-p4: "name-rev HEAD" is not a way to find the current branch
497 +
498 + "git p4" used "name-rev HEAD" when it wants to learn what branch is
499 + checked out; it should use "symbolic-ref HEAD".
500 +
501 + Waiting for git-p4 folks to send a finished patch.
502 +
503 +
504 +* js/rebase-helper (2017-03-17) 1 commit
505 + (merged to 'next' on 2017-03-20 at 2b72d03e0e)
506 + + sequencer: drop "warning:" when stopping for edit
507 +
508 + Recent update to "rebase -i" started showing a message that is not
509 + a warning with "warning:" prefix by mistake. This has been fixed.
510 +
511 + Will merge to 'master'.
512 +
513 +
514 +* sb/wt-status-cleanup (2017-03-17) 1 commit
515 + (merged to 'next' on 2017-03-20 at ce800cd91b)
516 + + wt-status: simplify by using for_each_string_list_item
517 +
518 + Code clean-up.
519 +
520 + Will merge to 'master'.
521 +
522 +
523 +* bw/submodule-is-active (2017-03-18) 10 commits
524 - submodule add: respect submodule.active and submodule.<name>.active
525 - submodule--helper init: set submodule.<name>.active
526 - clone: teach --recurse-submodules to optionally take a pathspec
@@ -594,29 +543,32 @@ of the repositories listed at
543
544
545 * dl/credential-cache-socket-in-xdg-cache (2017-03-17) 3 commits
597 - - credential-cache: add tests for XDG functionality
598 - - credential-cache: use XDG_CACHE_HOME for socket
599 - - path.c: add xdg_cache_home
546 + (merged to 'next' on 2017-03-20 at 9de71bcce8)
547 + + credential-cache: add tests for XDG functionality
548 + + credential-cache: use XDG_CACHE_HOME for socket
549 + + path.c: add xdg_cache_home
550
551 The default location "~/.git-credential-cache/socket" for the
552 socket used to communicate with the credential-cache daemon has
553 been moved to "~/.cache/git/credential/socket".
554
605 - Will merge to 'next'.
555 + Will merge to 'master'.
556
557
558 * jk/sha1dc (2017-03-17) 6 commits
609 - - Makefile: make DC_SHA1 the default
610 - - t0013: add a basic sha1 collision detection test
611 - - Makefile: add DC_SHA1 knob
612 - - sha1dc: disable safe_hash feature
613 - - sha1dc: adjust header includes for git
614 - - sha1dc: add collision-detecting sha1 implementation
615 -
616 - Borrow "detect attempt to create collisions" variant of SHA-1
617 - implementation by Marc Stevens (CWI) and Dan Shumow (Microsoft).
559 + (merged to 'next' on 2017-03-20 at 3455b6c19f)
560 + + Makefile: make DC_SHA1 the default
561 + + t0013: add a basic sha1 collision detection test
562 + + Makefile: add DC_SHA1 knob
563 + + sha1dc: disable safe_hash feature
564 + + sha1dc: adjust header includes for git
565 + + sha1dc: add collision-detecting sha1 implementation
566 +
567 + The "detect attempt to create collisions" variant of SHA-1
568 + implementation by Marc Stevens (CWI) and Dan Shumow (Microsoft)
569 + has been integrated and made the default.
570
619 - This looks almost ready for 'next'. Any more comments?
571 + Will merge to 'master'.
572
573
574 * nd/conditional-config-include (2017-03-11) 3 commits