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 +