What's cooking (2014/12 #02)
[alt-git.git] / whats-cooking.txt
blob5cbbaa414d03f5bc573cc77bc6eea0e13639a169
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 Subject: What's cooking in git.git (Dec 2014, #02; Wed, 10)
4 X-master-at: c18b86734113ee2aeb0e140c922c8fbd4accc860
5 X-next-at: 802437b789eb05ee52be21d578fe4cfed918b276
7 What's cooking in git.git (Dec 2014, #02; Wed, 10)
8 --------------------------------------------------
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'.
14 You can find the changes described here in the integration branches
15 of the repositories listed at
17     http://git-blame.blogspot.com/p/git-public-repositories.html
19 --------------------------------------------------
20 [Graduated to "master"]
22 * jh/empty-notes (2014-11-14) 9 commits
23   (merged to 'next' on 2014-11-18 at 9eeb338)
24  + t3301: modernize style
25  + notes: empty notes should be shown by 'git log'
26  + builtin/notes: add --allow-empty, to allow storing empty notes
27  + builtin/notes: split create_note() to clarify add vs. remove logic
28  + builtin/notes: simplify early exit code in add()
29  + builtin/notes: refactor note file path into struct note_data
30  + builtin/notes: improve naming
31  + t3301: verify that 'git notes' removes empty notes by default
32  + builtin/notes: fix premature failure when trying to add the empty blob
34  A request to store an empty note via "git notes" meant to remove
35  note from the object but with --allow-empty we will store a (surprise!)
36  note that is empty.  In the longer run, we might want to deprecate
37  the somewhat unintuitive "emptying means deletion" behaviour.
40 * jk/checkout-from-tree (2014-11-13) 1 commit
41   (merged to 'next' on 2014-11-14 at ddbffb0)
42  + checkout $tree: do not throw away unchanged index entries
44  "git checkout $treeish $path", when $path in the index and the
45  working tree already matched what is in $treeish at the $path,
46  still overwrote the $path unnecessarily.
49 * jk/gitweb-with-newer-cgi-multi-param (2014-11-18) 1 commit
50   (merged to 'next' on 2014-11-18 at 6ac61fe)
51  + gitweb: hack around CGI's list-context param() handling
53  "gitweb" used to depend on a behaviour recent CGI.pm deprecated.
56 * js/windows-open-eisdir-error (2014-11-17) 1 commit
57   (merged to 'next' on 2014-11-18 at 57b0d49)
58  + Windows: correct detection of EISDIR in mingw_open()
60  open() emulated on Windows platforms did not give EISDIR upon an
61  attempt to open a directory for writing.
64 * mh/config-flip-xbit-back-after-checking (2014-11-18) 1 commit
65   (merged to 'next' on 2014-11-18 at 45f7d71)
66  + create_default_files(): don't set u+x bit on $GIT_DIR/config
67  (this branch is used by tb/config-core-filemode-check-on-broken-fs.)
69  "git init" (hence "git clone") initialized the per-repository
70  configuration file .git/config with x-bit by mistake.
73 * rs/env-array-in-child-process (2014-11-10) 1 commit
74   (merged to 'next' on 2014-11-14 at 3f6ba07)
75  + use args member of struct child_process
77  Code cleanup.
80 * rs/maint-config-use-labs (2014-11-17) 1 commit
81   (merged to 'next' on 2014-11-18 at 53c2404)
82  + use labs() for variables of type long instead of abs()
84  A few code paths used abs() when they should have used labs() on
85  long integers.
88 * rs/receive-pack-use-labs (2014-11-17) 1 commit
89   (merged to 'next' on 2014-11-18 at c6d2d94)
90  + use labs() for variables of type long instead of abs()
92  A few code paths used abs() when they should have used labs() on
93  long integers.
96 * sv/get-builtin (2014-11-13) 1 commit
97   (merged to 'next' on 2014-11-14 at 9497e17)
98  + builtin: move builtin retrieval to get_builtin()
100  Small code consolidation.
103 * tq/git-ssh-command (2014-11-10) 1 commit
104   (merged to 'next' on 2014-11-14 at 83f5dae)
105  + git_connect: set ssh shell command in GIT_SSH_COMMAND
107  Allow passing extra set of arguments when ssh is invoked to create
108  an encrypted & authenticated connection, which is not possible with
109  existing GIT_SSH mechanism, which was designed more to match what
110  other programs with similar variables did, not necessarily to be
111  more useful.
113 --------------------------------------------------
114 [New Topics]
116 * dm/compat-s-ifmt-for-zos (2014-12-04) 1 commit
117  - compat: convert modes to use portable file type values
119  Long overdue departure from the assumption that S_IFMT is shared by
120  everybody made in 2005.
123 * jk/credential-quit (2014-12-04) 2 commits
124  - prompt: respect GIT_TERMINAL_PROMPT to disable terminal prompts
125  - credential: let helpers tell us to quit
127  Credential helpers are asked in turn until one of them give
128  positive response, which is cumbersome to turn off when you need to
129  run Git in an automated setting.  The credential helper interface
130  learned to allow a helper to say "stop, don't ask other helpers."
131  Also GIT_TERMINAL_PROMPT environment can be set to false to disable
132  our built-in prompt mechanism for passwords.
134  Will merge to 'next'.
137 * mg/branch-d-m-f (2014-12-09) 2 commits
138  - branch: allow -f with -m and -d
139  - t3200-branch: test -M
141  "git branch -d" (delete) and "git branch -m" (move) learned to
142  honor "-f" (force) flag; unlike many other subcommands, the way to
143  force these have been with separate "-D/-M" options, which was
144  inconsistent.
146  Will merge to 'next'.
149 * mg/doc-check-ignore-tracked-are-not-ignored (2014-12-04) 1 commit
150  - check-ignore: clarify treatment of tracked files
152  Will merge to 'next'.
155 * rt/completion-tag (2014-12-04) 1 commit
156  - completion: add git-tag options
158  Will merge to 'next'.
161 * jk/for-each-reflog-ent-reverse (2014-12-05) 2 commits
162  - for_each_reflog_ent_reverse: turn leftover check into assertion
163  - for_each_reflog_ent_reverse: fix newlines on block boundaries
165  Will merge to 'next'.
168 * po/doc-assume-unchanged (2014-12-09) 2 commits
169  - gitignore.txt: do not suggest assume-unchanged
170  - doc: make clear --assume-unchanged's user contract
172  Fixes long-standing misunderstanding of what assume-unchanged is
173  about.  Some text near what is removed by the bottom patch may also
174  have to be removed.
176  Will merge to 'next'.
179 * tb/t0027-eol-conversion (2014-12-05) 1 commit
180  - t0027: check the eol conversion warnings
182  Will merge to 'next'.
185 * jk/always-allow-large-packets (2014-12-10) 1 commit
186  - pkt-line: allow writing of LARGE_PACKET_MAX buffers
188  Will merge to 'next'.
191 * jk/commit-date-approxidate (2014-12-10) 2 commits
192  - commit: always populate GIT_AUTHOR_* variables
193  - commit: loosen ident checks when generating template
195  Will merge to 'next'.
198 * jk/read-packed-refs-without-path-max (2014-12-10) 3 commits
199  - read_packed_refs: use skip_prefix instead of static array
200  - read_packed_refs: pass strbuf to parse_ref_line
201  - read_packed_refs: use a strbuf for reading lines
203  Will merge to 'next'.
206 * jn/dedup-doc-header (2014-12-09) 2 commits
207  - put string-list API documentation in one place
208  - put strbuf API documentation in one place
210  We would want to have an easy way for developers to learn about
211  APIs, and also a way to encourage them to keep the API
212  documentation up to date when they make changes.  Having header
213  comments and API documentation duplicated in two different places
214  risked them going out of sync.
216  This removes the duplicates by dropping comments from the header;
217  it is just for discussion at this moment.
220 * jn/doc-api-errors (2014-12-04) 1 commit
221  - doc: document error handling functions and conventions
223  For discussion.
226 * js/fsck-tag-validation (2014-12-09) 2 commits
227  - index-pack: terminate object buffers with NUL
228  - fsck: properly bound "invalid tag name" error message
230  Follow-up to tag object format validation added in 2.2.
232  Will merge to 'next'.
235 * js/test-hashmap-squelch-gcc (2014-12-09) 1 commit
236  - test-hashmap: squelch gcc compiler warning
238  Will merge to 'next'.
241 * ok/rebase-i-count-todo (2014-12-10) 1 commit
242  - Show number of TODO items for interactive rebase
244  Will merge to 'next'.
247 * rw/apply-does-not-take-ignore-date (2014-12-09) 1 commit
248  - git-am.txt: --ignore-date flag is not passed to git-apply
251  Will merge to 'next'.
253 --------------------------------------------------
254 [Stalled]
256 * ms/submodule-update-config-doc (2014-11-03) 1 commit
257  - submodule: clarify documentation for update subcommand
259  Needs a reroll ($gmane/259037).
262 * je/quiltimport-no-fuzz (2014-10-21) 2 commits
263  - git-quiltimport: flip the default not to allow fuzz
264  - git-quiltimport.sh: allow declining fuzz with --exact option
266  "quiltimport" drove "git apply" always with -C1 option to reduce
267  context of the patch in order to give more chance to somewhat stale
268  patches to apply.  Add an "--exact" option to disable, and also
269  "-C$n" option to customize this behaviour.  The top patch
270  optionally flips the default to "--exact".
272  Tired of waiting for an Ack; will discard.
275 * jc/push-cert-hmac-optim (2014-09-25) 2 commits
276  - receive-pack: truncate hmac early and convert only necessary bytes
277  - sha1_to_hex: split out "hex-format n bytes" helper and use it
279  This is "we could do this if we wanted to", not "we measured and it
280  improves performance critical codepath".
282  Will perhaps drop.
285 * mt/patch-id-stable (2014-06-10) 1 commit
286  - patch-id: change default to stable
288  Teaches "git patch-id" to compute the patch ID that does not change
289  when the files in a single patch is reordered. As this new algorithm
290  is backward incompatible, the last bit to flip it to be the default
291  is left out of 'master' for now.
293  Nobody seems to be jumping up & down requesting this last step,
294  which makes the result somewhat backward incompatible.
295  Will perhaps drop.
298 * tr/remerge-diff (2014-11-10) 9 commits
299  - t4213: avoid "|" in sed regexp
300  - log --remerge-diff: show what the conflict resolution changed
301  - name-hash: allow dir hashing even when !ignore_case
302  - merge-recursive: allow storing conflict hunks in index
303  - merge_diff_mode: fold all merge diff variants into an enum
304  - combine-diff: do not pass revs->dense_combined_merges redundantly
305  - merge-recursive: -Xindex-only to leave worktree unchanged
306  - merge-recursive: internal flag to avoid touching the worktree
307  - merge-recursive: remove dead conditional in update_stages()
309  "log -p" output learns a new way to let users inspect a merge
310  commit by showing the differences between the automerged result
311  with conflicts the person who recorded the merge would have seen
312  and the final conflict resolution that was recorded in the merge.
314  Waiting for a reroll ($gmane/256591).
317 * hv/submodule-config (2014-11-11) 4 commits
318  - do not die on error of parsing fetchrecursesubmodules option
319  - use new config API for worktree configurations of submodules
320  - extract functions for submodule config set and lookup
321  - implement submodule config cache for lookup of submodule names
323  Kicked back to 'pu' per request ($gmane/255610).
326 * ab/add-interactive-show-diff-func-name (2014-05-12) 2 commits
327  - SQUASH??? git-add--interactive: Preserve diff heading when splitting hunks
328  - git-add--interactive: Preserve diff heading when splitting hunks
330  Waiting for a reroll.
333 * jn/gitweb-utf8-in-links (2014-05-27) 1 commit
334  - gitweb: Harden UTF-8 handling in generated links
336  $gmane/250758?
339 * ss/userdiff-update-csharp-java (2014-06-02) 2 commits
340  - userdiff: support Java try keyword
341  - userdiff: support C# async methods and correct C# keywords
343  Reviews sent; waiting for a response.
346 * bg/rebase-off-of-previous-branch (2014-04-16) 1 commit
347  - git-rebase: print name of rev when using shorthand
349  Teach "git rebase -" to report the concrete name of the branch
350  (i.e. the previous one).
352  But it stops short and does not do the same for "git rebase @{-1}".
353  Expecting a reroll.
356 * rb/merge-prepare-commit-msg-hook (2014-01-10) 4 commits
357  - merge: drop unused arg from abort_commit method signature
358  - merge: make prepare_to_commit responsible for write_merge_state
359  - t7505: ensure cleanup after hook blocks merge
360  - t7505: add missing &&
362  Expose more merge states (e.g. $GIT_DIR/MERGE_MODE) to hooks that
363  run during "git merge".  The log message stresses too much on one
364  hook, prepare-commit-msg, but it would equally apply to other hooks
365  like post-merge, I think.
367  Waiting for a reroll.
370 * jc/graph-post-root-gap (2013-12-30) 3 commits
371  - WIP: document what we want at the end
372  - graph: remove unused code a bit
373  - graph: stuff the current commit into graph->columns[]
375  This was primarily a RFH ($gmane/239580).
378 * tg/perf-lib-test-perf-cleanup (2013-09-19) 2 commits
379  - perf-lib: add test_perf_cleanup target
380  - perf-lib: split starting the test from the execution
382  Add test_perf_cleanup shell function to the perf suite, that allows
383  the script writers to define a test with a clean-up action.
385  Will hold.
388 * jc/show-branch (2014-03-24) 5 commits
389  - show-branch: use commit slab to represent bitflags of arbitrary width
390  - show-branch.c: remove "all_mask"
391  - show-branch.c: abstract out "flags" operation
392  - show-branch.c: lift all_mask/all_revs to a global static
393  - show-branch.c: update comment style
395  Waiting for the final step to lift the hard-limit before sending it out.
397 --------------------------------------------------
398 [Cooking]
400 * jc/exec-cmd-system-path-leak-fix (2014-11-30) 1 commit
401  - system_path(): always return free'able memory to the caller
403  The function sometimes returned a non-freeable memory and some
404  other times returned a piece of memory that must be freed.
406  Will merge to 'next'.
409 * jc/hook-cleanup (2014-12-01) 1 commit
410   (merged to 'next' on 2014-12-04 at 17059f5)
411  + run-command.c: retire unused run_hook_with_custom_index()
413  Remove unused code.
415  Will merge to 'master'.
418 * jk/push-simple (2014-11-30) 1 commit
419   (merged to 'next' on 2014-12-04 at 00785c7)
420  + push: truly use "simple" as default, not "upstream"
422  Git 2.0 was supposed to make the "simple" mode for the default of
423  "git push", but it didn't.
425  Will merge to 'master'.
428 * jn/rerere-fail-on-auto-update-failure (2014-12-03) 2 commits
429  - SQUASH???
430  - rerere: error out on autoupdate failure
432  Will be rerolled as a part of a larger series.
435 * js/push-to-deploy (2014-11-30) 2 commits
436  - t5516: more tests for receive.denyCurrentBranch=updateInstead
437  - receive-pack: add another option for receive.denyCurrentBranch
438  (this branch is used by jc/push-to-checkout.)
440  "git push" into a repository with a working tree normally refuses
441  to modify the branch that is checked out.  The command learned to
442  optionally do an equivalent of "git reset --hard" only when there
443  is no change to the working tree and the index instead, which would
444  be useful to "deploy" by pushing into a repository.
446  Will merge to 'next'.
449 * jc/push-to-checkout (2014-12-01) 2 commits
450  - receive-pack: support push-to-checkout hook
451  - receive-pack: refactor updateInstead codepath
452  (this branch uses js/push-to-deploy.)
454  Extending the js/push-to-deploy topic, the behaviour of "git push"
455  when updating the working tree and the index with an update to the
456  branch that is checked out can be tweaked by push-to-checkout hook.
458  Needs docs.
461 * lh/send-email-hide-x-mailer (2014-12-04) 4 commits
462  - SQUASH???
463  - test/send-email: --[no-]xmailer tests
464  - SQUASH???
465  - send-email: add --[no-]xmailer option
467  "git send-email" normally identifies itself via X-Mailer: header
468  in the message it sends out.  A new command line flag allows the
469  header to be squelched.
472 * nd/list-files (2014-12-01) 19 commits
473  - list-files: -M aka diff-cached
474  - list-files -F: show submodules with the new indicator '&'
475  - list-files: add -F/--classify
476  - list-files: show directories as well as files
477  - list-files: do not show duplicate cached entries
478  - list-files: sort output and remove duplicates
479  - list-files: add -t back
480  - list-files: add -1 short for --no-column
481  - list-files: add -R/--recursive short for --max-depth=-1
482  - list-files: -u does not imply showing stages
483  - list-files: a user friendly version of ls-files and more
484  - ls-files: support --max-depth
485  - ls-files: add --column
486  - ls-files: add --color to highlight file names
487  - ls-files: buffer full item in strbuf before printing
488  - ls_colors.c: highlight submodules like directories
489  - ls_colors.c: add a function to color a file name
490  - ls_colors.c: parse color.ls.* from config file
491  - ls_colors.c: add $LS_COLORS parsing code
493  A new "git list-files" Porcelain command, "ls-files" with bells and
494  whistles.
497 * nd/ls-tree-pathspec (2014-12-01) 5 commits
498  - t3102: style modernization
499  - t3102: document that ls-tree does not yet support negated pathspec
500  - ls-tree: disable negative pathspec because it's not supported
501  - ls-tree: remove path filtering logic in show_tree
502  - tree.c: update read_tree_recursive callback to pass strbuf as base
504  "git ls-tree" does not support path selection based on negative
505  pathspecs, but did not error out when negative pathspecs are given.
507  Will merge to 'next'.
510 * rj/t0050-passes (2014-11-30) 1 commit
511  - t0050-*.sh: mark the rename (case change) test as passing
513  Will merge to 'next'.
516 * rt/for-each-ref-spell-tcl-as-Tcl (2014-11-30) 1 commit
517  - for-each-ref: correct spelling of Tcl in option description
519  Will merge to 'next'.
522 * sb/ref-transaction-reflog (2014-12-03) 2 commits
523  - refs.c: rename transaction.updates to transaction.ref_updates
524  - refs.c: rename the transaction functions
525  (this branch uses sb/ref-transaction-unify-to-update.)
527  Will be rerolled as a part of a larger series.
530 * ye/http-accept-language (2014-12-03) 2 commits
531  - SQUASH???
532  - http: send Accept-Language header if possible
534  Breaks various people ($gmane/260903).
537 * jk/pack-bitmap (2014-11-30) 1 commit
538   (merged to 'next' on 2014-12-04 at eb457ad)
539  + pack-bitmap: do not use gcc packed attribute
541  Will merge to 'master'.
544 * nd/multiple-work-trees (2014-12-01) 34 commits
545  - git-common-dir: make "modules/" per-working-directory directory
546  - checkout: do not fail if target is an empty directory
547  - t2025: add a test to make sure grafts is working from a linked checkout
548  - checkout: don't require a work tree when checking out into a new one
549  - git_path(): keep "info/sparse-checkout" per work-tree
550  - count-objects: report unused files in $GIT_DIR/worktrees/...
551  - gc: support prune --worktrees
552  - gc: factor out gc.pruneexpire parsing code
553  - gc: style change -- no SP before closing parenthesis
554  - checkout: clean up half-prepared directories in --to mode
555  - checkout: reject if the branch is already checked out elsewhere
556  - prune: strategies for linked checkouts
557  - checkout: support checking out into a new working directory
558  - use new wrapper write_file() for simple file writing
559  - wrapper.c: wrapper to open a file, fprintf then close
560  - setup.c: support multi-checkout repo setup
561  - setup.c: detect $GIT_COMMON_DIR check_repository_format_gently()
562  - setup.c: convert check_repository_format_gently to use strbuf
563  - setup.c: detect $GIT_COMMON_DIR in is_git_directory()
564  - setup.c: convert is_git_directory() to use strbuf
565  - git-stash: avoid hardcoding $GIT_DIR/logs/....
566  - *.sh: avoid hardcoding $GIT_DIR/hooks/...
567  - git-sh-setup.sh: use rev-parse --git-path to get $GIT_DIR/objects
568  - $GIT_COMMON_DIR: a new environment variable
569  - commit: use SEQ_DIR instead of hardcoding "sequencer"
570  - fast-import: use git_path() for accessing .git dir instead of get_git_dir()
571  - reflog: avoid constructing .lock path with git_path
572  - *.sh: respect $GIT_INDEX_FILE
573  - git_path(): be aware of file relocation in $GIT_DIR
574  - path.c: group git_path(), git_pathdup() and strbuf_git_path() together
575  - path.c: rename vsnpath() to do_git_path()
576  - git_snpath(): retire and replace with strbuf_git_path()
577  - path.c: make get_pathname() call sites return const char *
578  - path.c: make get_pathname() return strbuf instead of static buffer
580  A replacement for contrib/workdir/git-new-workdir that does not
581  rely on symbolic links and make sharing of objects and refs safer
582  by making the borrowee and borrowers aware of each other.
585 * jc/unpack-trees-plug-leak (2014-11-17) 1 commit
586   (merged to 'next' on 2014-12-04 at 9f1df30)
587  + unpack_trees: plug leakage of o->result
589  Will merge to 'master'.
592 * jk/colors (2014-12-09) 6 commits
593   (merged to 'next' on 2014-12-09 at 802437b)
594  + parse_color: drop COLOR_BACKGROUND macro
595   (merged to 'next' on 2014-12-04 at 8d2e37b)
596  + diff-highlight: allow configurable colors
597  + parse_color: recognize "no$foo" to clear the $foo attribute
598  + parse_color: support 24-bit RGB values
599  + parse_color: refactor color storage
600  + Merge branch 'jn/parse-config-slot' into jk/colors
601  (this branch uses jk/colors-fix.)
603  "diff-highlight" filter (in contrib/) allows its color output
604  to be customized via configuration variables.
606  Will merge to 'master'.
609 * jk/colors-fix (2014-11-20) 3 commits
610   (merged to 'next' on 2014-12-04 at 0d97d69)
611  + t4026: test "normal" color
612  + config: fix parsing of "git config --get-color some.key -1"
613  + docs: describe ANSI 256-color mode
614  (this branch is used by jk/colors.)
616  Will merge to 'master'.
619 * jk/lock-ref-sha1-basic-return-errors (2014-11-20) 1 commit
620  - lock_ref_sha1_basic: do not die on locking errors
622  Will merge to 'next'.
625 * jk/no-perl-tests (2014-11-18) 2 commits
626   (merged to 'next' on 2014-12-04 at f166620)
627  + t960[34]: mark cvsimport tests as requiring perl
628  + t0090: mark add-interactive test with PERL prerequisite
630  Some tests that depend on perl lacked PERL prerequisite to protect
631  them, breaking build with NO_PERL configuration.
633  Will merge to 'master'.
636 * jk/rebuild-perl-scripts-with-no-perl-seting-change (2014-11-18) 3 commits
637   (merged to 'next' on 2014-12-04 at 27382d3)
638  + Makefile: have python scripts depend on NO_PYTHON setting
639  + Makefile: simplify by using SCRIPT_{PERL,SH}_GEN macros
640  + Makefile: have perl scripts depend on NO_PERL setting
642  The build procedure did not bother fixing perl and python scripts
643  when NO_PERL and NO_PYTHON build-time configuration changed.
645  Will merge to 'master'.
648 * mh/config-copy-string-from-git-path (2014-11-17) 1 commit
649   (merged to 'next' on 2014-12-04 at 9c9518b)
650  + cmd_config(): make a copy of path obtained from git_path()
652  Will merge to 'master'.
655 * po/everyday-doc (2014-11-17) 1 commit
656   (merged to 'next' on 2014-12-04 at 39d31fb)
657  + Documentation: change "gitlink" typo in git-push
659  Will merge to 'master'.
662 * ps/new-workdir-into-empty-directory (2014-12-03) 1 commit
663  - git-new-workdir: don't fail if the target directory is empty
665  Will merge to 'next'.
668 * rt/push-recurse-submodule-usage-string (2014-11-18) 1 commit
669   (merged to 'next' on 2014-12-04 at c43e23c)
670  + builtin/push.c: fix description of --recurse-submodules option
672  Will merge to 'master'.
675 * sb/copy-fd-errno (2014-11-17) 1 commit
676  - copy.c: make copy_fd preserve meaningful errno
678  Will be rerolled as a part of a larger series.
681 * sb/log-ref-write-fd (2014-11-20) 1 commit
682  - refs.c: add a function to append a reflog entry to a fd
684  Will be rerolled as a part of a larger series.
687 * sb/ref-transaction-unify-to-update (2014-11-20) 2 commits
688  - refs.c: make ref_transaction_delete a wrapper for ref_transaction_update
689  - refs.c: make ref_transaction_create a wrapper for ref_transaction_update
690  (this branch is used by sb/ref-transaction-reflog.)
692  Code simplification.
694  Will be rerolled as a part of a larger series.
697 * sv/doc-stripspace (2014-12-04) 1 commit
698   (merged to 'next' on 2014-12-04 at 32fd559)
699  + Documentation/git-stripspace: add synopsis for --comment-lines
701  Will merge to 'master'.
704 * sv/typofix-apply-error-message (2014-11-17) 1 commit
705   (merged to 'next' on 2014-12-04 at de7547a)
706  + apply: fix typo in an error message
708  Will merge to 'master'.
711 * da/difftool-mergetool-simplify-reporting-status (2014-11-21) 5 commits
712   (merged to 'next' on 2014-12-04 at c3c329f)
713  + mergetools: stop setting $status in merge_cmd()
714  + mergetool: simplify conditionals
715  + difftool--helper: add explicit exit statement
716  + mergetool--lib: remove use of $status global
717  + mergetool--lib: remove no-op assignment to $status from setup_user_tool
719  Code simplification.
721  Will merge to 'master'.
724 * dw/shell-basename-dashdash-before-stripping-leading-dash-from-login (2014-11-25) 1 commit
725  - git-sh-setup.sh: use dashdash with basename call
727  Will merge to 'next'.
730 * jc/refer-to-t-readme-from-submitting-patches (2014-11-24) 2 commits
731  - t/README: justify why "! grep foo" is sufficient
732  - SubmittingPatches: refer to t/README for tests
734  Will merge to 'next'.
737 * jc/t9001-modernise (2014-11-25) 5 commits
738  - t9001: style modernisation phase #5
739  - t9001: style modernisation phase #4
740  - t9001: style modernisation phase #3
741  - t9001: style modernisation phase #2
742  - t9001: style modernisation phase #1
743  (this branch uses pb/send-email-te.)
746 * js/t5000-dont-copy-bin-sh (2014-11-24) 1 commit
747  - t5000 on Windows: do not mistake "sh.exe" as "sh"
749  Will merge to 'next'.
752 * mg/add-ignore-errors (2014-11-21) 1 commit
753  - add: ignore only ignored files
755  Will merge to 'next'.
758 * mh/find-uniq-abbrev (2014-11-26) 1 commit
759  - sha1_name: avoid unnecessary sha1 lookup in find_unique_abbrev
761  Will merge to 'next'.
764 * mh/simplify-repack-without-refs (2014-11-25) 7 commits
765  - sort_string_list(): rename to string_list_sort()
766  - prune_remote(): iterate using for_each_string_list_item()
767  - prune_remote(): rename local variable
768  - repack_without_refs(): make the refnames argument a string_list
769  - prune_remote(): sort delete_refs_list references en masse
770  - prune_remote(): initialize both delete_refs lists in a single loop
771  - prune_remote(): exit early if there are no stale references
773  Will merge to 'next'.
776 * pb/am-message-id-footer (2014-11-25) 2 commits
777  - git-am: add --message-id/--no-message-id
778  - git-mailinfo: add --message-id
780  Will merge to 'next'.
783 * pb/send-email-te (2014-11-25) 2 commits
784  - git-send-email: add --transfer-encoding option
785  - git-send-email: delay creation of MIME headers
786  (this branch is used by jc/t9001-modernise.)
788  Will merge to 'next'.
791 * pw/remote-set-url-fetch (2014-11-26) 1 commit
792  - remote: add --fetch and --both options to set-url
794  Still under discussion.
797 * rj/no-xopen-source-for-cygwin (2014-11-24) 1 commit
798  - git-compat-util.h: don't define _XOPEN_SOURCE on cygwin
800  Will merge to 'next'.
803 * sb/string-list (2014-12-04) 3 commits
804  - string_list: remove string_list_insert_at_index() from its API
805  - mailmap: use higher level string list functions
806  - string_list: document string_list_(insert,lookup)
808  Will merge to 'next'.
811 * sb/write-sha1-update-reflog (2014-11-24) 1 commit
812  - refs.c: move reflog updates into its own function
814  Moves a part of function around to add a helper that still only has
815  one caller.  Need to see how this helps in a bigger picture.
818 * tb/config-core-filemode-check-on-broken-fs (2014-11-21) 1 commit
819  - init-db: improve the filemode trustability check
821  Will merge to 'next'.
824 * jk/approxidate-avoid-y-d-m-over-future-dates (2014-11-13) 2 commits
825   (merged to 'next' on 2014-11-14 at 3c11a1b)
826  + approxidate: allow ISO-like dates far in the future
827  + pass TIME_DATE_NOW to approxidate future-check
829  Traditionally we tried to avoid interpreting date strings given by
830  the user as future dates, e.g. GIT_COMMITTER_DATE=2014-12-10 when
831  used early November 2014 was taken as "October 12, 2014" because it
832  is likely that a date in the future, December 10, is a mistake.
834  Loosen this and do not tiebreak by future-ness of the date when
836  (1) ISO-like format is used, and
837  (2) the string can make sense interpreted as both y-m-d and y-d-m.
839  Will cook in 'next'.
842 * mb/enable-lib-terminal-test-on-newer-darwin (2014-11-14) 1 commit
843   (merged to 'next' on 2014-11-14 at b2aae27)
844  + t/lib-terminal: allow TTY tests to run under recent Mac OS
846  We probably should drop this ($gmane/259609).
849 * br/imap-send-verbosity (2014-11-05) 1 commit
850   (merged to 'next' on 2014-11-12 at d9e58ec)
851  + imap-send: use parse options API to determine verbosity
852  (this branch is used by br/imap-send-via-libcurl.)
854  Will cook in 'next'.
857 * br/imap-send-via-libcurl (2014-11-10) 1 commit
858   (merged to 'next' on 2014-11-12 at 5327ab4)
859  + git-imap-send: use libcurl for implementation
860  (this branch uses br/imap-send-verbosity.)
862  Will cook in 'next'.
865 * cc/interpret-trailers-more (2014-11-10) 4 commits
866  - trailer: add test with an old style conflict block
867  - trailer: reuse ignore_non_trailer() to ignore conflict lines
868  - commit: make ignore_non_trailer() non static
869  - Merge branch 'jc/conflict-hint' into cc/interpret-trailers-more
870  (this branch uses jc/conflict-hint.)
872  Will merge to 'next'.
875 * nd/lockfile-absolute (2014-11-03) 1 commit
876   (merged to 'next' on 2014-11-06 at 68722a9)
877  + lockfile.c: store absolute path
879  The lockfile API can get confused which file to clean up when the
880  process moved the $cwd after creating a lockfile.
882  Will cook in 'next'.
885 * jc/merge-bases (2014-10-30) 2 commits
886   (merged to 'next' on 2014-11-06 at 491e576)
887  + get_merge_bases(): always clean-up object flags
888  + bisect: clean flags after checking merge bases
890  Will cook in 'next'.
893 * jc/strbuf-add-lines-avoid-sp-ht-sequence (2014-10-27) 1 commit
894   (merged to 'next' on 2014-10-29 at 9167582)
895  + strbuf_add_commented_lines(): avoid SP-HT sequence in commented lines
897  The commented output used to blindly add a SP before the payload
898  line, resulting in "# \t<indented text>\n" when the payload began
899  with a HT.  Instead, produce "#\t<indented text>\n".
901  Will cook in 'next'.
904 * nd/untracked-cache (2014-10-27) 19 commits
905  - t7063: tests for untracked cache
906  - update-index: test the system before enabling untracked cache
907  - update-index: manually enable or disable untracked cache
908  - status: enable untracked cache
909  - untracked cache: mark index dirty if untracked cache is updated
910  - untracked cache: print stats with $GIT_TRACE_UNTRACKED_STATS
911  - untracked cache: avoid racy timestamps
912  - read-cache.c: split racy stat test to a separate function
913  - untracked cache: invalidate at index addition or removal
914  - untracked cache: load from UNTR index extension
915  - untracked cache: save to an index extension
916  - untracked cache: don't open non-existent .gitignore
917  - untracked cache: mark what dirs should be recursed/saved
918  - untracked cache: record/validate dir mtime and reuse cached output
919  - untracked cache: make a wrapper around {open,read,close}dir()
920  - untracked cache: invalidate dirs recursively if .gitignore changes
921  - untracked cache: initial untracked cache validation
922  - untracked cache: record .gitignore information and dir hierarchy
923  - dir.c: optionally compute sha-1 of a .gitignore file
925  Comments?
928 * zk/grep-color-words (2014-10-27) 2 commits
929   (merged to 'next' on 2014-10-28 at 4d0457c)
930  + Revert "grep: fix match highlighting for combined patterns with context lines"
931   (merged to 'next' on 2014-10-24 at 2d2f8f8)
932  + grep: fix match highlighting for combined patterns with context lines
934  rs/grep-color-words topic solves it in a different way.
936  Will discard.
939 * jc/conflict-hint (2014-10-28) 4 commits
940   (merged to 'next' on 2014-10-29 at 693250f)
941  + merge & sequencer: turn "Conflicts:" hint into a comment
942  + builtin/commit.c: extract ignore_non_trailer() helper function
943  + merge & sequencer: unify codepaths that write "Conflicts:" hint
944  + builtin/merge.c: drop a parameter that is never used
945  (this branch is used by cc/interpret-trailers-more.)
947  Unlike all the other hints given in the commit log editor, the list
948  of conflicted paths were appended at the end without commented out.
950  Will cook in 'next'.
953 * jc/diff-b-m (2014-10-23) 1 commit
954   (merged to 'next' on 2014-10-28 at 4daedb1)
955  + diff -B -M: fix output for "copy and then rewrite" case
957  Fix long-standing bug in "diff -B -M" output.
959  Will cook in 'next'.
962 * jc/checkout-local-track-report (2014-10-14) 1 commit
963   (merged to 'next' on 2014-10-21 at f636a00)
964  + checkout: report upstream correctly even with loosely defined branch.*.merge
966  The report from "git checkout" on a branch that builds on another
967  local branch by setting its branch.*.merge to branch name (not a
968  full refname) incorrectly said that the upstream is gone.
970  Will cook in 'next'.
973 * jc/clone-borrow (2014-10-15) 1 commit
974   (merged to 'next' on 2014-10-21 at b76ea34)
975  + clone: --dissociate option to mark that reference is only temporary
977  Allow "git clone --reference" to be used more safely.
979  Will cook in 'next'.
981 --------------------------------------------------
982 [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