What's cooking (2015/08 #01)
Junio C Hamano committed
Aug 3, 2015 at 15:17 UTC
62d5e9d74e372a006a91fb84df4d5bd50ad569d8
1 file changed
+725
-745
whats-cooking.txt
+725
-745
@@ -1,20 +1,30 @@
1
To: git@vger.kernel.org
2
Bcc: lwn@lwn.net
3
-Subject: What's cooking in git.git (Jul 2015, #08; Fri, 31)
4
-X-master-at: a17c56c056d5fea0843b429132904c429a900229
5
-X-next-at: d2dd00455917b2356208ce67ac57c55cac7c4abd
3
+Subject: What's cooking in git.git (Aug 2015, #01; Mon, 3)
4
+X-master-at: efc8a625e9b03e6f8ceed37ccd4b9167a7447e31
5
+X-next-at: f5e568e307909722237f3acc29e39e7d8dd1e7b9
6
7
-What's cooking in git.git (Jul 2015, #08; Fri, 31)
7
+What's cooking in git.git (Aug 2015, #01; Mon, 3)
8
--------------------------------------------------
9
10
Here are the topics that have been cooking. Commits prefixed with
11
'-' are only in 'pu' (proposed updates) while commits prefixed with
12
'+' are in 'next'.
13
14
-Git 2.5 final was tagged and tarballs were pushed out. Accumulated
15
-fixes also went to a new maintenance release 2.4.7. Let's wait and
16
-see for a few days for any regressions before opening the 'master'
17
-branch for topics that have been waiting in 'next', as usual.
14
+Accumulated fixes went to a new maintenance release 2.4.8. The
15
+first batch of the post-2.5 development cycle has been merged to
16
+'master', and the tip of 'next' has been rewound.
17
+
18
+I've kicked a few topics out of 'next' back to 'pu' for now.
19
+
20
+ - I think pt/am-builtin is more or less ready, but the fix to the
21
+ issue that options given to 'git am' when restarting were
22
+ rejected must be queued on that topic before we can start
23
+ thinking of merging it to 'master' for the next release.
24
+
25
+ - I think es/worktree-add and es/worktree-add-cleanup are good
26
+ shape overall, but we probably would want to make them into a
27
+ single topic.
28
29
You can find the changes described here in the integration branches
30
of the repositories listed at
@@ -22,176 +32,505 @@ of the repositories listed at
32
http://git-blame.blogspot.com/p/git-public-repositories.html
33
34
--------------------------------------------------
25
-[New Topics]
26
-
27
-* dt/reflog-tests (2015-07-28) 2 commits
28
- - tests: remove some direct access to .git/logs
29
- - t/t7509: remove unnecessary manipulation of reflog
30
-
31
- Update tests not to assume how reflogs are represented on the
32
- filesystem too much.
33
-
34
- Will merge to 'next'.
35
-
35
+[Graduated to "master"]
36
37
-* dt/unpack-trees-cache-tree-revalidate (2015-07-28) 1 commit
38
- - unpack-trees: populate cache-tree on successful merge
37
+* as/sparse-checkout-removal (2015-07-21) 1 commit
38
+ (merged to 'next' on 2015-07-21 at ab94680)
39
+ + unpack-trees: don't update files with CE_WT_REMOVE set
40
40
- Upon a successful merge into the index, repopulate the cache-tree,
41
- so that subsequent "diff-index --cached" (hence "status") and
42
- "write-tree" (hence "commit") will go faster.
41
+ "sparse checkout" misbehaved for a path that is excluded from the
42
+ checkout when switching between branches that differ at the path.
43
44
- The same logic in "git checkout" may now be removed, but that is a
45
- separate issue.
44
47
- Will merge to 'next'.
45
+* bc/gpg-verify-raw (2015-06-22) 7 commits
46
+ (merged to 'next' on 2015-06-24 at 08a1164)
47
+ + verify-tag: add option to print raw gpg status information
48
+ + verify-commit: add option to print raw gpg status information
49
+ + gpg: centralize printing signature buffers
50
+ + gpg: centralize signature check
51
+ + verify-commit: add test for exit status on untrusted signature
52
+ + verify-tag: share code with verify-commit
53
+ + verify-tag: add tests
54
55
+ "git verify-tag" and "git verify-commit" have been taught to share
56
+ more code, and then learned to optionally show the verification
57
+ message from the underlying GPG implementation.
58
50
-* jk/negative-hiderefs (2015-07-28) 2 commits
51
- - refs: support negative transfer.hideRefs
52
- - docs/config.txt: reorder hideRefs config
59
54
- Allow negative !ref entry in multi-value transfer.hideRefs
55
- configuration to say "don't hide this one".
60
+* cb/parse-magnitude (2015-06-22) 2 commits
61
+ (merged to 'next' on 2015-06-24 at 2fd7205)
62
+ + parse-options: move unsigned long option parsing out of pack-objects.c
63
+ + test-parse-options: update to handle negative ints
64
57
- An update to test coming?
65
+ Move machinery to parse human-readable scaled numbers like 1k, 4M,
66
+ and 2G as an option parameter's value from pack-objects to
67
+ parse-options API, to make it available to other codepaths.
68
69
60
-* mh/get-remote-group-fix (2015-07-28) 4 commits
61
- - get_remote_group(): use skip_prefix()
62
- - get_remote_group(): eliminate superfluous call to strcspn()
63
- - get_remote_group(): rename local variable "space" to "wordlen"
64
- - get_remote_group(): handle remotes with single-character names
70
+* cb/uname-in-untracked (2015-07-17) 1 commit
71
+ (merged to 'next' on 2015-07-21 at d867af0)
72
+ + untracked: fix detection of uname(2) failure
73
66
- An off-by-one error made "git remote" to mishandle a remote with a
67
- single letter nickname.
74
+ An experimental "untracked cache" feature used uname(2) in a
75
+ slightly unportable way.
76
69
- Will merge to 'next'.
77
78
+* da/subtree-date-confusion (2015-07-23) 1 commit
79
+ (merged to 'next' on 2015-07-29 at 01016b1)
80
+ + contrib/subtree: ignore log.date configuration
81
72
-* ta/docfix-index-format-tech (2015-07-28) 1 commit
73
- - typofix for index-format.txt
82
+ "git subtree" (in contrib/) depended on "git log" output to be
83
+ stable, which was a no-no. Apply a workaround to force a
84
+ particular date format.
85
75
- Will merge to 'next'.
86
87
+* db/send-pack-user-signingkey (2015-07-21) 1 commit
88
+ (merged to 'next' on 2015-07-29 at b0d62e9)
89
+ + builtin/send-pack.c: respect user.signingkey
90
78
-* dt/notes-multiple (2015-07-31) 2 commits
79
- - notes: handle multiple worktrees
80
- - worktrees: add die_if_shared_symref
81
- (this branch uses es/worktree-add and es/worktree-add-cleanup.)
91
+ The low-level "git send-pack" did not honor 'user.signingkey'
92
+ configuration variable when sending a signed-push.
93
83
- Forbid simultaneous "notes merge" to happen for the same ref in
84
- refs/notes/* when linked worktree is used.
94
95
+* dt/log-follow-config (2015-07-09) 1 commit
96
+ (merged to 'next' on 2015-07-10 at b8fbb43)
97
+ + log: add "log.follow" configuration variable
98
87
-* dt/refs-pseudo (2015-07-31) 5 commits
88
- - sequencer: replace write_cherry_pick_head with update_ref
89
- - bisect: use update_ref
90
- - pseudorefs: create and use pseudoref update and delete functions
91
- - refs: add ref_type function
92
- - refs: introduce pseudoref and per-worktree ref concepts
93
- (this branch uses dt/refs-backend-preamble.)
99
+ Add a new configuration variable to enable "--follow" automatically
100
+ when "git log" is run with one pathspec argument.
101
95
- To prepare for allowing a different "ref" backend to be plugged in
96
- to the system, teach update_ref()/delete_ref() about ref-like
97
- things like MERGE_HEAD that are per-worktree (they will always be
98
- written to the filesystem inside $GIT_DIR).
102
100
- Will merge to 'next'.
103
+* dt/refs-backend-preamble (2015-07-21) 7 commits
104
+ (merged to 'next' on 2015-07-23 at 9dac423)
105
+ + git-stash: use update-ref --create-reflog instead of creating files
106
+ + update-ref and tag: add --create-reflog arg
107
+ + refs: add REF_FORCE_CREATE_REFLOG flag
108
+ + git-reflog: add exists command
109
+ + refs: new public ref function: safe_create_reflog
110
+ + refs: break out check for reflog autocreation
111
+ + refs.c: add err arguments to reflog functions
112
+ (this branch is used by dt/refs-pseudo.)
113
114
+ In preparation for allowing different "backends" to store the refs
115
+ in a way different from the traditional "one ref per file in $GIT_DIR
116
+ or in a $GIT_DIR/packed-refs file" filesystem storage, reduce
117
+ direct filesystem access to ref-like things like CHERRY_PICK_HEAD
118
+ from scripts and programs.
119
103
-* dt/untracked-sparse (2015-07-31) 1 commit
104
- - untracked-cache: support sparse checkout
120
106
- Allow untracked cache (experimental) to be used when sparse
107
- checkout (experimental) is also in use.
121
+* ee/clean-remove-dirs (2015-06-26) 6 commits
122
+ (merged to 'next' on 2015-06-29 at d595659)
123
+ + read_gitfile_gently: fix use-after-free
124
+ (merged to 'next' on 2015-06-24 at 7c27821)
125
+ + clean: improve performance when removing lots of directories
126
+ + p7300: add performance tests for clean
127
+ + t7300: add tests to document behavior of clean and nested git
128
+ + setup: sanity check file size in read_gitfile_gently
129
+ + setup: add gentle version of read_gitfile
130
131
+ Replace "is this subdirectory a separate repository that should not
132
+ be touched?" check "git clean" does by checking if it has .git/HEAD
133
+ using the submodule-related code with a more optimized check.
134
110
-* mm/for-each-ref-fixup (2015-07-29) 1 commit
111
- (merged to 'next' on 2015-07-29 at 32760e8)
112
- + fixup 39c528f0 ref-filter: fix indentation
113
- (this branch uses kn/for-each-ref; is tangled with kn/for-each-tag-branch.)
135
115
- Will squash into kn/for-each-tag-branch and rebuild 'next'.
136
+* es/doc-clean-outdated-tools (2015-07-28) 5 commits
137
+ (merged to 'next' on 2015-07-29 at 6d80251)
138
+ + Documentation/git-tools: retire manually-maintained list
139
+ + Documentation/git-tools: drop references to defunct tools
140
+ + Documentation/git-tools: fix item text formatting
141
+ + Documentation/git-tools: improve discoverability of Git wiki
142
+ + Documentation/git: drop outdated Cogito reference
143
144
118
-* pt/am-builtin-fix (2015-07-28) 1 commit
119
- - am: let command-line options override saved options
120
- (this branch uses pt/am-builtin and pt/pull-builtin; is tangled with kd/pull-rebase-autostash.)
145
+* gp/status-rebase-i-info (2015-07-06) 4 commits
146
+ (merged to 'next' on 2015-07-10 at b121298)
147
+ + status: add new tests for status during rebase -i
148
+ + status: give more information during rebase -i
149
+ + status: differentiate interactive from non-interactive rebases
150
+ + status: factor two rebase-related messages together
151
122
- With "git am --options" followed by "git am --other-options", the
123
- options given in a later invocation should override the initial
124
- options for a single invocation, but the rewritten "git am" didn't.
152
+ Teach "git status" to show a more detailed information regarding
153
+ the "rebase -i" session in progress.
154
126
- Expecting a reroll.
155
156
+* gr/rebase-i-drop-warn (2015-06-30) 3 commits
157
+ (merged to 'next' on 2015-07-15 at 6f4f2c8)
158
+ + git rebase -i: add static check for commands and SHA-1
159
+ + git rebase -i: warn about removed commits
160
+ + git-rebase -i: add command "drop" to remove a commit
161
129
-* rj/bisect-terms-fixup (2015-07-30) 1 commit
130
- - bisect: add read_bisect_terms() to the public interface
131
- (this branch uses ad/bisect-cleanup and ad/bisect-terms.)
162
+ Add "drop commit-object-name subject" command as another way to
163
+ skip replaying of a commit in "rebase -i".
164
133
- Will squash into ad/bisect-cleanup.
165
166
+* ib/scripted-parse-opt-better-hint-string (2015-07-15) 1 commit
167
+ (merged to 'next' on 2015-07-17 at 7bb1674)
168
+ + rev-parse --parseopt: allow [*=?!] in argument hints
169
136
-* sb/parse-options-codeformat (2015-07-29) 1 commit
137
- - parse-options: align curly braces for all options
170
+ The "rev-parse --parseopt" mode parsed the option specification
171
+ and the argument hint in a strange way to allow '=' and other
172
+ special characters in the option name while forbidding them from
173
+ the argument hint. This made it impossible to define an option
174
+ like "--pair <key>=<value>" with "pair=key=value" specification,
175
+ which instead would have defined a "--pair=key <value>" option.
176
139
- Will merge to 'next'.
177
178
+* jc/commit-slab (2015-05-22) 1 commit
179
+ (merged to 'next' on 2015-07-15 at 4c83475)
180
+ + commit-slab: introduce slabname##_peek() function
181
142
-* sb/remove-unused-var-from-builtin-add (2015-07-31) 1 commit
143
- - add: remove dead code
182
+ Memory use reduction when commit-slab facility is used to annotate
183
+ sparsely (which is not recommended in the first place).
184
145
- Will merge to 'next'.
185
147
---------------------------------------------------
148
-[Stalled]
186
+* jk/cat-file-batch-all (2015-06-26) 8 commits
187
+ (merged to 'next' on 2015-07-10 at 80200cc)
188
+ + cat-file: sort and de-dup output of --batch-all-objects
189
+ + cat-file: add --batch-all-objects option
190
+ + cat-file: split batch_one_object into two stages
191
+ + cat-file: stop returning value from batch_one_object
192
+ + cat-file: add --buffer option
193
+ + cat-file: move batch_options definition to top of file
194
+ + cat-file: minor style fix in options list
195
+ + Merge branch 'jk/maint-for-each-packed-object' into jk/cat-file-batch-all
196
150
-* jc/clone-bundle (2015-04-30) 1 commit
151
- - repack: optionally create a clone.bundle
197
+ "cat-file" learned "--batch-all-objects" option to enumerate all
198
+ available objects in the repository more quickly than "rev-list
199
+ --all --objects" (the output includes unreachable objects, though).
200
153
- Waiting for further work.
154
- Still an early WIP.
201
202
+* jk/date-mode-format (2015-07-20) 4 commits
203
+ (merged to 'next' on 2015-07-21 at 69f66be)
204
+ + strbuf: make strbuf_addftime more robust
205
+ (merged to 'next' on 2015-07-09 at a01bfc3)
206
+ + introduce "format" date-mode
207
+ + convert "enum date_mode" into a struct
208
+ + show-branch: use DATE_RELATIVE instead of magic number
209
157
-* jh/strbuf-read-use-read-in-full (2015-06-01) 1 commit
158
- - strbuf_read(): skip unnecessary strbuf_grow() at eof
210
+ Teach "git log" and friends a new "--date=format:..." option to
211
+ format timestamps using system's strftime(3).
212
160
- Avoid one extra iteration and strbuf_grow() of 8kB in
161
- strbuf_read().
213
163
- Looked reasonable; perhaps a log message clarification is needed.
214
+* jk/pkt-log-pack (2015-06-16) 3 commits
215
+ (merged to 'next' on 2015-07-10 at ba33212)
216
+ + pkt-line: support tracing verbatim pack contents
217
+ + pkt-line: tighten sideband PACK check when tracing
218
+ + pkt-line: simplify starts_with checks in packet tracing
219
165
- Expecting a reroll.
220
+ Enhance packet tracing machinery to allow capturing an incoming
221
+ pack data to a file for debugging.
222
223
168
-* mg/index-read-error-messages (2015-06-01) 2 commits
169
- - messages: uniform error messages for index write
170
- - show-index: uniform error messages for index read
224
+* jk/refspec-parse-wildcard (2015-07-27) 2 commits
225
+ (merged to 'next' on 2015-07-29 at eb48d2f)
226
+ + refs: loosen restriction on wildcard "*" refspecs
227
+ + refs: cleanup comments regarding check_refname_component()
228
172
- The tip was RFC.
173
- Expecting a reroll.
229
+ Allow an asterisk as a substring (as opposed to the entirety) of
230
+ a path component for both side of a refspec, e.g.
231
+ "refs/heads/o*:refs/remotes/heads/i*".
232
233
176
-* hv/submodule-config (2015-06-15) 4 commits
177
- - do not die on error of parsing fetchrecursesubmodules option
178
- - use new config API for worktree configurations of submodules
179
- - extract functions for submodule config set and lookup
180
- - implement submodule config API for lookup of .gitmodules values
234
+* js/fsck-opt (2015-06-23) 19 commits
235
+ (merged to 'next' on 2015-07-10 at eb4da0a)
236
+ + fsck: support ignoring objects in `git fsck` via fsck.skiplist
237
+ + fsck: git receive-pack: support excluding objects from fsck'ing
238
+ + fsck: introduce `git fsck --connectivity-only`
239
+ + fsck: support demoting errors to warnings
240
+ + fsck: document the new receive.fsck.<msg-id> options
241
+ + fsck: allow upgrading fsck warnings to errors
242
+ + fsck: optionally ignore specific fsck issues completely
243
+ + fsck: disallow demoting grave fsck errors to warnings
244
+ + fsck: add a simple test for receive.fsck.<msg-id>
245
+ + fsck: make fsck_tag() warn-friendly
246
+ + fsck: handle multiple authors in commits specially
247
+ + fsck: make fsck_commit() warn-friendly
248
+ + fsck: make fsck_ident() warn-friendly
249
+ + fsck: report the ID of the error/warning
250
+ + fsck (receive-pack): allow demoting errors to warnings
251
+ + fsck: offer a function to demote fsck errors to warnings
252
+ + fsck: provide a function to parse fsck message IDs
253
+ + fsck: introduce identifiers for fsck messages
254
+ + fsck: introduce fsck options
255
182
- The gitmodules API accessed from the C code learned to cache stuff
183
- lazily.
256
+ Allow ignoring fsck errors on specific set of known-to-be-bad
257
+ objects, and also tweaking warning level of various kinds of non
258
+ critical breakages reported.
259
185
- Needs another reroll? ($gmane/273743).
260
261
+* jx/do-not-crash-receive-pack-wo-head (2015-07-22) 1 commit
262
+ (merged to 'next' on 2015-07-29 at 227d0d9)
263
+ + receive-pack: crash when checking with non-exist HEAD
264
188
-* jk/log-missing-default-HEAD (2015-06-03) 1 commit
189
- - log: diagnose empty HEAD more clearly
265
+ An attempt to delete a ref by pushing into a repositorywhose HEAD
266
+ symbolic reference points at an unborn branch that cannot be
267
+ created due to ref D/F conflict (e.g. refs/heads/a/b exists, HEAD
268
+ points at refs/heads/a) failed.
269
191
- "git init empty && git -C empty log" said "bad default revision 'HEAD'",
192
- which was found to be a bit confusing to new users.
270
194
- What's the status of this one?
271
+* kb/i18n-doc (2015-07-01) 1 commit
272
+ (merged to 'next' on 2015-07-09 at a12c7b3)
273
+ + Documentation/i18n.txt: clarify character encoding support
274
+
275
+
276
+* kn/for-each-ref (2015-08-03) 11 commits
277
+ + ref-filter: make 'ref_array_item' use a FLEX_ARRAY for refname
278
+ + for-each-ref: introduce filter_refs()
279
+ + ref-filter: move code from 'for-each-ref'
280
+ + ref-filter: add 'ref-filter.h'
281
+ + for-each-ref: rename variables called sort to sorting
282
+ + for-each-ref: rename some functions and make them public
283
+ + for-each-ref: introduce 'ref_array_clear()'
284
+ + for-each-ref: introduce new structures for better organisation
285
+ + for-each-ref: rename 'refinfo' to 'ref_array_item'
286
+ + for-each-ref: clean up code
287
+ + for-each-ref: extract helper functions out of grab_single_ref()
288
+ (this branch is used by kn/for-each-tag-branch).
289
+
290
+ GSoC project to rebuild ref listing by branch and tag based on the
291
+ for-each-ref machinery. This is its first part.
292
+
293
+
294
+* kn/tag-doc-fix (2015-07-10) 1 commit
295
+ (merged to 'next' on 2015-07-15 at 7bd6038)
296
+ + Documentation/tag: remove double occurance of "<pattern>"
297
+
298
+
299
+* mh/fast-import-get-mark (2015-07-01) 1 commit
300
+ (merged to 'next' on 2015-07-15 at 5e034b9)
301
+ + fast-import: add a get-mark command
302
+
303
+ "git fast-import" learned to respond to the get-mark command via
304
+ its cat-blob-fd interface.
305
+
306
+
307
+* mh/fast-import-optimize-current-from (2015-07-13) 1 commit
308
+ (merged to 'next' on 2015-07-15 at 2be8b1f)
309
+ + fast-import: do less work when given "from" matches current branch head
310
+
311
+ Often a fast-import stream builds a new commit on top of the
312
+ previous commit it built, and it often unconditionally emits a
313
+ "from" command to specify the first parent, which can be omitted in
314
+ such a case. This caused fast-import to forget the tree of the
315
+ previous commit and then re-read it from scratch, which was
316
+ inefficient. Optimize for this common case.
317
+
318
+
319
+* mh/init-delete-refs-api (2015-06-22) 19 commits
320
+ (merged to 'next' on 2015-07-10 at 121b26e)
321
+ + delete_ref(): use the usual convention for old_sha1
322
+ + cmd_update_ref(): make logic more straightforward
323
+ + update_ref(): don't read old reference value before delete
324
+ + check_branch_commit(): make first parameter const
325
+ + refs.h: add some parameter names to function declarations
326
+ + refs: move the remaining ref module declarations to refs.h
327
+ + initial_ref_transaction_commit(): check for ref D/F conflicts
328
+ + initial_ref_transaction_commit(): check for duplicate refs
329
+ + refs: remove some functions from the module's public interface
330
+ + initial_ref_transaction_commit(): function for initial ref creation
331
+ + repack_without_refs(): make function private
332
+ + prune_refs(): use delete_refs()
333
+ + prune_remote(): use delete_refs()
334
+ + delete_refs(): bail early if the packed-refs file cannot be rewritten
335
+ + delete_refs(): make error message more generic
336
+ + delete_refs(): new function for the refs API
337
+ + delete_ref(): handle special case more explicitly
338
+ + remove_branches(): remove temporary
339
+ + delete_ref(): move declaration to refs.h
340
+
341
+ Clean up refs API and make "git clone" less intimate with the
342
+ implementation detail.
343
+
344
+
345
+* mh/replace-refs (2015-06-12) 1 commit
346
+ (merged to 'next' on 2015-06-24 at cb13adf)
347
+ + Allow to control where the replace refs are looked for
348
+
349
+ Add an environment variable to tell Git to look into refs hierarchy
350
+ other than refs/replace/ for the object replacement data.
351
+
352
+
353
+* mr/rebase-i-customize-insn-sheet (2015-06-15) 1 commit
354
+ (merged to 'next' on 2015-07-10 at ec383cd)
355
+ + git-rebase--interactive.sh: add config option for custom instruction format
356
+
357
+ "git rebase -i"'s list of todo is made configurable.
358
+
359
+
360
+* nd/export-worktree (2015-06-26) 1 commit
361
+ (merged to 'next' on 2015-07-09 at 1581a9b)
362
+ + setup: set env $GIT_WORK_TREE when work tree is set, like $GIT_DIR
363
+
364
+ Running an aliased command from a subdirectory when the .git thing
365
+ in the working tree is a gitfile pointing elsewhere did not work.
366
+
367
+
368
+* pt/am-foreign (2015-06-15) 5 commits
369
+ (merged to 'next' on 2015-06-24 at 838c702)
370
+ + am: teach mercurial patch parser how to read from stdin
371
+ + am: use gmtime() to parse mercurial patch date
372
+ + t4150: test applying StGit series
373
+ + am: teach StGit patch parser how to read from stdin
374
+ + t4150: test applying StGit patch
375
+
376
+ Various enhancements around "git am" reading patches generated by
377
+ foreign SCM.
378
+
379
+
380
+* pt/am-tests (2015-07-20) 12 commits
381
+ (merged to 'next' on 2015-07-21 at 8d3d5f4)
382
+ + t3901: test git-am encoding conversion
383
+ + t3418: non-interactive rebase --continue with rerere enabled
384
+ + t4150: tests for am --[no-]scissors
385
+ + t4150: am with post-applypatch hook
386
+ + t4150: am with pre-applypatch hook
387
+ + t4150: am with applypatch-msg hook
388
+ + t4150: am --resolved fails if index has unmerged entries
389
+ + t4150: am --resolved fails if index has no changes
390
+ + t4150: am refuses patches when paused
391
+ + t4151: am --abort will keep dirty index intact
392
+ + t4150: am fails if index is dirty
393
+ + t4150: am.messageid really adds the message id
394
+
395
+
396
+* pt/pull-builtin (2015-06-18) 19 commits
397
+ (merged to 'next' on 2015-07-10 at 07b1794)
398
+ + pull: remove redirection to git-pull.sh
399
+ + pull --rebase: error on no merge candidate cases
400
+ + pull --rebase: exit early when the working directory is dirty
401
+ + pull: configure --rebase via branch.<name>.rebase or pull.rebase
402
+ + pull: teach git pull about --rebase
403
+ + pull: set reflog message
404
+ + pull: implement pulling into an unborn branch
405
+ + pull: fast-forward working tree if head is updated
406
+ + pull: check if in unresolved merge state
407
+ + pull: support pull.ff config
408
+ + pull: error on no merge candidates
409
+ + pull: pass git-fetch's options to git-fetch
410
+ + pull: pass git-merge's options to git-merge
411
+ + pull: pass verbosity, --progress flags to fetch and merge
412
+ + pull: implement fetch + merge
413
+ + pull: implement skeletal builtin pull
414
+ + argv-array: implement argv_array_pushv()
415
+ + parse-options-cb: implement parse_opt_passthru_argv()
416
+ + parse-options-cb: implement parse_opt_passthru()
417
+ (this branch is used by kd/pull-rebase-autostash, pt/am-builtin and pt/am-builtin-fix.)
418
+
419
+ Reimplement 'git pull' in C.
420
+
421
+
422
+* rl/send-email-aliases (2015-07-07) 10 commits
423
+ (merged to 'next' on 2015-07-09 at c60553d)
424
+ + send-email: suppress meaningless whitespaces in from field
425
+ + send-email: allow multiple emails using --cc, --to and --bcc
426
+ + send-email: consider quote as delimiter instead of character
427
+ + send-email: reduce dependencies impact on parse_address_line
428
+ + send-email: minor code refactoring
429
+ + send-email: allow use of aliases in the From field of --compose mode
430
+ + send-email: refactor address list process
431
+ + t9001-send-email: refactor header variable fields replacement
432
+ + send-email: allow aliases in patch header and command script outputs
433
+ + t9001-send-email: move script creation in a setup test
434
+
435
+ "git send-email" now performs alias-expansion on names that are
436
+ given via --cccmd, etc.
437
+
438
+ This round comes with a lot more enhanced e-mail address parser,
439
+ which makes it a bit scary, but as long as it works as designed, it
440
+ makes it wonderful ;-).
441
+
442
+
443
+* se/doc-checkout-ours-theirs (2015-07-12) 1 commit
444
+ (merged to 'next' on 2015-07-21 at 5275f04)
445
+ + checkout: document subtlety around --ours/--theirs
446
+
447
+ A "rebase" replays changes of the local branch on top of something
448
+ else, as such they are placed in stage #3 and referred to as
449
+ "theirs", while the changes in the new base, typically a foreign
450
+ work, are placed in stage #2 and referred to as "ours". Clarify
451
+ the "checkout --ours/--theirs".
452
+
453
+
454
+* sg/bash-prompt-untracked-optim (2015-07-20) 2 commits
455
+ (merged to 'next' on 2015-07-21 at e151fb7)
456
+ + bash prompt: faster untracked status indicator with untracked directories
457
+ + bash prompt: test untracked files status indicator with untracked dirs
458
+
459
+ Optimize computation of untracked status indicator by bash prompt
460
+ script (in contrib/).
461
+
462
+
463
+* zb/userdiff-fountain (2015-07-23) 1 commit
464
+ (merged to 'next' on 2015-07-23 at e177995)
465
+ + userdiff: add support for Fountain documents
466
+
467
+ New userdiff pattern definition for fountain screenwriting markup
468
+ format.
469
+
470
+--------------------------------------------------
471
+[New Topics]
472
+
473
+* sb/check-return-from-read-ref (2015-08-03) 1 commit
474
+ - transport-helper: die on errors reading refs.
475
+
476
+ Will merge to 'next'.
477
+
478
+--------------------------------------------------
479
+[Stalled]
480
+
481
+* bw/portability-solaris (2015-07-20) 3 commits
482
+ - tests: fix sed usage in tests to work around broken xpg4/sed on Solaris
483
+ - tests: fix sed usage in tests to work around broken xpg4/sed on Solaris
484
+ - tests: modify tr expressions so that xpg4/tr handles it on Solaris
485
+
486
+ Needs another reroll? ($gmane/274296)
487
+
488
+
489
+* jc/clone-bundle (2015-04-30) 1 commit
490
+ - repack: optionally create a clone.bundle
491
+
492
+ Waiting for further work.
493
+ Still an early WIP.
494
+
495
+
496
+* jh/strbuf-read-use-read-in-full (2015-06-01) 1 commit
497
+ - strbuf_read(): skip unnecessary strbuf_grow() at eof
498
+
499
+ Avoid one extra iteration and strbuf_grow() of 8kB in
500
+ strbuf_read().
501
+
502
+ Looked reasonable; perhaps a log message clarification is needed.
503
+
504
+ Expecting a reroll.
505
+
506
+
507
+* mg/index-read-error-messages (2015-06-01) 2 commits
508
+ - messages: uniform error messages for index write
509
+ - show-index: uniform error messages for index read
510
+
511
+ The tip was RFC.
512
+ Expecting a reroll.
513
+
514
+
515
+* hv/submodule-config (2015-06-15) 4 commits
516
+ - do not die on error of parsing fetchrecursesubmodules option
517
+ - use new config API for worktree configurations of submodules
518
+ - extract functions for submodule config set and lookup
519
+ - implement submodule config API for lookup of .gitmodules values
520
+
521
+ The gitmodules API accessed from the C code learned to cache stuff
522
+ lazily.
523
+
524
+ Needs another reroll? ($gmane/273743).
525
+
526
+
527
+* jk/log-missing-default-HEAD (2015-06-03) 1 commit
528
+ - log: diagnose empty HEAD more clearly
529
+
530
+ "git init empty && git -C empty log" said "bad default revision 'HEAD'",
531
+ which was found to be a bit confusing to new users.
532
+
533
+ What's the status of this one?
534
535
536
* wp/sha1-name-negative-match (2015-06-08) 2 commits
@@ -250,12 +589,12 @@ of the repositories listed at
589
($gmane/271353)
590
591
253
-* ad/bisect-terms (2015-06-29) 4 commits
592
+* ad/bisect-terms (2015-08-03) 4 commits
593
- bisect: allow setting any user-specified in 'git bisect start'
594
- bisect: add 'git bisect terms' to view the current terms
595
- bisect: add the terms old/new
596
- bisect: sanity check on terms
258
- (this branch is used by rj/bisect-terms-fixup; uses ad/bisect-cleanup.)
597
+ (this branch uses ad/bisect-cleanup.)
598
599
The use of 'good/bad' in "git bisect" made it confusing to use when
600
hunting for a state change that is not a regression (e.g. bugfix).
@@ -442,715 +781,326 @@ of the repositories listed at
781
--------------------------------------------------
782
[Cooking]
783
445
-* da/subtree-date-confusion (2015-07-23) 1 commit
446
- (merged to 'next' on 2015-07-29 at 01016b1)
447
- + contrib/subtree: ignore log.date configuration
784
+* dt/reflog-tests (2015-07-28) 2 commits
785
+ (merged to 'next' on 2015-08-03 at 9d2fa1a)
786
+ + tests: remove some direct access to .git/logs
787
+ + t/t7509: remove unnecessary manipulation of reflog
788
449
- "git subtree" (in contrib/) depended on "git log" output to be
450
- stable, which was a no-no. Apply a workaround to force a
451
- particular date format.
452
-
453
- Will merge to 'master'.
454
-
455
-
456
-* db/send-pack-user-signingkey (2015-07-21) 1 commit
457
- (merged to 'next' on 2015-07-29 at b0d62e9)
458
- + builtin/send-pack.c: respect user.signingkey
459
-
460
- The low-level "git send-pack" did not honor 'user.signingkey'
461
- configuration variable when sending a signed-push.
462
-
463
- Will merge to 'master'.
464
-
465
-
466
-* jk/refspec-parse-wildcard (2015-07-27) 2 commits
467
- (merged to 'next' on 2015-07-29 at eb48d2f)
468
- + refs: loosen restriction on wildcard "*" refspecs
469
- + refs: cleanup comments regarding check_refname_component()
470
-
471
- Allow an asterisk as a substring (as opposed to the entirety) of
472
- a path component for both side of a refspec, e.g.
473
- "refs/heads/o*:refs/remotes/heads/i*".
474
-
475
- Will merge to 'master'.
476
-
477
-
478
-* jx/do-not-crash-receive-pack-wo-head (2015-07-22) 1 commit
479
- (merged to 'next' on 2015-07-29 at 227d0d9)
480
- + receive-pack: crash when checking with non-exist HEAD
481
-
482
- Will merge to 'master'.
483
-
484
-
485
-* kd/pull-rebase-autostash (2015-07-22) 1 commit
486
- - pull: allow dirty tree when rebase.autostash enabled
487
- (this branch uses pt/pull-builtin; is tangled with pt/am-builtin and pt/am-builtin-fix.)
488
-
489
- Teach "git pull --rebase" to pay attention to rebase.autostash
490
- configuration.
491
-
492
- Will hold until the dependant topics graduates and then rebase to
493
- 'master' after that.
494
-
495
-
496
-* es/doc-clean-outdated-tools (2015-07-28) 5 commits
497
- (merged to 'next' on 2015-07-29 at 6d80251)
498
- + Documentation/git-tools: retire manually-maintained list
499
- + Documentation/git-tools: drop references to defunct tools
500
- + Documentation/git-tools: fix item text formatting
501
- + Documentation/git-tools: improve discoverability of Git wiki
502
- + Documentation/git: drop outdated Cogito reference
503
-
504
- Will merge to 'master'.
505
-
506
-
507
-* zb/userdiff-fountain (2015-07-23) 1 commit
508
- (merged to 'next' on 2015-07-23 at e177995)
509
- + userdiff: add support for Fountain documents
510
-
511
- New userdiff pattern definition for fountain screenwriting markup
512
- format.
513
-
514
- Will merge to 'master'.
515
-
516
-
517
-* as/sparse-checkout-removal (2015-07-21) 1 commit
518
- (merged to 'next' on 2015-07-21 at ab94680)
519
- + unpack-trees: don't update files with CE_WT_REMOVE set
520
-
521
- "sparse checkout" misbehaved for a path that is excluded from the
522
- checkout when switching between branches that differ at the path.
523
-
524
- Will merge to 'master'.
525
-
526
-
527
-* cb/uname-in-untracked (2015-07-17) 1 commit
528
- (merged to 'next' on 2015-07-21 at d867af0)
529
- + untracked: fix detection of uname(2) failure
530
-
531
- An experimental "untracked cache" feature used uname(2) in a
532
- slightly unportable way.
533
-
534
- Will merge to 'master'.
535
-
536
-
537
-* bw/portability-solaris (2015-07-20) 3 commits
538
- - tests: fix sed usage in tests to work around broken xpg4/sed on Solaris
539
- - tests: fix sed usage in tests to work around broken xpg4/sed on Solaris
540
- - tests: modify tr expressions so that xpg4/tr handles it on Solaris
541
-
542
- Needs another reroll? ($gmane/274296)
543
-
544
-
545
-* es/worktree-add (2015-07-20) 5 commits
546
- (merged to 'next' on 2015-07-20 at 76e840b)
547
- + config: rename "gc.pruneWorktreesExpire" to "gc.worktreePruneExpire"
548
- + Documentation/git-worktree: wordsmith worktree-related manpages
549
- + Documentation/config: fix stale "git prune --worktree" reference
550
- + Documentation/git-worktree: fix incorrect reference to file "locked"
551
- + Documentation/git-worktree: consistently use term "linked working tree"
552
- (this branch is used by dt/notes-multiple and es/worktree-add-cleanup.)
553
-
554
- Will merge to 'master'.
555
-
556
-
557
-* sg/bash-prompt-untracked-optim (2015-07-20) 2 commits
558
- (merged to 'next' on 2015-07-21 at e151fb7)
559
- + bash prompt: faster untracked status indicator with untracked directories
560
- + bash prompt: test untracked files status indicator with untracked dirs
561
-
562
- Will merge to 'master'.
563
-
564
-
565
-* es/worktree-add-cleanup (2015-07-28) 24 commits
566
- (merged to 'next' on 2015-07-29 at d2dd004)
567
- + Documentation/config: mention "now" and "never" for 'expire' settings
568
- (merged to 'next' on 2015-07-27 at 25f086d)
569
- + Documentation/git-worktree: fix broken 'linkgit' invocation
570
- (merged to 'next' on 2015-07-23 at ecb1e1a)
571
- + checkout: drop intimate knowledge of newly created worktree
572
- + worktree: populate via "git reset --hard" rather than "git checkout"
573
- + worktree: avoid resolving HEAD unnecessarily
574
- + worktree: make setup of new HEAD distinct from worktree population
575
- + worktree: detect branch-name/detached and error conditions locally
576
- + worktree: add_worktree: construct worktree-population command locally
577
- + worktree: elucidate environment variables intended for child processes
578
- + worktree: make branch creation distinct from worktree population
579
- + worktree: add: suppress auto-vivication with --detach and no <branch>
580
- + worktree: make --detach mutually exclusive with -b/-B
581
- + worktree: introduce options container
582
- + worktree: simplify new branch (-b/-B) option checking
583
- + worktree: improve worktree setup message
584
- + branch: publish die_if_checked_out()
585
- + checkout: teach check_linked_checkout() about symbolic link HEAD
586
- + checkout: check_linked_checkout: simplify symref parsing
587
- + checkout: check_linked_checkout: improve "already checked out" aesthetic
588
- + checkout: generalize die_if_checked_out() branch name argument
589
- + checkout: die_if_checked_out: simplify strbuf management
590
- + checkout: improve die_if_checked_out() robustness
591
- + checkout: name check_linked_checkouts() more meaningfully
592
- + checkout: avoid resolving HEAD unnecessarily
593
- (this branch is used by dt/notes-multiple; uses es/worktree-add.)
594
-
595
- Remove the "new-worktree-mode" hack in "checkout" that was added in
596
- nd/multiple-work-trees topic by updating the implementation of new
597
- "worktree add".
789
+ Tests that assume how reflogs are represented on the filesystem too
790
+ much have been corrected.
791
792
Will merge to 'master'.
793
794
602
-* ib/scripted-parse-opt-better-hint-string (2015-07-15) 1 commit
603
- (merged to 'next' on 2015-07-17 at 7bb1674)
604
- + rev-parse --parseopt: allow [*=?!] in argument hints
605
-
606
- The "rev-parse --parseopt" mode parsed the option specification
607
- and the argument hint in a strange way to allow '=' and other
608
- special characters in the option name while forbidding them from
609
- the argument hint. This made it impossible to define an option
610
- like "--pair <key>=<value>" with "pair=key=value" specification,
611
- which instead would have defined a "--pair=key <value>" option.
612
-
613
- Will merge to 'master'.
614
-
615
-
616
-* mh/fast-import-optimize-current-from (2015-07-13) 1 commit
617
- (merged to 'next' on 2015-07-15 at 2be8b1f)
618
- + fast-import: do less work when given "from" matches current branch head
619
-
620
- Often a fast-import stream builds a new commit on top of the
621
- previous commit it built, and it often unconditionally emits a
622
- "from" command to specify the first parent, which can be omitted in
623
- such a case. This caused fast-import to forget the tree of the
624
- previous commit and then re-read it from scratch, which was
625
- inefficient. Optimize for this common case.
626
-
627
- Will merge to 'master'.
628
-
629
-
630
-* dt/log-follow-config (2015-07-09) 1 commit
631
- (merged to 'next' on 2015-07-10 at b8fbb43)
632
- + log: add "log.follow" configuration variable
633
-
634
- Add a new configuration variable to enable "--follow" automatically
635
- when "git log" is run with one pathspec argument.
636
-
637
- Will merge to 'master'.
638
-
639
-
640
-* kn/tag-doc-fix (2015-07-10) 1 commit
641
- (merged to 'next' on 2015-07-15 at 7bd6038)
642
- + Documentation/tag: remove double occurance of "<pattern>"
643
-
644
- Will merge to 'master'.
645
-
646
-
647
-* se/doc-checkout-ours-theirs (2015-07-12) 1 commit
648
- (merged to 'next' on 2015-07-21 at 5275f04)
649
- + checkout: document subtlety around --ours/--theirs
650
-
651
- A "rebase" replays changes of the local branch on top of something
652
- else, as such they are placed in stage #3 and referred to as
653
- "theirs", while the changes in the new base, typically a foreign
654
- work, are placed in stage #2 and referred to as "ours". Clarify
655
- the "checkout --ours/--theirs".
656
-
657
- Will merge to 'master'.
658
-
659
-
660
-* pt/am-tests (2015-07-20) 12 commits
661
- (merged to 'next' on 2015-07-21 at 8d3d5f4)
662
- + t3901: test git-am encoding conversion
663
- + t3418: non-interactive rebase --continue with rerere enabled
664
- + t4150: tests for am --[no-]scissors
665
- + t4150: am with post-applypatch hook
666
- + t4150: am with pre-applypatch hook
667
- + t4150: am with applypatch-msg hook
668
- + t4150: am --resolved fails if index has unmerged entries
669
- + t4150: am --resolved fails if index has no changes
670
- + t4150: am refuses patches when paused
671
- + t4151: am --abort will keep dirty index intact
672
- + t4150: am fails if index is dirty
673
- + t4150: am.messageid really adds the message id
674
-
675
- Will merge to 'master'.
676
-
677
-
678
-* kn/for-each-tag-branch (2015-07-13) 11 commits
679
- (merged to 'next' on 2015-07-15 at bf5418f)
680
- + for-each-ref: add '--contains' option
681
- + ref-filter: implement '--contains' option
682
- + parse-options.h: add macros for '--contains' option
683
- + parse-option: rename parse_opt_with_commit()
684
- + for-each-ref: add '--merged' and '--no-merged' options
685
- + ref-filter: implement '--merged' and '--no-merged' options
686
- + ref-filter: add parse_opt_merge_filter()
687
- + for-each-ref: add '--points-at' option
688
- + ref-filter: implement '--points-at' option
689
- + tag: libify parse_opt_points_at()
690
- + t6302: for-each-ref tests for ref-filter APIs
691
- (this branch uses kn/for-each-ref; is tangled with mm/for-each-ref-fixup.)
692
-
693
- Port features over from tag -l and branch -l to for-each-ref
694
- so that eventually the unified implementation can be used to
695
- reimplement tag -l and branch -l, shared across all three, in
696
- a follow-up series or two.
697
-
698
- Squash mm/for-each-ref-fixup into "move code from 'for-each-ref',
699
- and then keep in 'next'.
700
-
701
-
702
-* pt/am-builtin (2015-07-20) 46 commits
703
- (merged to 'next' on 2015-07-23 at d5075f0)
704
- + builtin-am: remove redirection to git-am.sh
705
- + builtin-am: check for valid committer ident
706
- + builtin-am: implement legacy -b/--binary option
707
- + builtin-am: implement -i/--interactive
708
- + builtin-am: support and auto-detect mercurial patches
709
- + builtin-am: support and auto-detect StGit series files
710
- + builtin-am: support and auto-detect StGit patches
711
- + builtin-am: rerere support
712
- + builtin-am: invoke post-applypatch hook
713
- + builtin-am: invoke pre-applypatch hook
714
- + builtin-am: invoke applypatch-msg hook
715
- + builtin-am: support automatic notes copying
716
- + builtin-am: invoke post-rewrite hook
717
- + builtin-am: implement -S/--gpg-sign, commit.gpgsign
718
- + builtin-am: implement --committer-date-is-author-date
719
- + builtin-am: implement --ignore-date
720
- + builtin-am: pass git-apply's options to git-apply
721
- + builtin-am: implement --[no-]scissors
722
- + builtin-am: support --keep-cr, am.keepcr
723
- + builtin-am: implement --[no-]message-id, am.messageid
724
- + builtin-am: implement -k/--keep, --keep-non-patch
725
- + builtin-am: implement -u/--utf8
726
- + builtin-am: handle stray state directory
727
- + builtin-am: bypass git-mailinfo when --rebasing
728
- + builtin-am: implement --rebasing mode
729
- + builtin-am: implement --3way, am.threeWay
730
- + cache-tree: introduce write_index_as_tree()
731
- + builtin-am: implement -s/--signoff
732
- + builtin-am: exit with user friendly message on failure
733
- + builtin-am: implement -q/--quiet
734
- + builtin-am: reject patches when there's a session in progress
735
- + builtin-am: implement --abort
736
- + builtin-am: implement --skip
737
- + builtin-am: don't parse mail when resuming
738
- + builtin-am: implement --resolved/--continue
739
- + builtin-am: refuse to apply patches if index is dirty
740
- + builtin-am: implement committing applied patch
741
- + builtin-am: apply patch with git-apply
742
- + builtin-am: extract patch and commit info with git-mailinfo
743
- + builtin-am: auto-detect mbox patches
744
- + builtin-am: split out mbox/maildir patches with git-mailsplit
745
- + builtin-am: implement patch queue mechanism
746
- + builtin-am: implement skeletal builtin am
747
- + wrapper: implement xfopen()
748
- + wrapper: implement xopen()
749
- + Merge branch 'pt/pull-builtin' into pt/am-builtin
750
- (this branch is used by pt/am-builtin-fix; uses pt/pull-builtin; is tangled with kd/pull-rebase-autostash.)
751
-
752
- Rewrite "am" in "C".
753
-
754
- Almost there.
755
-
756
-
757
-* ad/bisect-cleanup (2015-06-29) 6 commits
758
- (merged to 'next' on 2015-07-09 at 75e2a06)
759
- + bisect: don't mix option parsing and non-trivial code
760
- + bisect: simplify the addition of new bisect terms
761
- + bisect: replace hardcoded "bad|good" by variables
762
- + Documentation/bisect: revise overall content
763
- + Documentation/bisect: move getting help section to the end
764
- + bisect: correction of typo
765
- (this branch is used by ad/bisect-terms and rj/bisect-terms-fixup.)
766
-
767
- Code and documentation clean-up to "git bisect".
768
-
769
- Will squash rj/bisect-terms-fixup in and rebuild 'next'.
770
-
771
-
772
-* mh/fast-import-get-mark (2015-07-01) 1 commit
773
- (merged to 'next' on 2015-07-15 at 5e034b9)
774
- + fast-import: add a get-mark command
775
-
776
- Will merge to 'master'.
777
-
778
-
779
-* kb/i18n-doc (2015-07-01) 1 commit
780
- (merged to 'next' on 2015-07-09 at a12c7b3)
781
- + Documentation/i18n.txt: clarify character encoding support
782
-
783
- Will merge to 'master'.
784
-
785
-
786
-* dt/refs-backend-preamble (2015-07-21) 7 commits
787
- (merged to 'next' on 2015-07-23 at 9dac423)
788
- + git-stash: use update-ref --create-reflog instead of creating files
789
- + update-ref and tag: add --create-reflog arg
790
- + refs: add REF_FORCE_CREATE_REFLOG flag
791
- + git-reflog: add exists command
792
- + refs: new public ref function: safe_create_reflog
793
- + refs: break out check for reflog autocreation
794
- + refs.c: add err arguments to reflog functions
795
- (this branch is used by dt/refs-pseudo.)
796
-
797
- In preparation for allowing different "backends" to store the refs
798
- in a way different from the traditional "one ref per file in $GIT_DIR
799
- or in a $GIT_DIR/packed-refs file" filesystem storage, reduce
800
- direct filesystem access to ref-like things like CHERRY_PICK_HEAD
801
- from scripts and programs.
802
-
803
- Will merge to 'master'.
804
-
805
-
806
-* jk/date-mode-format (2015-07-20) 4 commits
807
- (merged to 'next' on 2015-07-21 at 69f66be)
808
- + strbuf: make strbuf_addftime more robust
809
- (merged to 'next' on 2015-07-09 at a01bfc3)
810
- + introduce "format" date-mode
811
- + convert "enum date_mode" into a struct
812
- + show-branch: use DATE_RELATIVE instead of magic number
813
-
814
- Teach "git log" and friends a new "--date=format:..." option to
815
- format timestamps using system's strftime(3).
816
-
817
- Will merge to 'master'.
818
-
795
+* dt/unpack-trees-cache-tree-revalidate (2015-07-28) 1 commit
796
+ (merged to 'next' on 2015-08-03 at 5b0d620)
797
+ + unpack-trees: populate cache-tree on successful merge
798
820
-* nd/export-worktree (2015-06-26) 1 commit
821
- (merged to 'next' on 2015-07-09 at 1581a9b)
822
- + setup: set env $GIT_WORK_TREE when work tree is set, like $GIT_DIR
799
+ The code to perform multi-tree merges has been taught to repopulate
800
+ the cache-tree upon a successful merge into the index, so that
801
+ subsequent "diff-index --cached" (hence "status") and "write-tree"
802
+ (hence "commit") will go faster.
803
824
- Running an aliased command from a subdirectory when the .git thing
825
- in the working tree is a gitfile pointing elsewhere did not work.
804
+ The same logic in "git checkout" may now be removed, but that is a
805
+ separate issue.
806
807
Will merge to 'master'.
808
809
830
-* jc/rerere (2015-07-30) 21 commits
831
- - rerere: un-nest merge() further
832
- - rerere: use "struct rerere_id" instead of "char *" for conflict ID
833
- - rerere: call conflict-ids IDs
834
- - rerere: further clarify do_rerere_one_path()
835
- - rerere: further de-dent do_plain_rerere()
836
- - rerere: refactor "replay" part of do_plain_rerere()
837
- - rerere: explain the remainder
838
- - rerere: explain "rerere forget" codepath
839
- - rerere: explain the primary codepath
840
- - rerere: explain MERGE_RR management helpers
841
- - rerere: fix benign off-by-one non-bug and clarify code
842
- - rerere: explain the rerere I/O abstraction
843
- - rerere: do not leak mmfile[] for a path with multiple stage #1 entries
844
- - rerere: stop looping unnecessarily
845
- - rerere: drop want_sp parameter from is_cmarker()
846
- - rerere: report autoupdated paths only after actually updating them
847
- - rerere: write out each record of MERGE_RR in one go
848
- - rerere: lift PATH_MAX limitation
849
- - rerere: plug conflict ID leaks
850
- - rerere: handle conflicts with multiple stage #1 entries
851
- - rerere: fix an off-by-one non-bug
852
- (this branch is used by jc/rerere-multi.)
853
-
854
- Code clean-up and minor fixes (so far).
855
-
856
-
857
-* jc/rerere-multi (2015-07-31) 8 commits
858
- . WIP
859
- . t4200: rerere a merge with two identical conflicts
860
- . fixup! rerere: allow multiple variants to exist
861
- . rerere: allow multiple variants to exist
862
- - rerere: delay the recording of preimage
863
- - rerere: handle leftover rr-cache/$ID directory and postimage files
864
- - rerere: scan $GIT_DIR/rr-cache/$ID when instantiating a rerere_id
865
- - rerere: split conflict ID further
866
- (this branch uses jc/rerere.)
867
-
868
- This is a contination of jc/rerere topic.
869
-
870
-
871
-* js/fsck-opt (2015-06-23) 19 commits
872
- (merged to 'next' on 2015-07-10 at eb4da0a)
873
- + fsck: support ignoring objects in `git fsck` via fsck.skiplist
874
- + fsck: git receive-pack: support excluding objects from fsck'ing
875
- + fsck: introduce `git fsck --connectivity-only`
876
- + fsck: support demoting errors to warnings
877
- + fsck: document the new receive.fsck.<msg-id> options
878
- + fsck: allow upgrading fsck warnings to errors
879
- + fsck: optionally ignore specific fsck issues completely
880
- + fsck: disallow demoting grave fsck errors to warnings
881
- + fsck: add a simple test for receive.fsck.<msg-id>
882
- + fsck: make fsck_tag() warn-friendly
883
- + fsck: handle multiple authors in commits specially
884
- + fsck: make fsck_commit() warn-friendly
885
- + fsck: make fsck_ident() warn-friendly
886
- + fsck: report the ID of the error/warning
887
- + fsck (receive-pack): allow demoting errors to warnings
888
- + fsck: offer a function to demote fsck errors to warnings
889
- + fsck: provide a function to parse fsck message IDs
890
- + fsck: introduce identifiers for fsck messages
891
- + fsck: introduce fsck options
892
-
893
- Allow ignoring fsck errors on specific set of known-to-be-bad
894
- objects, and also tweaking warning level of various kinds of non
895
- critical breakages reported.
896
-
897
- Will merge to 'master'.
810
+* jk/negative-hiderefs (2015-07-28) 2 commits
811
+ - refs: support negative transfer.hideRefs
812
+ - docs/config.txt: reorder hideRefs config
813
814
+ Allow negative !ref entry in multi-value transfer.hideRefs
815
+ configuration to say "don't hide this one".
816
900
-* bc/gpg-verify-raw (2015-06-22) 7 commits
901
- (merged to 'next' on 2015-06-24 at 08a1164)
902
- + verify-tag: add option to print raw gpg status information
903
- + verify-commit: add option to print raw gpg status information
904
- + gpg: centralize printing signature buffers
905
- + gpg: centralize signature check
906
- + verify-commit: add test for exit status on untrusted signature
907
- + verify-tag: share code with verify-commit
908
- + verify-tag: add tests
817
+ An update to test coming?
818
910
- "git verify-tag" and "git verify-commit" have been taught to share
911
- more code, and then learned to optionally show the verification
912
- message from the underlying GPG implementation.
819
914
- Will merge to 'master'.
820
+* mh/get-remote-group-fix (2015-07-28) 4 commits
821
+ - get_remote_group(): use skip_prefix()
822
+ - get_remote_group(): eliminate superfluous call to strcspn()
823
+ - get_remote_group(): rename local variable "space" to "wordlen"
824
+ - get_remote_group(): handle remotes with single-character names
825
826
+ An off-by-one error made "git remote" to mishandle a remote with a
827
+ single letter nickname.
828
917
-* cb/parse-magnitude (2015-06-22) 2 commits
918
- (merged to 'next' on 2015-06-24 at 2fd7205)
919
- + parse-options: move unsigned long option parsing out of pack-objects.c
920
- + test-parse-options: update to handle negative ints
829
+ Will merge to 'next'.
830
922
- Move machinery to parse human-readable scaled numbers like 1k, 4M,
923
- and 2G as an option parameter's value from pack-objects to
924
- parse-options API, to make it available to other codepaths.
831
926
- Will merge to 'master'.
832
+* ta/docfix-index-format-tech (2015-07-28) 1 commit
833
+ - typofix for index-format.txt
834
835
+ Will merge to 'next'.
836
929
-* jk/cat-file-batch-all (2015-06-26) 8 commits
930
- (merged to 'next' on 2015-07-10 at 80200cc)
931
- + cat-file: sort and de-dup output of --batch-all-objects
932
- + cat-file: add --batch-all-objects option
933
- + cat-file: split batch_one_object into two stages
934
- + cat-file: stop returning value from batch_one_object
935
- + cat-file: add --buffer option
936
- + cat-file: move batch_options definition to top of file
937
- + cat-file: minor style fix in options list
938
- + Merge branch 'jk/maint-for-each-packed-object' into jk/cat-file-batch-all
837
940
- "cat-file" learned "--batch-all-objects" option to enumerate all
941
- available objects in the repository more quickly than "rev-list
942
- --all --objects" (the output includes unreachable objects, though).
838
+* dt/notes-multiple (2015-08-03) 2 commits
839
+ - notes: handle multiple worktrees
840
+ - worktrees: add find_shared_symref
841
+ (this branch uses es/worktree-add and es/worktree-add-cleanup.)
842
944
- Will merge to 'master'.
843
+ Forbid simultaneous "notes merge" to happen for the same ref in
844
+ refs/notes/* when linked worktree is used.
845
846
947
-* jk/pkt-log-pack (2015-06-16) 3 commits
948
- (merged to 'next' on 2015-07-10 at ba33212)
949
- + pkt-line: support tracing verbatim pack contents
950
- + pkt-line: tighten sideband PACK check when tracing
951
- + pkt-line: simplify starts_with checks in packet tracing
847
+* dt/refs-pseudo (2015-07-31) 5 commits
848
+ (merged to 'next' on 2015-08-03 at 3eafd33)
849
+ + sequencer: replace write_cherry_pick_head with update_ref
850
+ + bisect: use update_ref
851
+ + pseudorefs: create and use pseudoref update and delete functions
852
+ + refs: add ref_type function
853
+ + refs: introduce pseudoref and per-worktree ref concepts
854
953
- Enhance packet tracing machinery to allow capturing an incoming
954
- pack data to a file for debugging.
855
+ To prepare for allowing a different "ref" backend to be plugged in
856
+ to the system, update_ref()/delete_ref() have been taught about
857
+ ref-like things like MERGE_HEAD that are per-worktree (they will
858
+ always be written to the filesystem inside $GIT_DIR).
859
860
Will merge to 'master'.
861
862
959
-* kn/for-each-ref (2015-06-15) 11 commits
960
- (merged to 'next' on 2015-06-24 at 1a3a734)
961
- + ref-filter: make 'ref_array_item' use a FLEX_ARRAY for refname
962
- + for-each-ref: introduce filter_refs()
963
- + ref-filter: move code from 'for-each-ref'
964
- + ref-filter: add 'ref-filter.h'
965
- + for-each-ref: rename variables called sort to sorting
966
- + for-each-ref: rename some functions and make them public
967
- + for-each-ref: introduce 'ref_array_clear()'
968
- + for-each-ref: introduce new structures for better organisation
969
- + for-each-ref: rename 'refinfo' to 'ref_array_item'
970
- + for-each-ref: clean up code
971
- + for-each-ref: extract helper functions out of grab_single_ref()
972
- (this branch is used by kn/for-each-tag-branch and mm/for-each-ref-fixup.)
973
-
974
- GSoC project to rebuild ref listing by branch and tag based on the
975
- for-each-ref machinery. This is its first part.
863
+* dt/untracked-sparse (2015-07-31) 1 commit
864
+ - untracked-cache: support sparse checkout
865
977
- Will merge to 'master'.
866
+ Allow untracked cache (experimental) to be used when sparse
867
+ checkout (experimental) is also in use.
868
869
980
-* mh/init-delete-refs-api (2015-06-22) 19 commits
981
- (merged to 'next' on 2015-07-10 at 121b26e)
982
- + delete_ref(): use the usual convention for old_sha1
983
- + cmd_update_ref(): make logic more straightforward
984
- + update_ref(): don't read old reference value before delete
985
- + check_branch_commit(): make first parameter const
986
- + refs.h: add some parameter names to function declarations
987
- + refs: move the remaining ref module declarations to refs.h
988
- + initial_ref_transaction_commit(): check for ref D/F conflicts
989
- + initial_ref_transaction_commit(): check for duplicate refs
990
- + refs: remove some functions from the module's public interface
991
- + initial_ref_transaction_commit(): function for initial ref creation
992
- + repack_without_refs(): make function private
993
- + prune_refs(): use delete_refs()
994
- + prune_remote(): use delete_refs()
995
- + delete_refs(): bail early if the packed-refs file cannot be rewritten
996
- + delete_refs(): make error message more generic
997
- + delete_refs(): new function for the refs API
998
- + delete_ref(): handle special case more explicitly
999
- + remove_branches(): remove temporary
1000
- + delete_ref(): move declaration to refs.h
870
+* pt/am-builtin-fix (2015-07-28) 1 commit
871
+ - am: let command-line options override saved options
872
+ (this branch uses pt/am-builtin.)
873
1002
- Clean up refs API and make "git clone" less intimate with the
1003
- implementation detail.
874
+ With "git am --options" followed by "git am --other-options", the
875
+ options given in a later invocation should override the initial
876
+ options for a single invocation, but the rewritten "git am" didn't.
877
1005
- Will merge to 'master'.
878
+ Will merge into pt/am-builtin topic.
879
880
+ Expecting a reroll.
881
1008
-* mh/replace-refs (2015-06-12) 1 commit
1009
- (merged to 'next' on 2015-06-24 at cb13adf)
1010
- + Allow to control where the replace refs are looked for
882
1012
- Add an environment variable to tell Git to look into refs hierarchy
1013
- other than refs/replace/ for the object replacement data.
883
+* sb/parse-options-codeformat (2015-07-29) 1 commit
884
+ (merged to 'next' on 2015-08-03 at f81993b)
885
+ + parse-options: align curly braces for all options
886
887
Will merge to 'master'.
888
889
1018
-* gp/status-rebase-i-info (2015-07-06) 4 commits
1019
- (merged to 'next' on 2015-07-10 at b121298)
1020
- + status: add new tests for status during rebase -i
1021
- + status: give more information during rebase -i
1022
- + status: differentiate interactive from non-interactive rebases
1023
- + status: factor two rebase-related messages together
1024
-
1025
- Teach "git status" to show a more detailed information regarding
1026
- the "rebase -i" session in progress.
890
+* sb/remove-unused-var-from-builtin-add (2015-07-31) 1 commit
891
+ (merged to 'next' on 2015-08-03 at f5e568e)
892
+ + add: remove dead code
893
894
Will merge to 'master'.
895
896
1031
-* mr/rebase-i-customize-insn-sheet (2015-06-15) 1 commit
1032
- (merged to 'next' on 2015-07-10 at ec383cd)
1033
- + git-rebase--interactive.sh: add config option for custom instruction format
897
+* kd/pull-rebase-autostash (2015-07-22) 1 commit
898
+ - pull: allow dirty tree when rebase.autostash enabled
899
1035
- "git rebase -i"'s list of todo is made configurable.
900
+ Teach "git pull --rebase" to pay attention to rebase.autostash
901
+ configuration.
902
1037
- Will merge to 'master'.
903
+ Will merge to 'next'.
904
905
1040
-* pt/am-foreign (2015-06-15) 5 commits
1041
- (merged to 'next' on 2015-06-24 at 838c702)
1042
- + am: teach mercurial patch parser how to read from stdin
1043
- + am: use gmtime() to parse mercurial patch date
1044
- + t4150: test applying StGit series
1045
- + am: teach StGit patch parser how to read from stdin
1046
- + t4150: test applying StGit patch
906
+* es/worktree-add (2015-07-20) 5 commits
907
+ (merged to 'next' on 2015-08-03 at 9771a44)
908
+ + config: rename "gc.pruneWorktreesExpire" to "gc.worktreePruneExpire"
909
+ + Documentation/git-worktree: wordsmith worktree-related manpages
910
+ + Documentation/config: fix stale "git prune --worktree" reference
911
+ + Documentation/git-worktree: fix incorrect reference to file "locked"
912
+ + Documentation/git-worktree: consistently use term "linked working tree"
913
+ (this branch is used by dt/notes-multiple and es/worktree-add-cleanup.)
914
1048
- Various enhancements around "git am" reading patches generated by
1049
- foreign SCM.
915
+ Originally merged to 'next' on 2015-07-20
916
+
917
+ Remove remaining cruft from "git checkout --to", which
918
+ transitioned to "git worktree add".
919
920
Will merge to 'master'.
921
922
1054
-* pt/pull-builtin (2015-06-18) 19 commits
1055
- (merged to 'next' on 2015-07-10 at 07b1794)
1056
- + pull: remove redirection to git-pull.sh
1057
- + pull --rebase: error on no merge candidate cases
1058
- + pull --rebase: exit early when the working directory is dirty
1059
- + pull: configure --rebase via branch.<name>.rebase or pull.rebase
1060
- + pull: teach git pull about --rebase
1061
- + pull: set reflog message
1062
- + pull: implement pulling into an unborn branch
1063
- + pull: fast-forward working tree if head is updated
1064
- + pull: check if in unresolved merge state
1065
- + pull: support pull.ff config
1066
- + pull: error on no merge candidates
1067
- + pull: pass git-fetch's options to git-fetch
1068
- + pull: pass git-merge's options to git-merge
1069
- + pull: pass verbosity, --progress flags to fetch and merge
1070
- + pull: implement fetch + merge
1071
- + pull: implement skeletal builtin pull
1072
- + argv-array: implement argv_array_pushv()
1073
- + parse-options-cb: implement parse_opt_passthru_argv()
1074
- + parse-options-cb: implement parse_opt_passthru()
1075
- (this branch is used by kd/pull-rebase-autostash, pt/am-builtin and pt/am-builtin-fix.)
923
+* es/worktree-add-cleanup (2015-07-28) 24 commits
924
+ - Documentation/config: mention "now" and "never" for 'expire' settings
925
+ - Documentation/git-worktree: fix broken 'linkgit' invocation
926
+ - checkout: drop intimate knowledge of newly created worktree
927
+ - worktree: populate via "git reset --hard" rather than "git checkout"
928
+ - worktree: avoid resolving HEAD unnecessarily
929
+ - worktree: make setup of new HEAD distinct from worktree population
930
+ - worktree: detect branch-name/detached and error conditions locally
931
+ - worktree: add_worktree: construct worktree-population command locally
932
+ - worktree: elucidate environment variables intended for child processes
933
+ - worktree: make branch creation distinct from worktree population
934
+ - worktree: add: suppress auto-vivication with --detach and no <branch>
935
+ - worktree: make --detach mutually exclusive with -b/-B
936
+ - worktree: introduce options container
937
+ - worktree: simplify new branch (-b/-B) option checking
938
+ - worktree: improve worktree setup message
939
+ - branch: publish die_if_checked_out()
940
+ - checkout: teach check_linked_checkout() about symbolic link HEAD
941
+ - checkout: check_linked_checkout: simplify symref parsing
942
+ - checkout: check_linked_checkout: improve "already checked out" aesthetic
943
+ - checkout: generalize die_if_checked_out() branch name argument
944
+ - checkout: die_if_checked_out: simplify strbuf management
945
+ - checkout: improve die_if_checked_out() robustness
946
+ - checkout: name check_linked_checkouts() more meaningfully
947
+ - checkout: avoid resolving HEAD unnecessarily
948
+ (this branch is used by dt/notes-multiple; uses es/worktree-add.)
949
1077
- Reimplement 'git pull' in C.
950
+ Originally merged to 'next' on 2015-07-29
951
+
952
+ Remove the "new-worktree-mode" hack in "checkout" that was added in
953
+ nd/multiple-work-trees topic by updating the implementation of new
954
+ "worktree add".
955
956
Will merge to 'master'.
957
958
1082
-* rl/send-email-aliases (2015-07-07) 10 commits
1083
- (merged to 'next' on 2015-07-09 at c60553d)
1084
- + send-email: suppress meaningless whitespaces in from field
1085
- + send-email: allow multiple emails using --cc, --to and --bcc
1086
- + send-email: consider quote as delimiter instead of character
1087
- + send-email: reduce dependencies impact on parse_address_line
1088
- + send-email: minor code refactoring
1089
- + send-email: allow use of aliases in the From field of --compose mode
1090
- + send-email: refactor address list process
1091
- + t9001-send-email: refactor header variable fields replacement
1092
- + send-email: allow aliases in patch header and command script outputs
1093
- + t9001-send-email: move script creation in a setup test
959
+* kn/for-each-tag-branch (2015-08-03) 11 commits
960
+ (merged to 'next' on 2015-08-03 at d9e94b9)
961
+ + for-each-ref: add '--contains' option
962
+ + ref-filter: implement '--contains' option
963
+ + parse-options.h: add macros for '--contains' option
964
+ + parse-option: rename parse_opt_with_commit()
965
+ + for-each-ref: add '--merged' and '--no-merged' options
966
+ + ref-filter: implement '--merged' and '--no-merged' options
967
+ + ref-filter: add parse_opt_merge_filter()
968
+ + for-each-ref: add '--points-at' option
969
+ + ref-filter: implement '--points-at' option
970
+ + tag: libify parse_opt_points_at()
971
+ + t6302: for-each-ref tests for ref-filter APIs
972
1095
- "git send-email" now performs alias-expansion on names that are
1096
- given via --cccmd, etc.
973
+ Originally merged to 'next' on 2015-07-15
974
1098
- This round comes with a lot more enhanced e-mail address parser,
1099
- which makes it a bit scary, but as long as it works as designed, it
1100
- makes it wonderful ;-).
975
+ Some features from "git tag -l" and "git branch -l" have been made
976
+ available to "git for-each-ref" so that eventually the unified
977
+ implementation can be shared across all three, in a follow-up
978
+ series or two.
979
1102
- Will merge to 'master'.
980
981
+* pt/am-builtin (2015-07-20) 46 commits
982
+ - builtin-am: remove redirection to git-am.sh
983
+ - builtin-am: check for valid committer ident
984
+ - builtin-am: implement legacy -b/--binary option
985
+ - builtin-am: implement -i/--interactive
986
+ - builtin-am: support and auto-detect mercurial patches
987
+ - builtin-am: support and auto-detect StGit series files
988
+ - builtin-am: support and auto-detect StGit patches
989
+ - builtin-am: rerere support
990
+ - builtin-am: invoke post-applypatch hook
991
+ - builtin-am: invoke pre-applypatch hook
992
+ - builtin-am: invoke applypatch-msg hook
993
+ - builtin-am: support automatic notes copying
994
+ - builtin-am: invoke post-rewrite hook
995
+ - builtin-am: implement -S/--gpg-sign, commit.gpgsign
996
+ - builtin-am: implement --committer-date-is-author-date
997
+ - builtin-am: implement --ignore-date
998
+ - builtin-am: pass git-apply's options to git-apply
999
+ - builtin-am: implement --[no-]scissors
1000
+ - builtin-am: support --keep-cr, am.keepcr
1001
+ - builtin-am: implement --[no-]message-id, am.messageid
1002
+ - builtin-am: implement -k/--keep, --keep-non-patch
1003
+ - builtin-am: implement -u/--utf8
1004
+ - builtin-am: handle stray state directory
1005
+ - builtin-am: bypass git-mailinfo when --rebasing
1006
+ - builtin-am: implement --rebasing mode
1007
+ - builtin-am: implement --3way, am.threeWay
1008
+ - cache-tree: introduce write_index_as_tree()
1009
+ - builtin-am: implement -s/--signoff
1010
+ - builtin-am: exit with user friendly message on failure
1011
+ - builtin-am: implement -q/--quiet
1012
+ - builtin-am: reject patches when there's a session in progress
1013
+ - builtin-am: implement --abort
1014
+ - builtin-am: implement --skip
1015
+ - builtin-am: don't parse mail when resuming
1016
+ - builtin-am: implement --resolved/--continue
1017
+ - builtin-am: refuse to apply patches if index is dirty
1018
+ - builtin-am: implement committing applied patch
1019
+ - builtin-am: apply patch with git-apply
1020
+ - builtin-am: extract patch and commit info with git-mailinfo
1021
+ - builtin-am: auto-detect mbox patches
1022
+ - builtin-am: split out mbox/maildir patches with git-mailsplit
1023
+ - builtin-am: implement patch queue mechanism
1024
+ - builtin-am: implement skeletal builtin am
1025
+ - wrapper: implement xfopen()
1026
+ - wrapper: implement xopen()
1027
+ - Merge branch 'pt/pull-builtin' into pt/am-builtin
1028
+ (this branch is used by pt/am-builtin-fix.)
1029
+
1030
+ Originally merged to 'next' on 2015-07-23
1031
1105
-* gr/rebase-i-drop-warn (2015-06-30) 3 commits
1106
- (merged to 'next' on 2015-07-15 at 6f4f2c8)
1107
- + git rebase -i: add static check for commands and SHA-1
1108
- + git rebase -i: warn about removed commits
1109
- + git-rebase -i: add command "drop" to remove a commit
1032
+ Rewrite "am" in "C".
1033
1111
- Add "drop commit-object-name subject" command as another way to
1112
- skip replaying of a commit in "rebase -i", and then punish those
1113
- who do not use it (and instead just remove the lines) by throwing
1114
- a warning.
1034
+ Almost there.
1035
1116
- Will merge to 'master'.
1036
1037
+* ad/bisect-cleanup (2015-08-03) 6 commits
1038
+ (merged to 'next' on 2015-08-03 at 13b9314)
1039
+ + bisect: don't mix option parsing and non-trivial code
1040
+ + bisect: simplify the addition of new bisect terms
1041
+ + bisect: replace hardcoded "bad|good" by variables
1042
+ + Documentation/bisect: revise overall content
1043
+ + Documentation/bisect: move getting help section to the end
1044
+ + bisect: correction of typo
1045
+ (this branch is used by ad/bisect-terms)
1046
1119
-* jc/commit-slab (2015-05-22) 1 commit
1120
- (merged to 'next' on 2015-07-15 at 4c83475)
1121
- + commit-slab: introduce slabname##_peek() function
1047
+ Originally merged to 'next' on 2015-07-09
1048
1123
- Memory use reduction when commit-slab facility is used to annotate
1124
- sparsely (which is not recommended in the first place).
1049
+ Code and documentation clean-up to "git bisect".
1050
1051
Will merge to 'master'.
1052
1053
1129
-* ee/clean-remove-dirs (2015-06-26) 6 commits
1130
- (merged to 'next' on 2015-06-29 at d595659)
1131
- + read_gitfile_gently: fix use-after-free
1132
- (merged to 'next' on 2015-06-24 at 7c27821)
1133
- + clean: improve performance when removing lots of directories
1134
- + p7300: add performance tests for clean
1135
- + t7300: add tests to document behavior of clean and nested git
1136
- + setup: sanity check file size in read_gitfile_gently
1137
- + setup: add gentle version of read_gitfile
1054
+* jc/rerere (2015-07-30) 21 commits
1055
+ - rerere: un-nest merge() further
1056
+ - rerere: use "struct rerere_id" instead of "char *" for conflict ID
1057
+ - rerere: call conflict-ids IDs
1058
+ - rerere: further clarify do_rerere_one_path()
1059
+ - rerere: further de-dent do_plain_rerere()
1060
+ - rerere: refactor "replay" part of do_plain_rerere()
1061
+ - rerere: explain the remainder
1062
+ - rerere: explain "rerere forget" codepath
1063
+ - rerere: explain the primary codepath
1064
+ - rerere: explain MERGE_RR management helpers
1065
+ - rerere: fix benign off-by-one non-bug and clarify code
1066
+ - rerere: explain the rerere I/O abstraction
1067
+ - rerere: do not leak mmfile[] for a path with multiple stage #1 entries
1068
+ - rerere: stop looping unnecessarily
1069
+ - rerere: drop want_sp parameter from is_cmarker()
1070
+ - rerere: report autoupdated paths only after actually updating them
1071
+ - rerere: write out each record of MERGE_RR in one go
1072
+ - rerere: lift PATH_MAX limitation
1073
+ - rerere: plug conflict ID leaks
1074
+ - rerere: handle conflicts with multiple stage #1 entries
1075
+ - rerere: fix an off-by-one non-bug
1076
+ (this branch is used by jc/rerere-multi.)
1077
1139
- Replace "is this subdirectory a separate repository that should not
1140
- be touched?" check "git clean" does by checking if it has .git/HEAD
1141
- using the submodule-related code with a more optimized check.
1078
+ Code clean-up and minor fixes (so far).
1079
1143
- Will merge to 'master'.
1080
+
1081
+* jc/rerere-multi (2015-07-31) 7 commits
1082
+ . t4200: rerere a merge with two identical conflicts
1083
+ . WIP
1084
+ . rerere: allow multiple variants to exist
1085
+ - rerere: delay the recording of preimage
1086
+ - rerere: handle leftover rr-cache/$ID directory and postimage files
1087
+ - rerere: scan $GIT_DIR/rr-cache/$ID when instantiating a rerere_id
1088
+ - rerere: split conflict ID further
1089
+ (this branch uses jc/rerere.)
1090
+
1091
+ This is a contination of jc/rerere topic.
1092
1093
1094
* jc/merge-drop-old-syntax (2015-04-29) 1 commit
1147
- (merged to 'next' on 2015-05-28 at 6bfd8b9)
1095
+ (merged to 'next' on 2015-08-03 at a52c2b2)
1096
+ merge: drop 'git merge <message> HEAD <commit>' syntax
1097
1098
+ Originally merged to 'next' on 2015-05-28
1099
+
1100
Stop supporting "git merge <message> HEAD <commit>" syntax that
1101
has been deprecated since October 2007.
1102
1153
- Will keep in 'next' during the 2.5 cycle.
1103
+ Will keep in 'next' during the 2.6 cycle.
1104
1105
--------------------------------------------------
1106
[Discarded]
@@ -1198,3 +1148,33 @@ of the repositories listed at
1148
1149
Does not quite fix ($gmane/267614).
1150
Will discard.
1151
+
1152
+
1153
+* mm/for-each-ref-fixup (2015-08-03) 11 commits
1154
+ (merged to 'next' on 2015-08-03 at d9e94b9)
1155
+ + for-each-ref: add '--contains' option
1156
+ + ref-filter: implement '--contains' option
1157
+ + parse-options.h: add macros for '--contains' option
1158
+ + parse-option: rename parse_opt_with_commit()
1159
+ + for-each-ref: add '--merged' and '--no-merged' options
1160
+ + ref-filter: implement '--merged' and '--no-merged' options
1161
+ + ref-filter: add parse_opt_merge_filter()
1162
+ + for-each-ref: add '--points-at' option
1163
+ + ref-filter: implement '--points-at' option
1164
+ + tag: libify parse_opt_points_at()
1165
+ + t6302: for-each-ref tests for ref-filter APIs
1166
+
1167
+ Drop; has been squashed.
1168
+
1169
+
1170
+
1171
+* rj/bisect-terms-fixup (2015-08-03) 4 commits
1172
+ - bisect: allow setting any user-specified in 'git bisect start'
1173
+ - bisect: add 'git bisect terms' to view the current terms
1174
+ - bisect: add the terms old/new
1175
+ - bisect: sanity check on terms
1176
+ (this branch uses ad/bisect-cleanup.)
1177
+
1178
+ Will squash into ad/bisect-cleanup.
1179
+
1180
+