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