Meta/MaintNotes: post 1.8.1
[git.git] / whats-cooking.txt
blob098d91b62f2ffbc13fc84a08033122c2b3a64f7c
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 Subject: What's cooking in git.git (Dec 2012, #07; Wed, 26)
4 X-master-at: 86c3e6ed515d5e3bfca1d515c607db55ba032d71
5 X-next-at: 3b93f37cbe43cae3e38334ca5dd4acf52ee3bfde
7 What's cooking in git.git (Dec 2012, #07; Wed, 26)
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 of the
15 repositories listed at
17     http://git-blame.blogspot.com/p/git-public-repositories.html
19 --------------------------------------------------
20 [New Topics]
22 * jc/format-patch-reroll (2012-12-22) 7 commits
23  - format-patch: add --reroll-count=$N option
24  - get_patch_filename(): split into two functions
25  - get_patch_filename(): drop "just-numbers" hack
26  - get_patch_filename(): simplify function signature
27  - builtin/log.c: stop using global patch_suffix
28  - builtin/log.c: drop redundant "numbered_files" parameter from make_cover_letter()
29  - builtin/log.c: drop unused "numbered" parameter from make_cover_letter()
31  Teach "format-patch" to prefix v4- to its output files for the
32  fourth iteration of a patch series, to make it easier for the
33  submitter to keep separate copies for iterations.
35  Needs tests and documentation updates.
38 * ms/subtree-fixlets (2012-12-22) 2 commits
39   (merged to 'next' on 2012-12-26 at 1cb26eb)
40  + git-subtree: fix typo in manpage
41  + git-subtree: ignore git-subtree executable
43  Will cook in 'next'.
46 * mz/pick-unborn (2012-12-23) 2 commits
47  - learn to pick/revert into unborn branch
48  - tests: move test_cmp_rev to test-lib-functions
50  Will merge to 'next'.
53 * nd/retire-fnmatch (2012-12-22) 8 commits
54  - wildmatch: advance faster in <asterisk> + <literal> patterns
55  - wildmatch: make a special case for "*/" with FNM_PATHNAME
56  - Makefile: add USE_WILDMATCH to use wildmatch as fnmatch
57  - test-wildmatch: add "perf" command to compare wildmatch and fnmatch
58  - wildmatch: support "no FNM_PATHNAME" mode
59  - wildmatch: make dowild() take arbitrary flags
60  - wildmatch: rename constants and update prototype
61  - compat/fnmatch: respect NO_FNMATCH* even on glibc
62  (this branch uses nd/wildmatch.)
64  Replace our use of fnmatch(3) with a more feature-rich wildmatch.
67 * jc/test-cvs-no-init-in-existing-dir (2012-12-24) 1 commit
68   (merged to 'next' on 2012-12-26 at 3b93f37)
69  + t9200: let "cvs init" create the test repository
71  Will cook in 'next'.
74 * os/gitweb-highlight-uncaptured (2012-12-26) 1 commit
75  - gitweb: fix error when highlight is enabled
77  Will merge to 'next'.
80 * so/prompt-command (2012-12-26) 1 commit
81   (merged to 'next' on 2012-12-26 at 27c5683)
82  + make __git_ps1 accept a third parameter in pcmode
84  Gives the same degree of customizability to the new prompt command
85  mode users as the command substitution mode has.
87  Will fast-track to 'master' before 1.8.1 final.
89 --------------------------------------------------
90 [Stalled]
92 * jc/doc-maintainer (2012-11-27) 1 commit
93  - update "howto maintain git"
95  An early draft that is still incomplete.
98 * fc/remote-bzr (2012-12-13) 10 commits
99  - (fixup) test-bzr.sh: fix multi-line string assignment
100  - remote-bzr: detect local repositories
101  - remote-bzr: add support for older versions of bzr
102  - remote-bzr: add support to push special modes
103  - remote-bzr: add support for fecthing special modes
104  - remote-bzr: add simple tests
105  - remote-bzr: update working tree upon pushing
106  - remote-bzr: add support for remote repositories
107  - remote-bzr: add support for pushing
108  - Add new remote-bzr transport helper
110  New remote helper for bzr (v3).  With minor fixes, this may be ready
111  for 'next'.
114 * mo/cvs-server-updates (2012-12-09) 18 commits
115  - t9402: Use TABs for indentation
116  - t9402: Rename check.cvsCount and check.list
117  - t9402: Simplify git ls-tree
118  - t9402: Add missing &&; Code style
119  - t9402: No space after IO-redirection
120  - t9402: Dont use test_must_fail cvs
121  - t9402: improve check_end_tree() and check_end_full_tree()
122  - t9402: sed -i is not portable
123  - cvsserver Documentation: new cvs ... -r support
124  - cvsserver: add t9402 to test branch and tag refs
125  - cvsserver: support -r and sticky tags for most operations
126  - cvsserver: Add version awareness to argsfromdir
127  - cvsserver: generalize getmeta() to recognize commit refs
128  - cvsserver: implement req_Sticky and related utilities
129  - cvsserver: add misc commit lookup, file meta data, and file listing functions
130  - cvsserver: define a tag name character escape mechanism
131  - cvsserver: cleanup extra slashes in filename arguments
132  - cvsserver: factor out git-log parsing logic
134  Needs review by folks interested in cvsserver.
137 * as/check-ignore (2012-11-08) 14 commits
138  - t0007: fix tests on Windows
139  - Documentation/check-ignore: we show the deciding match, not the first
140  - Add git-check-ignore sub-command
141  - dir.c: provide free_directory() for reclaiming dir_struct memory
142  - pathspec.c: move reusable code from builtin/add.c
143  - dir.c: refactor treat_gitlinks()
144  - dir.c: keep track of where patterns came from
145  - dir.c: refactor is_path_excluded()
146  - dir.c: refactor is_excluded()
147  - dir.c: refactor is_excluded_from_list()
148  - dir.c: rename excluded() to is_excluded()
149  - dir.c: rename excluded_from_list() to is_excluded_from_list()
150  - dir.c: rename path_excluded() to is_path_excluded()
151  - dir.c: rename cryptic 'which' variable to more consistent name
153  Duy helped to reroll this.
155  Expecting a re-roll.
158 * aw/rebase-am-failure-detection (2012-10-11) 1 commit
159  - rebase: Handle cases where format-patch fails
161  I am unhappy a bit about the possible performance implications of
162  having to store the output in a temporary file only for a rare case
163  of format-patch aborting.
166 * jk/lua-hackery (2012-10-07) 6 commits
167  - pretty: fix up one-off format_commit_message calls
168  - Minimum compilation fixup
169  - Makefile: make "lua" a bit more configurable
170  - add a "lua" pretty format
171  - add basic lua infrastructure
172  - pretty: make some commit-parsing helpers more public
174  Interesting exercise. When we do this for real, we probably would want
175  to wrap a commit to make it more like an "object" with methods like
176  "parents", etc.
179 * fc/remote-testgit-feature-done (2012-10-29) 1 commit
180  - remote-testgit: properly check for errors
182  Needs review and Ack (or Nack) from people involved in the remote
183  helper interface for this to move forward.
186 * rc/maint-complete-git-p4 (2012-09-24) 1 commit
187   (merged to 'next' on 2012-10-29 at af52cef)
188  + Teach git-completion about git p4
190  Comment from Pete will need to be addressed in a follow-up patch.
193 * jc/maint-name-rev (2012-09-17) 7 commits
194  - describe --contains: use "name-rev --algorithm=weight"
195  - name-rev --algorithm=weight: tests and documentation
196  - name-rev --algorithm=weight: cache the computed weight in notes
197  - name-rev --algorithm=weight: trivial optimization
198  - name-rev: --algorithm option
199  - name_rev: clarify the logic to assign a new tip-name to a commit
200  - name-rev: lose unnecessary typedef
202  "git name-rev" names the given revision based on a ref that can be
203  reached in the smallest number of steps from the rev, but that is
204  not useful when the caller wants to know which tag is the oldest one
205  that contains the rev.  This teaches a new mode to the command that
206  uses the oldest ref among those which contain the rev.
208  I am not sure if this is worth it; for one thing, even with the help
209  from notes-cache, it seems to make the "describe --contains" even
210  slower. Also the command will be unusably slow for a user who does
211  not have a write access (hence unable to create or update the
212  notes-cache).
214  Stalled mostly due to lack of responses.
217 * jc/xprm-generation (2012-09-14) 1 commit
218  - test-generation: compute generation numbers and clock skews
220  A toy to analyze how bad the clock skews are in histories of real
221  world projects.
223  Stalled mostly due to lack of responses.
226 * jc/blame-no-follow (2012-09-21) 2 commits
227  - blame: pay attention to --no-follow
228  - diff: accept --no-follow option
230  Teaches "--no-follow" option to "git blame" to disable its
231  whole-file rename detection.
233  Stalled mostly due to lack of responses.
236 * jc/doc-default-format (2012-11-26) 2 commits
237  - [SQAUSH] allow "cd Doc* && make DEFAULT_DOC_TARGET=..."
238  - Allow generating a non-default set of documentation
240  Need to address the installation half if this is to be any useful.
243 * jc/add-delete-default (2012-08-13) 1 commit
244  - git add: notice removal of tracked paths by default
246  "git add dir/" updated modified files and added new files, but does
247  not notice removed files, which may be "Huh?" to some users.  They
248  can of course use "git add -A dir/", but why should they?
250  Resurrected from graveyard, as I thought it was a worthwhile thing
251  to do in the longer term.
253  Waiting for comments.
256 * mb/remote-default-nn-origin (2012-07-11) 6 commits
257  - Teach get_default_remote to respect remote.default.
258  - Test that plain "git fetch" uses remote.default when on a detached HEAD.
259  - Teach clone to set remote.default.
260  - Teach "git remote" about remote.default.
261  - Teach remote.c about the remote.default configuration setting.
262  - Rename remote.c's default_remote_name static variables.
264  When the user does not specify what remote to interact with, we
265  often attempt to use 'origin'.  This can now be customized via a
266  configuration variable.
268  Expecting a re-roll.
270  "The first remote becomes the default" bit is better done as a
271  separate step.
273 --------------------------------------------------
274 [Cooking]
276 * jc/merge-blobs (2012-12-26) 5 commits
277  - merge-tree: fix d/f conflicts
278  - merge-tree: add comments to clarify what these functions are doing
279  - merge-tree: lose unused "resolve_directories"
280  - merge-tree: lose unused "flags" from merge_list
281  - Which merge_file() function do you mean?
283  A beginning of a new merge strategy based on the disused merge-tree
284  proof-of-concept code.
287 * mk/maint-graph-infinity-loop (2012-09-25) 1 commit
288   (merged to 'next' on 2012-12-26 at 2ff59ab)
289  + graph.c: infinite loop in git whatchanged --graph -m
291  The --graph code fell into infinite loop when asked to do what the
292  code did not expect ;-)
295 * jc/mkstemp-more-careful-error-reporting (2012-12-18) 1 commit
296   (merged to 'next' on 2012-12-22 at 18cdaf0)
297  + xmkstemp(): avoid showing truncated template more carefully
299  An earlier patch to save original arguments to mkstemp() away and
300  use it to report what filename we failed to create incorrectly used
301  the buffer munged by failing mkstemp().
304 * jc/maint-test-portability (2012-12-19) 3 commits
305   (merged to 'next' on 2012-12-22 at daeed53)
306  + t4014: fix arguments to grep
307  + t9502: do not assume GNU tar
308  + t0200: "locale" may not exist
309  (this branch is used by jc/test-portability.)
311  Minor test fixes noticed while running our tests on OpenBSD 5.2,
312  applicable to 'maint'.
315 * jc/test-portability (2012-12-19) 3 commits
316   (merged to 'next' on 2012-12-22 at 123041b)
317  + t9020: use configured Python to run the test helper
318  + t3600: Avoid "cp -a", which is a GNUism
319  + Merge branch 'jc/maint-test-portability' into 'jc/test-portability'
320  (this branch uses jc/maint-test-portability.)
322  The remainder of jc/maint-test-portability, applicable to 'master'.
325 * jc/maint-fnmatch-old-style-definition (2012-12-19) 1 commit
326   (merged to 'next' on 2012-12-22 at 540df2c)
327  + compat/fnmatch: update old-style definition to ANSI
329  Update old-style function definition "int foo(bar) int bar; {}"
330  to "int foo(int bar) {}".
333 * jk/pathspec-literal (2012-12-19) 1 commit
334   (merged to 'next' on 2012-12-22 at c794bd6)
335  + add global --literal-pathspecs option
337  Allow scripts to feed literal paths to commands that take
338  pathspecs, by disabling wildcard globbing.
341 * da/p4merge-mktemp (2012-12-21) 1 commit
342   (merged to 'next' on 2012-12-26 at bb680a9)
343  + mergetools/p4merge: Honor $TMPDIR for the /dev/null placeholder
345  Create an empty file in $TMPDIR instead of using an empty file in
346  the local directory.
349 * er/python-version-requirements (2012-12-25) 1 commit
350  - Python scripts: check minimum compatible version after auditing
352  Expecting a reroll.
355 * mb/gitweb-highlight-link-target (2012-12-20) 1 commit
356  - Highlight the link target line in Gitweb using CSS
358  Expecting a reroll.
361 * mz/oneway-merge-wo-u-no-lstat (2012-12-20) 1 commit
362   (merged to 'next' on 2012-12-22 at 87bd30e)
363  + oneway_merge(): only lstat() when told to update worktree
365  Optimize "read-tree -m <tree-ish>" without "-u".
368 * jk/repack-ref-racefix (2012-12-21) 1 commit
369   (merged to 'next' on 2012-12-22 at 03e1ca9)
370  + refs: do not use cached refs in repack_without_ref
372  Race-fix for pack-refs running in parallel to ref creation.
375 * rb/http-cert-cred-no-username-prompt (2012-12-21) 1 commit
376   (merged to 'next' on 2012-12-22 at 9fc28ed)
377  + http.c: Avoid username prompt for certifcate credentials
379  It is wrong to ask for username if the authentication is done by
380  certificate identity.
383 * wk/submodule-update-remote (2012-12-19) 3 commits
384   (merged to 'next' on 2012-12-22 at 7ddf897)
385  + submodule add: If --branch is given, record it in .gitmodules
386  + submodule update: add --remote for submodule's upstream changes
387  + submodule: add get_submodule_config helper funtion
389  The beginning of 'integrate with the tip of the remote branch, not
390  the commit recorded in the superproject gitlink' support.
393 * cc/no-gitk-build-dependency (2012-12-18) 3 commits
394   (merged to 'next' on 2012-12-22 at da7b2cf)
395  + Makefile: replace "echo 1>..." with "echo >..."
396  + Makefile: detect when PYTHON_PATH changes
397  + Makefile: remove tracking of TCLTK_PATH
399  Remove leftover bits from an earlier change to move gitk in its own
400  subdirectory.  Reimplementing the dependency tracking rules needs
401  to be done in gitk history separately.
404 * jc/format-color-auto (2012-12-17) 2 commits
405   (merged to 'next' on 2012-12-18 at 5aaac94)
406  + log --format: teach %C(auto,black) to respect color config
407  + t6006: clean up whitespace
409  Introduce "log --format=%C(auto,blue)Foo%C(auto,reset)" that does
410  not color its output when writing to a non-terminal.
412  Will cook in 'next'.
415 * ss/svn-prompt (2012-12-17) 3 commits
416   (merged to 'next' on 2012-12-26 at 1012ae2)
417  + git-svn, perl/Git.pm: extend and use Git->prompt method for querying users
418  + perl/Git.pm: Honor SSH_ASKPASS as fallback if GIT_ASKPASS is not set
419  + git-svn, perl/Git.pm: add central method for prompting passwords
421  Tweak the way "git svn" asks for password to be in line with the
422  rest of the system, so that the same SSH/GIT_ASKPASS can be used.
425 * zk/clean-report-failure (2012-12-17) 1 commit
426  - git-clean: Display more accurate delete messages
428  "git clean" states what it is going to remove and then goes on to
429  remove it, but sometimes it only discovers things that cannot be
430  removed after recursing into a directory, which makes the output
431  confusing and even wrong.
433  Expecting a reroll.
436 * mp/complete-paths (2012-12-21) 1 commit
437  - git-completion.bash: add support for path completion
439  The completion script used to let the default completer to suggest
440  pathnames, which gave too many irrelevant choices (e.g. "git add"
441  would not want to add an unmodified path).  Teach it to use a more
442  git-aware logic to enumerate only relevant ones.
444  Waiting for area-experts' review.
447 * ja/directory-attrs (2012-12-17) 1 commit
448   (merged to 'next' on 2012-12-17 at ced8e73)
449  + Add directory pattern matching to attributes
451  The attribute mechanism didn't allow limiting attributes to be
452  applied to only a single directory itself with "path/" like the
453  exclude mechanism does.
455  Will cook in 'next'.
458 * jk/mailmap-from-blob (2012-12-13) 5 commits
459   (merged to 'next' on 2012-12-17 at 14b7cdc)
460  + mailmap: default mailmap.blob in bare repositories
461  + mailmap: fix some documentation loose-ends for mailmap.blob
462  + mailmap: clean up read_mailmap error handling
463  + mailmap: support reading mailmap from blobs
464  + mailmap: refactor mailmap parsing for non-file sources
466  Allow us to read, and default to read, mailmap files from the tip
467  of the history in bare repositories.  This will help running tools
468  like shortlog in server settings.
470  Will cook in 'next'.
473 * dm/port (2012-12-19) 4 commits
474   (merged to 'next' on 2012-12-22 at 8adc198)
475  + git-compat-util.h: do not #include <sys/param.h> by default
476  + Generalize the inclusion of strings.h
477  + Detect when the passwd struct is missing pw_gecos
478  + Support builds when sys/param.h is missing
479  (this branch is used by mk/qnx.)
481  Add a few more knobs for new platform ports can tweak.
484 * jk/complete-commit-c (2012-12-15) 1 commit
485   (merged to 'next' on 2012-12-18 at 75b5f21)
486  + completion: complete refs for "git commit -c"
488  Complete "git commmit -c foo<TAB>" into a refname that begins with
489  "foo".
491  Will cook in 'next'.
494 * jk/error-const-return (2012-12-15) 2 commits
495   (merged to 'next' on 2012-12-22 at bf2b1cd)
496  + silence some -Wuninitialized false positives
497  + make error()'s constant return value more visible
499  Help compilers' flow analysis by making it more explicit that
500  error() always returns -1, to reduce false "variable used
501  uninitialized" warnings.  Looks somewhat ugly but not too much.
504 * mk/qnx (2012-12-19) 2 commits
505   (merged to 'next' on 2012-12-22 at 0473197)
506  + Port to QNX
507  + Make lock local to fetch_pack
508  (this branch uses dm/port.)
510  Port to QNX; we may want to rebase this on top of dm/port topic as
511  it also wants to use the HAVE_STRINGS_H mechanism it introduces.
514 * as/test-tweaks (2012-12-20) 7 commits
515   (merged to 'next' on 2012-12-22 at 7312c6c)
516  + tests: paint unexpectedly fixed known breakages in bold red
517  + tests: test the test framework more thoroughly
518  + tests: refactor mechanics of testing in a sub test-lib
519  + tests: change info messages from yellow/brown to cyan
520  + tests: paint skipped tests in blue
521  + tests: paint known breakages in yellow
522  + tests: test number comes first in 'not ok $count - $message'
524  Various minor tweaks to the test framework to paint its output
525  lines in colors that match what they mean better.
528 * sp/shortlog-missing-lf (2012-12-11) 2 commits
529   (merged to 'next' on 2012-12-11 at 64b8429)
530  + strbuf_add_wrapped*(): Remove unused return value
531  + shortlog: fix wrapping lines of wraplen
533  When a line to be wrapped has a solid run of non space characters
534  whose length exactly is the wrap width, "git shortlog -w" failed to
535  add a newline after such a line.
537  Will cook in 'next'.
540 * ap/log-mailmap (2012-12-26) 9 commits
541  - log: add log.mailmap configuration option
542  - log: grep author/committer using mailmap
543  - test: Add test for --use-mailmap option
544  - log: Add --use-mailmap option
545  - pretty: Use mailmap to display username and email
546  - mailmap: Add mailmap structure to rev_info and pp
547  - mailmap: Simplify map_user() interface
548  - mailmap: Remove buffer length limit in map_user
549  - Use split_ident_line to parse author and committer
551  Clean up various codepaths around mailmap and teach the "log"
552  machinery to use it.
554  I think this is almost ready for 'next' with minor fix-ups to avoid
555  unnecessary copying.
558 * jc/fetch-ignore-symref (2012-12-11) 1 commit
559   (merged to 'next' on 2012-12-17 at 370e2c8)
560  + fetch: ignore wildcarded refspecs that update local symbolic refs
562  Avoid false error from an attempt to update local symbolic ref via
563  fetch.
565  Will cook in 'next'.
568 * md/gitweb-sort-by-age (2012-12-11) 1 commit
569   (merged to 'next' on 2012-12-13 at 9f39410)
570  + gitweb: Sort projects with undefined ages last
572  Gitweb showed repositories without any commit at the top in its
573  age-sorted view, in which the users are interested in looking at
574  active projects; sorting them at the bottom makes it more useful.
576  Will cook in 'next'.
579 * ss/nedmalloc-compilation (2012-12-11) 1 commit
580   (merged to 'next' on 2012-12-13 at c1f0d7f)
581  + nedmalloc: Fix a compile warning (exposed as error) with GCC 4.7.2
583  Will cook in 'next'.
586 * jc/maint-fbsd-sh-ifs-workaround (2012-12-10) 1 commit
587   (merged to 'next' on 2012-12-11 at 6659fdc)
588  + sh-setup: work around "unset IFS" bug in some shells
590  Will cook in 'next'.
593 * jc/same-encoding (2012-12-10) 1 commit
594   (merged to 'next' on 2012-12-17 at 86b41c7)
595  + format_commit_message(): simplify calls to logmsg_reencode()
597  Finishing touches to the series to unify "Do we need to reencode
598  between these two encodings?" logic.
600  Will cook in 'next'.
603 * nd/invalidate-i-t-a-cache-tree (2012-12-15) 4 commits
604   (merged to 'next' on 2012-12-18 at 33e4488)
605  + cache-tree: invalidate i-t-a paths after generating trees
606  + cache-tree: fix writing cache-tree when CE_REMOVE is present
607  + cache-tree: replace "for" loops in update_one with "while" loops
608  + cache-tree: remove dead i-t-a code in verify_cache()
610  Writing out a tree object when you still have intent-to-add entries
611  in the index left an incorrect cache-tree data there.
613  Will cook in 'next'.
616 * jl/submodule-deinit (2012-12-04) 1 commit
617   (merged to 'next' on 2012-12-07 at ea772f0)
618  + submodule: add 'deinit' command
620  There was no Porcelain way to say "I no longer am interested in
621  this submodule", once you express your interest in a submodule with
622  "submodule init".  "submodule deinit" is the way to do so.
624  Will cook in 'next'.
627 * pf/editor-ignore-sigint (2012-12-02) 5 commits
628   (merged to 'next' on 2012-12-07 at 6b04419)
629  + launch_editor: propagate signals from editor to git
630  + run-command: do not warn about child death from terminal
631  + launch_editor: ignore terminal signals while editor has control
632  + launch_editor: refactor to use start/finish_command
633  + run-command: drop silent_exec_failure arg from wait_or_whine
635  Avoid confusing cases where the user hits Ctrl-C while in the editor
636  session, not realizing git will receive the signal. Since most editors
637  will take over the terminal and will block SIGINT, this is not likely
638  to confuse anyone.
640  Will cook in 'next'.
643 * bc/append-signed-off-by (2012-11-26) 11 commits
644  - Unify appending signoff in format-patch, commit and sequencer
645  - format-patch: update append_signoff prototype
646  - format-patch: stricter S-o-b detection
647  - t4014: more tests about appending s-o-b lines
648  - sequencer.c: teach append_signoff to avoid adding a duplicate newline
649  - sequencer.c: teach append_signoff how to detect duplicate s-o-b
650  - sequencer.c: always separate "(cherry picked from" from commit body
651  - sequencer.c: recognize "(cherry picked from ..." as part of s-o-b footer
652  - t/t3511: add some tests of 'cherry-pick -s' functionality
653  - t/test-lib-functions.sh: allow to specify the tag name to test_commit
654  - sequencer.c: remove broken support for rfc2822 continuation in footer
656  Expecting a re-roll after a review.
659 * mh/unify-xml-in-imap-send-and-http-push (2012-12-02) 8 commits
660   (merged to 'next' on 2012-12-03 at d677090)
661  + wrap_in_html(): process message in bulk rather than line-by-line
662  + wrap_in_html(): use strbuf_addstr_xml_quoted()
663  + imap-send: change msg_data from storing (ptr, len) to storing strbuf
664  + imap-send: correctly report errors reading from stdin
665  + imap-send: store all_msgs as a strbuf
666  + lf_to_crlf(): NUL-terminate msg_data::data
667  + xml_entities(): use function strbuf_addstr_xml_quoted()
668  + Add new function strbuf_add_xml_quoted()
670  Update imap-send to reuse xml quoting code from http-push codepath,
671  clean up some code, and fix a small bug.
673  Will cook in 'next'.
676 * jk/fsck-dot-in-trees (2012-11-28) 2 commits
677   (merged to 'next' on 2012-11-28 at 519dabc)
678  + fsck: warn about ".git" in trees
679  + fsck: warn about '.' and '..' in trees
681  Will cook in 'next'.
684 * mh/pthreads-autoconf (2012-11-27) 1 commit
685   (merged to 'next' on 2012-11-28 at 780600e)
686  + configure.ac: fix pthreads detection on Mac OS X
688  Will cook in 'next'.
691 * jn/warn-on-inaccessible-loosen (2012-10-14) 4 commits
692   (merged to 'next' on 2012-11-28 at 43d51c2)
693  + config: exit on error accessing any config file
694  + doc: advertise GIT_CONFIG_NOSYSTEM
695  + config: treat user and xdg config permission problems as errors
696  + config, gitignore: failure to access with ENOTDIR is ok
698  An RFC to deal with a situation where .config/git is a file and we
699  notice .config/git/config is not readable due to ENOTDIR, not
700  ENOENT.
702  Will cook in 'next'.
705 * mh/ceiling (2012-10-29) 8 commits
706   (merged to 'next' on 2012-11-26 at d1ce76a)
707  + string_list_longest_prefix(): remove function
708  + setup_git_directory_gently_1(): resolve symlinks in ceiling paths
709  + longest_ancestor_length(): require prefix list entries to be normalized
710  + longest_ancestor_length(): take a string_list argument for prefixes
711  + longest_ancestor_length(): use string_list_split()
712  + Introduce new function real_path_if_valid()
713  + real_path_internal(): add comment explaining use of cwd
714  + Introduce new static function real_path_internal()
716  Elements of GIT_CEILING_DIRECTORIES list may not match the real
717  pathname we obtain from getcwd(), leading the GIT_DIR discovery
718  logic to escape the ceilings the user thought to have specified.
720  Resurrected from Stalled; the earlier performance fear was
721  unwarranted.
723  Will cook in 'next'.
726 * fc/fast-export-fixes (2012-12-03) 15 commits
727   (merged to 'next' on 2012-12-03 at f9df523)
728  + fast-export: make sure updated refs get updated
729  + fast-export: don't handle uninteresting refs
730  + fast-export: fix comparison in tests
731  + fast-export: trivial cleanup
732  + remote-testgit: implement the "done" feature manually
733  + remote-testgit: report success after an import
734  + remote-testgit: exercise more features
735  + remote-testgit: cleanup tests
736  + remote-testgit: remove irrelevant test
737  + remote-testgit: remove non-local functionality
738  + Add new simplified git-remote-testgit
739  + Rename git-remote-testgit to git-remote-testpy
740  + remote-helpers: fix failure message
741  + remote-testgit: fix direction of marks
742  + fast-export: avoid importing blob marks
744  Will cook in 'next'.
747 * jc/apply-trailing-blank-removal (2012-10-12) 1 commit
748   (merged to 'next' on 2012-11-26 at 3af69e7)
749  + apply.c:update_pre_post_images(): the preimage can be truncated
751  Fix to update_pre_post_images() that did not take into account the
752  possibility that whitespace fix could shrink the preimage and
753  change the number of lines in it.
755  Will cook in 'next'.
758 * nd/pathspec-wildcard (2012-11-26) 4 commits
759   (merged to 'next' on 2012-12-03 at eca0fcb)
760  + tree_entry_interesting: do basedir compare on wildcard patterns when possible
761  + pathspec: apply "*.c" optimization from exclude
762  + pathspec: do exact comparison on the leading non-wildcard part
763  + pathspec: save the non-wildcard length part
765  Will cook in 'next'.
768 * nd/wildmatch (2012-12-15) 15 commits
769   (merged to 'next' on 2012-12-15 at c734714)
770  + t3070: Disable some failing fnmatch tests
771   (merged to 'next' on 2012-11-21 at 151288f)
772  + test-wildmatch: avoid Windows path mangling
773   (merged to 'next' on 2012-10-25 at 510e8df)
774  + Support "**" wildcard in .gitignore and .gitattributes
775  + wildmatch: make /**/ match zero or more directories
776  + wildmatch: adjust "**" behavior
777  + wildmatch: fix case-insensitive matching
778  + wildmatch: remove static variable force_lower_case
779  + wildmatch: make wildmatch's return value compatible with fnmatch
780  + t3070: disable unreliable fnmatch tests
781  + Integrate wildmatch to git
782  + wildmatch: follow Git's coding convention
783  + wildmatch: remove unnecessary functions
784  + Import wildmatch from rsync
785  + ctype: support iscntrl, ispunct, isxdigit and isprint
786  + ctype: make sane_ctype[] const array
787  (this branch is used by nd/retire-fnmatch.)
789  Allows pathname patterns in .gitignore and .gitattributes files
790  with double-asterisks "foo/**/bar" to match any number of directory
791  hierarchies.
793  I suspect that this needs to be plugged to pathspec matching code;
794  otherwise "git log -- 'Docum*/**/*.txt'" would not show the log for
795  commits that touch Documentation/git.txt, which would be confusing
796  to the users.
798  Will cook in 'next'.
801 * cr/push-force-tag-update (2012-12-03) 10 commits
802   (merged to 'next' on 2012-12-04 at af2e3a9)
803  + push: allow already-exists advice to be disabled
804  + push: rename config variable for more general use
805  + push: cleanup push rules comment
806  + push: clarify rejection of update to non-commit-ish
807  + push: require force for annotated tags
808  + push: require force for refs under refs/tags/
809  + push: flag updates that require force
810  + push: keep track of "update" state separately
811  + push: add advice for rejected tag reference
812  + push: return reject reasons as a bitset
814  Require "-f" for push to update a tag, even if it is a fast-forward.
816  Will cook in 'next'.
818 --------------------------------------------------
819 [Discarded]
821 * jc/unpack-file-in-tmpdir (2012-12-19) 1 commit
822  . unpack-file: allow output to be in $TMPDIR
824  Throw-away "how about this" to teach unpack-file to use $TMPDIR to
825  store its output.
827  Discarded, as da/p4merge-mktemp was rewritten not to require mktemp.
830 * rj/maint-cygwin-say-color (2012-12-15) 1 commit
831  . tests: Allow customization of how say_color() prints
833  Even though I do not think of a cleaner way to do this, I am not
834  happy with the way how $GIT_TEST_PRINT and $GIT_TEST_PRINT_LN are
835  interpolated into the command line with token splitting at $IFS.
837  Discarded, per discussion with the author.