1 To: git@vger.kernel.org
3 Subject: What's cooking in git.git (Dec 2014, #04; Mon, 22)
4 X-master-at: bbcefffcea9789e4a1a2023a1c778e2c07db77a7
5 X-next-at: 0ad48deaa29372e974d108b05da375b40a954ec2
7 What's cooking in git.git (Dec 2014, #04; Mon, 22)
8 --------------------------------------------------
10 Here are the topics that have been cooking. Commits prefixed with
11 '-' are only in 'pu' (proposed updates) while commits prefixed with
14 Quite a few topics have been merged to 'master' as the third batch
15 for this cycle, on top of the recent "case sensitive .Git" fix that
16 has been publicized very widely. The next release which is expected
17 to be a small one is taking shape.
19 You can find the changes described here in the integration branches
20 of the repositories listed at
22 http://git-blame.blogspot.com/p/git-public-repositories.html
24 --------------------------------------------------
25 [Graduated to "master"]
27 * cc/interpret-trailers-more (2014-11-10) 4 commits
28 (merged to 'next' on 2014-12-15 at 77f6c6a)
29 + trailer: add test with an old style conflict block
30 + trailer: reuse ignore_non_trailer() to ignore conflict lines
31 + commit: make ignore_non_trailer() non static
32 + Merge branch 'jc/conflict-hint' into cc/interpret-trailers-more
33 (this branch uses jc/conflict-hint.)
35 "git interpret-trailers" learned to properly handle the
36 "Conflicts:" block at the end.
39 * ch/new-gpg-drops-rfc-1991 (2014-12-12) 4 commits
40 (merged to 'next' on 2014-12-15 at 32d7d50)
41 + tests: squelch noise from GPG machinery set-up
42 + tests: replace binary GPG keyrings with ASCII-armored keys
43 + tests: skip RFC1991 tests for gnupg 2.1
44 + tests: create gpg homedir on the fly
46 Recent GPG changes the keyring format and drops support for RFC1991
47 formatted signatures, breaking our existing tests.
50 * dm/compat-s-ifmt-for-zos (2014-12-04) 1 commit
51 (merged to 'next' on 2014-12-15 at 0eb2fe6)
52 + compat: convert modes to use portable file type values
54 Long overdue departure from the assumption that S_IFMT is shared by
55 everybody made in 2005.
58 * dw/shell-basename-dashdash-before-stripping-leading-dash-from-login (2014-11-25) 1 commit
59 (merged to 'next' on 2014-12-15 at 42937b7)
60 + git-sh-setup.sh: use dashdash with basename call
63 * jc/conflict-hint (2014-10-28) 4 commits
64 (merged to 'next' on 2014-12-15 at b72475f)
65 + merge & sequencer: turn "Conflicts:" hint into a comment
66 + builtin/commit.c: extract ignore_non_trailer() helper function
67 + merge & sequencer: unify codepaths that write "Conflicts:" hint
68 + builtin/merge.c: drop a parameter that is never used
69 (this branch is used by cc/interpret-trailers-more.)
71 Unlike all the other hints given in the commit log editor, the list
72 of conflicted paths were appended at the end without commented out.
75 * jc/exec-cmd-system-path-leak-fix (2014-11-30) 1 commit
76 (merged to 'next' on 2014-12-15 at f926ee5)
77 + system_path(): always return free'able memory to the caller
79 The function sometimes returned a non-freeable memory and some
80 other times returned a piece of memory that must be freed.
83 * jc/hook-cleanup (2014-12-01) 1 commit
84 (merged to 'next' on 2014-12-15 at f5759d0)
85 + run-command.c: retire unused run_hook_with_custom_index()
90 * jc/refer-to-t-readme-from-submitting-patches (2014-11-24) 2 commits
91 (merged to 'next' on 2014-12-15 at 0e88699)
92 + t/README: justify why "! grep foo" is sufficient
93 + SubmittingPatches: refer to t/README for tests
96 * jg/prompt-localize-temporary (2014-12-12) 1 commit
97 (merged to 'next' on 2014-12-15 at bb9cac9)
98 + git-prompt.sh: make $f local to __git_eread()
100 "git-prompt" (in contrib/) used a variable from the global scope,
101 possibly contaminating end-user's namespace.
104 * jk/always-allow-large-packets (2014-12-10) 1 commit
105 (merged to 'next' on 2014-12-15 at c3fb2c8)
106 + pkt-line: allow writing of LARGE_PACKET_MAX buffers
108 "git push" and "git fetch" did not communicate an overlong refname
112 * jk/colors (2014-12-09) 6 commits
113 (merged to 'next' on 2014-12-15 at 20b045f)
114 + parse_color: drop COLOR_BACKGROUND macro
115 + diff-highlight: allow configurable colors
116 + parse_color: recognize "no$foo" to clear the $foo attribute
117 + parse_color: support 24-bit RGB values
118 + parse_color: refactor color storage
119 + Merge branch 'jn/parse-config-slot' into jk/colors
121 "diff-highlight" filter (in contrib/) allows its color output
122 to be customized via configuration variables.
125 * jk/commit-date-approxidate (2014-12-11) 2 commits
126 (merged to 'next' on 2014-12-15 at 047530e)
127 + commit: always populate GIT_AUTHOR_* variables
128 + commit: loosen ident checks when generating template
130 Recent update to "git commit" broke amending an existing commit
131 with bogus author/committer lines without a valid e-mail address.
134 * jk/credential-quit (2014-12-04) 2 commits
135 (merged to 'next' on 2014-12-15 at 4cfd999)
136 + prompt: respect GIT_TERMINAL_PROMPT to disable terminal prompts
137 + credential: let helpers tell us to quit
139 Credential helpers are asked in turn until one of them give
140 positive response, which is cumbersome to turn off when you need to
141 run Git in an automated setting. The credential helper interface
142 learned to allow a helper to say "stop, don't ask other helpers."
143 Also GIT_TERMINAL_PROMPT environment can be set to false to disable
144 our built-in prompt mechanism for passwords.
147 * jk/for-each-reflog-ent-reverse (2014-12-05) 2 commits
148 (merged to 'next' on 2014-12-15 at de71f08)
149 + for_each_reflog_ent_reverse: turn leftover check into assertion
150 + for_each_reflog_ent_reverse: fix newlines on block boundaries
152 The code that reads the reflog from the newer to the older entries
153 did not handle an entry that crosses a boundary of block it uses to
157 * jk/lock-ref-sha1-basic-return-errors (2014-11-20) 1 commit
158 (merged to 'next' on 2014-12-15 at c48b110)
159 + lock_ref_sha1_basic: do not die on locking errors
161 Correct an API anomaly.
164 * jk/read-packed-refs-without-path-max (2014-12-10) 3 commits
165 (merged to 'next' on 2014-12-15 at c6d6f56)
166 + read_packed_refs: use skip_prefix instead of static array
167 + read_packed_refs: pass strbuf to parse_ref_line
168 + read_packed_refs: use a strbuf for reading lines
170 Git did not correctly read an overlong refname from a packed refs
174 * jk/test-asan (2014-12-11) 1 commit
175 (merged to 'next' on 2014-12-15 at d24cb92)
176 + t: support clang/gcc AddressSanitizer
179 * js/fsck-tag-validation (2014-12-09) 2 commits
180 (merged to 'next' on 2014-12-15 at 455f26c)
181 + index-pack: terminate object buffers with NUL
182 + fsck: properly bound "invalid tag name" error message
184 New tag object format validation added in 2.2 showed garbage
185 after a tagname it reported in its error message.
188 * js/push-to-deploy (2014-11-30) 2 commits
189 (merged to 'next' on 2014-12-15 at ef8c99f)
190 + t5516: more tests for receive.denyCurrentBranch=updateInstead
191 + receive-pack: add another option for receive.denyCurrentBranch
192 (this branch is used by jc/push-to-checkout.)
194 "git push" into a repository with a working tree normally refuses
195 to modify the branch that is checked out. The command learned to
196 optionally do an equivalent of "git reset --hard" only when there
197 is no change to the working tree and the index instead, which would
198 be useful to "deploy" by pushing into a repository.
201 * js/t5000-dont-copy-bin-sh (2014-11-24) 1 commit
202 (merged to 'next' on 2014-12-15 at 65ffd05)
203 + t5000 on Windows: do not mistake "sh.exe" as "sh"
206 * js/test-hashmap-squelch-gcc (2014-12-09) 1 commit
207 (merged to 'next' on 2014-12-15 at a8da691)
208 + test-hashmap: squelch gcc compiler warning
211 * mg/add-ignore-errors (2014-11-21) 1 commit
212 (merged to 'next' on 2014-12-15 at 3834789)
213 + add: ignore only ignored files
215 "git add --ignore-errors ..." did not ignore an error to
216 give a file that did not exist.
219 * mg/branch-d-m-f (2014-12-09) 2 commits
220 (merged to 'next' on 2014-12-15 at 8366f2c)
221 + branch: allow -f with -m and -d
222 + t3200-branch: test -M
224 "git branch -d" (delete) and "git branch -m" (move) learned to
225 honor "-f" (force) flag; unlike many other subcommands, the way to
226 force these have been with separate "-D/-M" options, which was
230 * mg/doc-check-ignore-tracked-are-not-ignored (2014-12-04) 1 commit
231 (merged to 'next' on 2014-12-15 at c50f748)
232 + check-ignore: clarify treatment of tracked files
235 * mh/find-uniq-abbrev (2014-11-26) 1 commit
236 (merged to 'next' on 2014-12-15 at e3b2b62)
237 + sha1_name: avoid unnecessary sha1 lookup in find_unique_abbrev
239 The code to abbreviate an object name to its short unique prefix
240 has been optimized when no abbreviation was requested.
243 * mh/simplify-repack-without-refs (2014-11-25) 7 commits
244 (merged to 'next' on 2014-12-15 at 351e03e)
245 + sort_string_list(): rename to string_list_sort()
246 + prune_remote(): iterate using for_each_string_list_item()
247 + prune_remote(): rename local variable
248 + repack_without_refs(): make the refnames argument a string_list
249 + prune_remote(): sort delete_refs_list references en masse
250 + prune_remote(): initialize both delete_refs lists in a single loop
251 + prune_remote(): exit early if there are no stale references
253 "git remote update --prune" to drop many refs has been optimized.
256 * nd/ls-tree-pathspec (2014-12-01) 5 commits
257 (merged to 'next' on 2014-12-15 at 8da6e09)
258 + t3102: style modernization
259 + t3102: document that ls-tree does not yet support negated pathspec
260 + ls-tree: disable negative pathspec because it's not supported
261 + ls-tree: remove path filtering logic in show_tree
262 + tree.c: update read_tree_recursive callback to pass strbuf as base
264 "git ls-tree" does not support path selection based on negative
265 pathspecs, but did not error out when negative pathspecs are given.
268 * nd/split-index (2014-12-11) 1 commit
269 (merged to 'next' on 2014-12-15 at ed6490c)
270 + index-format.txt: add a missing closing quote
272 A typofix to the documentation of a feature already in the release.
275 * ok/rebase-i-count-todo (2014-12-10) 1 commit
276 (merged to 'next' on 2014-12-15 at 4a1f7ed)
277 + Show number of TODO items for interactive rebase
280 * pb/am-message-id-footer (2014-11-25) 2 commits
281 (merged to 'next' on 2014-12-15 at b44b6bd)
282 + git-am: add --message-id/--no-message-id
283 + git-mailinfo: add --message-id
285 "git am" learned "--message-id" option to copy the message ID of
286 the incoming e-mail to the log message of resulting commit.
289 * pb/send-email-te (2014-11-25) 2 commits
290 (merged to 'next' on 2014-12-15 at 38c2810)
291 + git-send-email: add --transfer-encoding option
292 + git-send-email: delay creation of MIME headers
293 (this branch is used by jc/t9001-modernise.)
295 "git send-email" learned "--transfer-encoding" option to force
296 a non-fault Content-Transfer-Encoding header (e.g. base64).
299 * po/doc-assume-unchanged (2014-12-09) 2 commits
300 (merged to 'next' on 2014-12-15 at 646e77e)
301 + gitignore.txt: do not suggest assume-unchanged
302 + doc: make clear --assume-unchanged's user contract
304 Fixes long-standing misunderstanding of what assume-unchanged is
305 about. Some text near what is removed by the bottom patch may also
309 * ps/new-workdir-into-empty-directory (2014-12-03) 1 commit
310 (merged to 'next' on 2014-12-15 at 0787b56)
311 + git-new-workdir: don't fail if the target directory is empty
313 "git new-workdir" (in contrib/) can be used to populate an empty
314 and existing directory now.
317 * rj/no-xopen-source-for-cygwin (2014-11-24) 1 commit
318 (merged to 'next' on 2014-12-15 at 6e8e9ff)
319 + git-compat-util.h: don't define _XOPEN_SOURCE on cygwin
321 Avoid compilation warnings on recent gcc toolchain on Cygwin.
324 * rj/t0050-passes (2014-11-30) 1 commit
325 (merged to 'next' on 2014-12-15 at f56c339)
326 + t0050-*.sh: mark the rename (case change) test as passing
329 * rs/use-strbuf-complete-line (2014-12-12) 1 commit
330 (merged to 'next' on 2014-12-15 at d6426a0)
331 + use strbuf_complete_line() for adding a newline if needed
334 * rt/completion-tag (2014-12-04) 1 commit
335 (merged to 'next' on 2014-12-15 at b03ee39)
336 + completion: add git-tag options
339 * rt/for-each-ref-spell-tcl-as-Tcl (2014-11-30) 1 commit
340 (merged to 'next' on 2014-12-15 at c0fcefb)
341 + for-each-ref: correct spelling of Tcl in option description
344 * rw/apply-does-not-take-ignore-date (2014-12-09) 1 commit
345 (merged to 'next' on 2014-12-15 at ded2f99)
346 + git-am.txt: --ignore-date flag is not passed to git-apply
349 * sb/string-list (2014-12-04) 3 commits
350 (merged to 'next' on 2014-12-15 at 8bb8ddd)
351 + string_list: remove string_list_insert_at_index() from its API
352 + mailmap: use higher level string list functions
353 + string_list: document string_list_(insert,lookup)
358 * sv/doc-stripspace (2014-12-04) 1 commit
359 (merged to 'next' on 2014-12-15 at e86f8ba)
360 + Documentation/git-stripspace: add synopsis for --comment-lines
363 * tb/config-core-filemode-check-on-broken-fs (2014-11-21) 1 commit
364 (merged to 'next' on 2014-12-15 at 3e5490b)
365 + init-db: improve the filemode trustability check
367 Some filesystems assign filemodes in a strange way, fooling then
368 automatic "filemode trustability" check done during a new
372 * tb/t0027-eol-conversion (2014-12-05) 1 commit
373 (merged to 'next' on 2014-12-15 at ba24e75)
374 + t0027: check the eol conversion warnings
376 --------------------------------------------------
379 * bb/update-unicode-table (2014-12-22) 5 commits
380 - update_unicode.sh: delete the command group
381 - update_unicode.sh: make the output structure visible
382 - update_unicode.sh: shorten uniset invocation path
383 - update_unicode.sh: set UNICODE_DIR only once
384 - update_unicode.sh: simplify output capture
386 Simplify the procedure to generate unicode table.
388 Will merge to 'next'.
391 * bc/fetch-thin-less-aggressive-in-normal-repository (2014-12-22) 3 commits
392 - pack-objects: use --objects-edge-aggressive only for shallow repos
393 - rev-list: add an option to mark fewer edges as uninteresting
394 - Documentation: add missing article in rev-list-options.txt
396 Earlier we made "rev-list --object-edge" more aggressively list the
397 objects at the edge commits, in order to reduce number of objects
398 fetched into a shallow repository, but the change affected cases
399 other than "fetching into a shallow repository" and made it
400 unusably slow (e.g. fetching into a normal repository should not
401 have to suffer the overhead from extra processing). Limit it to a
402 more specific case by introducing --objects-edge-aggressive, a new
405 Seems to break t5500 when merged to 'pu'.
408 * es/squelch-openssl-warnings-on-macosx (2014-12-18) 1 commit
409 - git-compat-util: suppress unavoidable Apple-specific deprecation warnings
411 Squelch useless compiler warnings on Mac OS X.
413 Will merge to 'next'.
416 * jh/pre-push-sample-no-custom-ifs (2014-12-22) 1 commit
417 - pre-push.sample: remove unnecessary and misleading IFS=' '
419 The sample pre-push hook used customized IFS=' ' for no good reason.
421 Will merge to 'next'.
424 * mh/update-ref-verify (2014-12-11) 2 commits
425 - update-ref: fix "verify" command with missing <oldvalue>
426 - t1400: add some more tests of "update-ref --stdin"'s verify command
428 "git update-ref --stdin"'s verify command did not work well when
429 <oldvalue>, which is documented as optional, was missing.
431 Will merge to 'next'.
434 * sb/atomic-push (2014-12-22) 7 commits
435 - t5543-atomic-push.sh: add basic tests for atomic pushes
436 - push.c: add an --atomic argument
437 - receive-pack: move execute_commands_non_atomic before execute_commands
438 - receive-pack.c: receive-pack.c: use a single ref_transaction for atomic pushes
439 - send-pack.c: add --atomic command line argument
440 - send-pack: rename ref_update_to_be_sent to check_to_send_update
441 - receive-pack.c: add protocol support to negotiate atomic-push
442 (this branch uses mh/reflog-expire.)
444 "git push" has been taught a "--atomic" option that makes push to
445 update more than one ref an "all-or-none" affair.
447 Will merge to 'next'.
450 * sb/dco-indentation-fix (2014-12-22) 1 commit
451 - Documentation/SubmittingPatches: unify whitespace/tabs for the DCO
453 Will merge to 'next'.
456 * sb/t5400-remove-unused (2014-12-16) 1 commit
457 - t5400: remove dead code
459 Will merge to 'next'.
462 * tf/prompt-preserve-exit-status (2014-12-22) 1 commit
463 - git-prompt: preserve value of $? inside shell prompt
465 Using the exit status of the last command in the prompt, e.g.
466 PS1='$(__git_ps1) $? ', did not work well because the helper
467 function stomped on the exit status.
469 Will merge to 'next'.
471 --------------------------------------------------
474 * pw/remote-set-url-fetch (2014-11-26) 1 commit
475 - remote: add --fetch and --both options to set-url
480 * ms/submodule-update-config-doc (2014-11-03) 1 commit
481 - submodule: clarify documentation for update subcommand
483 Needs a reroll ($gmane/259037).
486 * je/quiltimport-no-fuzz (2014-10-21) 2 commits
487 - git-quiltimport: flip the default not to allow fuzz
488 - git-quiltimport.sh: allow declining fuzz with --exact option
490 "quiltimport" drove "git apply" always with -C1 option to reduce
491 context of the patch in order to give more chance to somewhat stale
492 patches to apply. Add an "--exact" option to disable, and also
493 "-C$n" option to customize this behaviour. The top patch
494 optionally flips the default to "--exact".
496 Tired of waiting for an Ack; will discard.
499 * jc/push-cert-hmac-optim (2014-09-25) 2 commits
500 - receive-pack: truncate hmac early and convert only necessary bytes
501 - sha1_to_hex: split out "hex-format n bytes" helper and use it
503 This is "we could do this if we wanted to", not "we measured and it
504 improves performance critical codepath".
509 * mt/patch-id-stable (2014-06-10) 1 commit
510 - patch-id: change default to stable
512 Teaches "git patch-id" to compute the patch ID that does not change
513 when the files in a single patch is reordered. As this new algorithm
514 is backward incompatible, the last bit to flip it to be the default
515 is left out of 'master' for now.
517 Nobody seems to be jumping up & down requesting this last step,
518 which makes the result somewhat backward incompatible.
522 * tr/remerge-diff (2014-11-10) 9 commits
523 - t4213: avoid "|" in sed regexp
524 - log --remerge-diff: show what the conflict resolution changed
525 - name-hash: allow dir hashing even when !ignore_case
526 - merge-recursive: allow storing conflict hunks in index
527 - merge_diff_mode: fold all merge diff variants into an enum
528 - combine-diff: do not pass revs->dense_combined_merges redundantly
529 - merge-recursive: -Xindex-only to leave worktree unchanged
530 - merge-recursive: internal flag to avoid touching the worktree
531 - merge-recursive: remove dead conditional in update_stages()
533 "log -p" output learns a new way to let users inspect a merge
534 commit by showing the differences between the automerged result
535 with conflicts the person who recorded the merge would have seen
536 and the final conflict resolution that was recorded in the merge.
538 Waiting for a reroll ($gmane/256591).
541 * hv/submodule-config (2014-11-11) 4 commits
542 - do not die on error of parsing fetchrecursesubmodules option
543 - use new config API for worktree configurations of submodules
544 - extract functions for submodule config set and lookup
545 - implement submodule config cache for lookup of submodule names
547 Kicked back to 'pu' per request ($gmane/255610).
550 * ab/add-interactive-show-diff-func-name (2014-05-12) 2 commits
551 - SQUASH??? git-add--interactive: Preserve diff heading when splitting hunks
552 - git-add--interactive: Preserve diff heading when splitting hunks
554 Waiting for a reroll.
557 * jn/gitweb-utf8-in-links (2014-05-27) 1 commit
558 - gitweb: Harden UTF-8 handling in generated links
563 * ss/userdiff-update-csharp-java (2014-06-02) 2 commits
564 - userdiff: support Java try keyword
565 - userdiff: support C# async methods and correct C# keywords
567 Reviews sent; waiting for a response.
570 * bg/rebase-off-of-previous-branch (2014-04-16) 1 commit
571 - git-rebase: print name of rev when using shorthand
573 Teach "git rebase -" to report the concrete name of the branch
574 (i.e. the previous one).
576 But it stops short and does not do the same for "git rebase @{-1}".
580 * rb/merge-prepare-commit-msg-hook (2014-01-10) 4 commits
581 - merge: drop unused arg from abort_commit method signature
582 - merge: make prepare_to_commit responsible for write_merge_state
583 - t7505: ensure cleanup after hook blocks merge
584 - t7505: add missing &&
586 Expose more merge states (e.g. $GIT_DIR/MERGE_MODE) to hooks that
587 run during "git merge". The log message stresses too much on one
588 hook, prepare-commit-msg, but it would equally apply to other hooks
589 like post-merge, I think.
591 Waiting for a reroll.
594 * jc/graph-post-root-gap (2013-12-30) 3 commits
595 - WIP: document what we want at the end
596 - graph: remove unused code a bit
597 - graph: stuff the current commit into graph->columns[]
599 This was primarily a RFH ($gmane/239580).
602 * tg/perf-lib-test-perf-cleanup (2013-09-19) 2 commits
603 - perf-lib: add test_perf_cleanup target
604 - perf-lib: split starting the test from the execution
606 Add test_perf_cleanup shell function to the perf suite, that allows
607 the script writers to define a test with a clean-up action.
612 * jc/show-branch (2014-03-24) 5 commits
613 - show-branch: use commit slab to represent bitflags of arbitrary width
614 - show-branch.c: remove "all_mask"
615 - show-branch.c: abstract out "flags" operation
616 - show-branch.c: lift all_mask/all_revs to a global static
617 - show-branch.c: update comment style
619 Waiting for the final step to lift the hard-limit before sending it out.
621 --------------------------------------------------
624 * ye/http-accept-language (2014-12-22) 1 commit
625 - http: Add Accept-Language header if possible
627 An earlier iteration broke various people ($gmane/260903). Please
631 * jk/strbuf-doc-to-header (2014-12-12) 4 commits
632 - strbuf.h: reorganize api function grouping headers
633 - strbuf.h: format asciidoc code blocks as 4-space indent
634 - strbuf.h: drop asciidoc list formatting from API docs
635 - strbuf: migrate api-strbuf.txt documentation to strbuf.h
637 Resolve the "doc vs header" to favor the latter.
639 Expecting to be rerolled.
642 * mh/reflog-expire (2014-12-22) 24 commits
643 - refs.c: let fprintf handle the formatting
644 - refs.c: don't expose the internal struct ref_lock in the header file
645 - lock_any_ref_for_update(): inline function
646 - refs.c: remove unlock_ref/close_ref/commit_ref from the refs api
647 - reflog_expire(): new function in the reference API
648 - expire_reflog(): treat the policy callback data as opaque
649 - Move newlog and last_kept_sha1 to "struct expire_reflog_cb"
650 - expire_reflog(): move rewrite to flags argument
651 - expire_reflog(): move verbose to flags argument
652 - expire_reflog(): pass flags through to expire_reflog_ent()
653 - struct expire_reflog_cb: a new callback data type
654 - Rename expire_reflog_cb to expire_reflog_policy_cb
655 - expire_reflog(): move updateref to flags argument
656 - expire_reflog(): move dry_run to flags argument
657 - expire_reflog(): add a "flags" argument
658 - expire_reflog(): extract two policy-related functions
659 - Extract function should_expire_reflog_ent()
660 - expire_reflog(): use a lock_file for rewriting the reflog file
661 - expire_reflog(): return early if the reference has no reflog
662 - expire_reflog(): rename "ref" parameter to "refname"
663 - expire_reflog(): it's not an each_ref_fn anymore
664 - refs.c: add a function to append a reflog entry to a fd
665 - refs.c: make ref_transaction_delete a wrapper for ref_transaction_update
666 - refs.c: make ref_transaction_create a wrapper for ref_transaction_update
667 (this branch is used by sb/atomic-push.)
669 Restructure "reflog expire" to fit the reflogs better with the
670 recently updated ref API.
672 Looked reasonable (except that some shortlog entries stood out like
676 * po/doc-core-ignorestat (2014-12-12) 1 commit
677 - doc: core.ignoreStat clarify the --assume-unchanged effect
682 * jk/add-i-read-error (2014-12-15) 1 commit
683 - add--interactive: leave main loop on read error
685 "git add -i" did not notice when the interactive command input
686 stream went away and kept asking.
688 Will merge to 'next'.
691 * pd/completion-filenames-fix (2014-12-15) 1 commit
692 - Update documentation occurrences of filename .sh
694 The top-of-the-file instruction for completion scripts (in contrib/)
695 did not name the files correctly.
697 Will merge to 'next'.
700 * rd/send-email-2047-fix (2014-12-15) 2 commits
701 - send-email: handle adjacent RFC 2047-encoded words properly
702 - send-email: align RFC 2047 decoding more closely with the spec
704 "git send-email" did not handle RFC 2047 encoded headers quite
707 Will merge to 'next'.
710 * jn/doc-api-errors (2014-12-04) 1 commit
711 - doc: document error handling functions and conventions
716 * jn/rerere-fail-on-auto-update-failure (2014-12-03) 2 commits
718 - rerere: error out on autoupdate failure
720 Will be rerolled as a part of a larger series.
723 * jc/push-to-checkout (2014-12-01) 2 commits
724 - receive-pack: support push-to-checkout hook
725 - receive-pack: refactor updateInstead codepath
727 Extending the js/push-to-deploy topic, the behaviour of "git push"
728 when updating the working tree and the index with an update to the
729 branch that is checked out can be tweaked by push-to-checkout hook.
734 * lh/send-email-hide-x-mailer (2014-12-15) 2 commits
735 - test/send-email: --[no-]xmailer tests
736 - send-email: add --[no-]xmailer option
738 "git send-email" normally identifies itself via X-Mailer: header
739 in the message it sends out. A new command line flag allows the
740 header to be squelched.
742 Will merge to 'next'.
745 * nd/list-files (2014-12-01) 19 commits
746 - list-files: -M aka diff-cached
747 - list-files -F: show submodules with the new indicator '&'
748 - list-files: add -F/--classify
749 - list-files: show directories as well as files
750 - list-files: do not show duplicate cached entries
751 - list-files: sort output and remove duplicates
752 - list-files: add -t back
753 - list-files: add -1 short for --no-column
754 - list-files: add -R/--recursive short for --max-depth=-1
755 - list-files: -u does not imply showing stages
756 - list-files: a user friendly version of ls-files and more
757 - ls-files: support --max-depth
758 - ls-files: add --column
759 - ls-files: add --color to highlight file names
760 - ls-files: buffer full item in strbuf before printing
761 - ls_colors.c: highlight submodules like directories
762 - ls_colors.c: add a function to color a file name
763 - ls_colors.c: parse color.ls.* from config file
764 - ls_colors.c: add $LS_COLORS parsing code
766 A new "git list-files" Porcelain command, "ls-files" with bells and
770 * nd/multiple-work-trees (2014-12-01) 34 commits
771 - git-common-dir: make "modules/" per-working-directory directory
772 - checkout: do not fail if target is an empty directory
773 - t2025: add a test to make sure grafts is working from a linked checkout
774 - checkout: don't require a work tree when checking out into a new one
775 - git_path(): keep "info/sparse-checkout" per work-tree
776 - count-objects: report unused files in $GIT_DIR/worktrees/...
777 - gc: support prune --worktrees
778 - gc: factor out gc.pruneexpire parsing code
779 - gc: style change -- no SP before closing parenthesis
780 - checkout: clean up half-prepared directories in --to mode
781 - checkout: reject if the branch is already checked out elsewhere
782 - prune: strategies for linked checkouts
783 - checkout: support checking out into a new working directory
784 - use new wrapper write_file() for simple file writing
785 - wrapper.c: wrapper to open a file, fprintf then close
786 - setup.c: support multi-checkout repo setup
787 - setup.c: detect $GIT_COMMON_DIR check_repository_format_gently()
788 - setup.c: convert check_repository_format_gently to use strbuf
789 - setup.c: detect $GIT_COMMON_DIR in is_git_directory()
790 - setup.c: convert is_git_directory() to use strbuf
791 - git-stash: avoid hardcoding $GIT_DIR/logs/....
792 - *.sh: avoid hardcoding $GIT_DIR/hooks/...
793 - git-sh-setup.sh: use rev-parse --git-path to get $GIT_DIR/objects
794 - $GIT_COMMON_DIR: a new environment variable
795 - commit: use SEQ_DIR instead of hardcoding "sequencer"
796 - fast-import: use git_path() for accessing .git dir instead of get_git_dir()
797 - reflog: avoid constructing .lock path with git_path
798 - *.sh: respect $GIT_INDEX_FILE
799 - git_path(): be aware of file relocation in $GIT_DIR
800 - path.c: group git_path(), git_pathdup() and strbuf_git_path() together
801 - path.c: rename vsnpath() to do_git_path()
802 - git_snpath(): retire and replace with strbuf_git_path()
803 - path.c: make get_pathname() call sites return const char *
804 - path.c: make get_pathname() return strbuf instead of static buffer
806 A replacement for contrib/workdir/git-new-workdir that does not
807 rely on symbolic links and make sharing of objects and refs safer
808 by making the borrowee and borrowers aware of each other.
811 * sb/copy-fd-errno (2014-11-17) 1 commit
812 - copy.c: make copy_fd preserve meaningful errno
814 Will be rerolled as a part of a larger series.
817 * jc/t9001-modernise (2014-11-25) 5 commits
818 - t9001: style modernisation phase #5
819 - t9001: style modernisation phase #4
820 - t9001: style modernisation phase #3
821 - t9001: style modernisation phase #2
822 - t9001: style modernisation phase #1
825 * jk/approxidate-avoid-y-d-m-over-future-dates (2014-11-13) 2 commits
826 (merged to 'next' on 2014-12-15 at 397e986)
827 + approxidate: allow ISO-like dates far in the future
828 + pass TIME_DATE_NOW to approxidate future-check
830 Traditionally we tried to avoid interpreting date strings given by
831 the user as future dates, e.g. GIT_COMMITTER_DATE=2014-12-10 when
832 used early November 2014 was taken as "October 12, 2014" because it
833 is likely that a date in the future, December 10, is a mistake.
835 Loosen this and do not tiebreak by future-ness of the date when
837 (1) ISO-like format is used, and
838 (2) the string can make sense interpreted as both y-m-d and y-d-m.
843 * br/imap-send-verbosity (2014-11-05) 1 commit
844 (merged to 'next' on 2014-12-15 at 504af0b)
845 + imap-send: use parse options API to determine verbosity
846 (this branch is used by br/imap-send-via-libcurl.)
851 * br/imap-send-via-libcurl (2014-11-10) 1 commit
852 (merged to 'next' on 2014-12-15 at 90db637)
853 + git-imap-send: use libcurl for implementation
854 (this branch uses br/imap-send-verbosity.)
856 Newer libCurl knows how to talk IMAP; "git imap-send" has been
857 updated to use this instead of a hand-rolled OpenSSL calls.
862 * nd/lockfile-absolute (2014-11-03) 1 commit
863 (merged to 'next' on 2014-12-15 at 34db9af)
864 + lockfile.c: store absolute path
866 The lockfile API can get confused which file to clean up when the
867 process moved the $cwd after creating a lockfile.
872 * jc/merge-bases (2014-10-30) 2 commits
873 (merged to 'next' on 2014-12-15 at cac279e)
874 + get_merge_bases(): always clean-up object flags
875 + bisect: clean flags after checking merge bases
877 The get_merge_bases*() API was easy to misuse by careless
878 copy&paste coders, leaving object flags tainted in the commits that
879 needed to be traversed.
884 * jc/strbuf-add-lines-avoid-sp-ht-sequence (2014-10-27) 1 commit
885 (merged to 'next' on 2014-12-15 at b499889)
886 + strbuf_add_commented_lines(): avoid SP-HT sequence in commented lines
888 The commented output used to blindly add a SP before the payload
889 line, resulting in "# \t<indented text>\n" when the payload began
890 with a HT. Instead, produce "#\t<indented text>\n".
895 * nd/untracked-cache (2014-12-15) 24 commits
897 - untracked cache: guard and disable on system changes
898 - mingw32: add uname()
899 - t7063: tests for untracked cache
900 - update-index: test the system before enabling untracked cache
901 - update-index: manually enable or disable untracked cache
902 - status: enable untracked cache
903 - untracked-cache: temporarily disable with $GIT_DISABLE_UNTRACKED_CACHE
904 - untracked cache: mark index dirty if untracked cache is updated
905 - untracked cache: print stats with $GIT_TRACE_UNTRACKED_STATS
906 - untracked cache: avoid racy timestamps
907 - read-cache.c: split racy stat test to a separate function
908 - untracked cache: invalidate at index addition or removal
909 - untracked cache: load from UNTR index extension
910 - untracked cache: save to an index extension
911 - ewah: add convenient wrapper ewah_serialize_strbuf()
912 - untracked cache: don't open non-existent .gitignore
913 - untracked cache: mark what dirs should be recursed/saved
914 - untracked cache: record/validate dir mtime and reuse cached output
915 - untracked cache: make a wrapper around {open,read,close}dir()
916 - untracked cache: invalidate dirs recursively if .gitignore changes
917 - untracked cache: initial untracked cache validation
918 - untracked cache: record .gitignore information and dir hierarchy
919 - dir.c: optionally compute sha-1 of a .gitignore file
924 * jc/diff-b-m (2014-10-23) 1 commit
925 (merged to 'next' on 2014-12-15 at 59c6636)
926 + diff -B -M: fix output for "copy and then rewrite" case
928 Fix long-standing bug in "diff -B -M" output.
933 * jc/checkout-local-track-report (2014-10-14) 1 commit
934 (merged to 'next' on 2014-12-15 at e91a7df)
935 + checkout: report upstream correctly even with loosely defined branch.*.merge
937 The report from "git checkout" on a branch that builds on another
938 local branch by setting its branch.*.merge to branch name (not a
939 full refname) incorrectly said that the upstream is gone.
944 * jc/clone-borrow (2014-10-15) 1 commit
945 (merged to 'next' on 2014-12-15 at 08fdf77)
946 + clone: --dissociate option to mark that reference is only temporary
948 Allow "git clone --reference" to be used more safely.
952 --------------------------------------------------
955 * mb/enable-lib-terminal-test-on-newer-darwin (2014-11-14) 1 commit
956 . t/lib-terminal: allow TTY tests to run under recent Mac OS
958 We probably should drop this ($gmane/259609).
961 * zk/grep-color-words (2014-10-27) 2 commits
962 . Revert "grep: fix match highlighting for combined patterns with context lines"
963 . grep: fix match highlighting for combined patterns with context lines
965 rs/grep-color-words topic solves it in a different way.
970 * jn/dedup-doc-header (2014-12-10) 2 commits
971 . put string-list API documentation in one place
972 . put strbuf API documentation in one place
974 We would want to have an easy way for developers to learn about
975 APIs, and also a way to encourage them to keep the API
976 documentation up to date when they make changes. Having header
977 comments and API documentation duplicated in two different places
978 risked them going out of sync.
980 The approach taken by jk/strbuf-doc-to-header is the other way
981 around, which people seem to prefer, so this is discarded.
984 * jt/timer-settime (2014-08-29) 6 commits
985 . use timer_settime() for new platforms
986 . autoconf: check for timer_settime()
987 . autoconf: check for struct itimerspec
988 . autoconf: check for struct sigevent
989 . autoconf: check for struct timespec
990 . autoconf: check for timer_t
992 Was wanting for a reroll.
995 * rs/ref-transaction-reflog (2014-11-03) 15 commits
996 . refs.c: allow deleting refs with a broken sha1
997 . refs.c: remove lock_any_ref_for_update
998 . refs.c: make unlock_ref/close_ref/commit_ref static
999 . refs.c: rename log_ref_setup to create_reflog
1000 . reflog.c: use a reflog transaction when writing during expire
1001 . refs.c: allow multiple reflog updates during a single transaction
1002 . refs.c: only write reflog update if msg is non-NULL
1003 . refs.c: add a flag to allow reflog updates to truncate the log
1004 . refs.c: add a transaction function to append a reflog entry
1005 . copy.c: make copy_fd preserve meaningful errno
1006 . refs.c: add a function to append a reflog entry to a fd
1007 . refs.c: add a new update_type field to ref_update
1008 . refs.c: rename the transaction functions
1009 . refs.c: make ref_transaction_delete a wrapper for ref_transaction_update
1010 . refs.c make ref_transaction_create a wrapper to ref_transaction_update
1011 (this branch is used by rs/ref-transaction-rename and rs/ref-transaction-send-pack.)
1013 Stefan Beller started working on reorganizing these three series,
1014 which unfortunately did not see much reviews.
1017 * rs/ref-transaction-rename (2014-11-07) 16 commits
1018 . refs.c: add an err argument to pack_refs
1019 . refs.c: make lock_packed_refs take an err argument
1020 . refs.c: make add_packed_ref return an error instead of calling die
1021 . refs.c: replace the onerr argument in update_ref with a strbuf err
1022 . refs.c: make the *_packed_refs functions static
1023 . refs.c: make repack_without_refs static
1024 . remote.c: use a transaction for deleting refs
1025 . refs.c: write updates to packed refs when a transaction has more than one ref
1026 . refs.c: move reflog updates into its own function
1027 . refs.c: rollback the lockfile before we die() in repack_without_refs
1028 . refs.c: update rename_ref to use a transaction
1029 . refs.c: add transaction support for renaming a reflog
1030 . refs.c: use a stringlist for repack_without_refs
1031 . refs.c: use packed refs when deleting refs during a transaction
1032 . refs.c: return error instead of dying when locking fails during transaction
1033 . refs.c: allow passing raw git_committer_info as email to _update_reflog
1034 (this branch is used by rs/ref-transaction-send-pack; uses rs/ref-transaction-reflog.)
1036 Stefan Beller started working on reorganizing these three series,
1037 which unfortunately did not see much reviews.
1040 * rs/ref-transaction-send-pack (2014-11-07) 7 commits
1041 . refs.c: add an err argument to create_symref
1042 . refs.c: add an err argument to create_reflog
1043 . t5543-atomic-push.sh: add basic tests for atomic pushes
1044 . push.c: add an --atomic-push argument
1045 . receive-pack.c: use a single transaction when atomic-push is negotiated
1046 . send-pack.c: add an --atomic-push command line argument
1047 . receive-pack.c: add protocol support to negotiate atomic-push
1048 (this branch uses rs/ref-transaction-reflog and rs/ref-transaction-rename.)
1050 Stefan Beller started working on reorganizing these three series,
1051 which unfortunately did not see much reviews.
1054 * sb/simplify-repack-without-refs (2014-11-20) 1 commit
1055 . refs.c: use a string_list for repack_without_refs
1058 * sb/log-ref-write-fd (2014-11-20) 1 commit
1059 . refs.c: add a function to append a reflog entry to a fd
1061 Will be rerolled as a part of a larger series.
1064 * sb/ref-transaction-unify-to-update (2014-11-20) 2 commits
1065 . refs.c: make ref_transaction_delete a wrapper for ref_transaction_update
1066 . refs.c: make ref_transaction_create a wrapper for ref_transaction_update
1067 (this branch is used by sb/ref-transaction-reflog.)
1069 Code simplification.
1071 Will be rerolled as a part of a larger series.
1073 * sb/write-sha1-update-reflog (2014-11-24) 1 commit
1074 . refs.c: move reflog updates into its own function
1076 Moves a part of function around to add a helper that still only has
1077 one caller. Need to see how this helps in a bigger picture.
1080 * sb/ref-transaction-reflog (2014-12-03) 2 commits
1081 . refs.c: rename transaction.updates to transaction.ref_updates
1082 . refs.c: rename the transaction functions
1083 (this branch uses sb/ref-transaction-unify-to-update.)
1085 Will be rerolled as a part of a larger series.