1 To: git@vger.kernel.org
3 Subject: What's cooking in git.git (Dec 2012, #03; Wed, 12)
4 X-master-at: 24a62db7bbcbd8083bd0070ecd434205489629ed
5 X-next-at: 70b2edd6ac003ed3d25092c2bb3c31ce4a502ac4
7 What's cooking in git.git (Dec 2012, #03; Wed, 12)
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 A new maintenance release 1.8.0.2 was tagged with accumulated fixes
15 we have already been using on the 'master' front for a while. The
16 tip of the 'master' is a bit beyond 1.8.1-rc1 and many topics are
17 getting into good shape in 'next', hopefully ready to be merged soon
18 after the 1.8.1 final.
20 You can find the changes described here in the integration branches of the
21 repositories listed at
23 http://git-blame.blogspot.com/p/git-public-repositories.html
25 --------------------------------------------------
28 * sp/shortlog-missing-lf (2012-12-11) 2 commits
29 (merged to 'next' on 2012-12-11 at 64b8429)
30 + strbuf_add_wrapped*(): Remove unused return value
31 + shortlog: fix wrapping lines of wraplen
33 When a line to be wrapped has a solid run of non space characters
34 whose length exactly is the wrap width, "git shortlog -w" failed to
35 add a newline after such a line.
40 * ap/log-mailmap (2012-12-11) 6 commits
41 - [DO NOT MERGE] seems to break t4013 & t4014 among other things
42 - log: Add --use-mailmap option
43 - pretty: Use mailmap to display username and email
44 - mailmap: Add mailmap structure to rev_info and pp
45 - mailmap: Remove buffer length limit in map_user
46 - Use split_ident_line to parse author and committer
48 Clean up various codepaths around mailmap and teach the "log"
52 * jc/fetch-ignore-symref (2012-12-11) 1 commit
53 - fetch: ignore wildcarded refspecs that update local symbolic refs
55 Avoid false error from an attempt to update local symbolic ref via
59 * md/gitweb-sort-by-age (2012-12-11) 1 commit
60 - gitweb: Sort projects with undefined ages last
65 * ss/nedmalloc-compilation (2012-12-11) 1 commit
66 - nedmalloc: Fix a compile warning (exposed as error) with GCC 4.7.2
71 * wk/submodule-update-remote (2012-12-12) 3 commits
72 - submodule add: If --branch is given, record it in .gitmodules
73 - submodule update: add --remote for submodule's upstream changes
74 - submodule: add get_submodule_config helper funtion
78 --------------------------------------------------
79 [Graduated to "master"]
81 * ef/mingw-rmdir (2012-12-10) 1 commit
82 + mingw_rmdir: do not prompt for retry when non-empty
84 MinGW has a workaround when rmdir unnecessarily fails to retry with
85 a prompt, but the logic was kicking in when the rmdir failed with
86 ENOTEMPTY, i.e. was expected to fail and there is no point retrying.
89 * ef/mingw-tty-getpass (2012-12-04) 6 commits
90 (merged to 'next' on 2012-12-07 at 1737ff1)
91 + mingw: get rid of getpass implementation
92 + mingw: reuse tty-version of git_terminal_prompt
93 + compat/terminal: separate input and output handles
94 + compat/terminal: factor out echo-disabling
95 + mingw: make fgetc raise SIGINT if apropriate
96 + mingw: correct exit-code for SIGALRM's SIG_DFL
98 Update getpass() emulation for MinGW.
101 * jc/prompt-command-doc (2012-12-11) 1 commit
102 - git-prompt.sh: update PROMPT_COMMAND documentation
104 Recently graduated git-prompt topic to use PROMPT_COMMAND was
105 confusingly documented. With a quick review, it may be a good
106 idea to fast-track this to the 'master branch.
108 --------------------------------------------------
111 * fc/remote-bzr (2012-11-28) 10 commits
112 - (fixup) test-bzr.sh: fix multi-line string assignment
113 - remote-bzr: detect local repositories
114 - remote-bzr: add support for older versions of bzr
115 - remote-bzr: add support to push special modes
116 - remote-bzr: add support for fecthing special modes
117 - remote-bzr: add simple tests
118 - remote-bzr: update working tree
119 - remote-bzr: add support for remote repositories
120 - remote-bzr: add support for pushing
121 - Add new remote-bzr transport helper
123 New remote helper for bzr (v3). With minor fixes, this may be ready
127 * mo/cvs-server-updates (2012-12-09) 18 commits
128 - t9402: Use TABs for indentation
129 - t9402: Rename check.cvsCount and check.list
130 - t9402: Simplify git ls-tree
131 - t9402: Add missing &&; Code style
132 - t9402: No space after IO-redirection
133 - t9402: Dont use test_must_fail cvs
134 - t9402: improve check_end_tree() and check_end_full_tree()
135 - t9402: sed -i is not portable
136 - cvsserver Documentation: new cvs ... -r support
137 - cvsserver: add t9402 to test branch and tag refs
138 - cvsserver: support -r and sticky tags for most operations
139 - cvsserver: Add version awareness to argsfromdir
140 - cvsserver: generalize getmeta() to recognize commit refs
141 - cvsserver: implement req_Sticky and related utilities
142 - cvsserver: add misc commit lookup, file meta data, and file listing functions
143 - cvsserver: define a tag name character escape mechanism
144 - cvsserver: cleanup extra slashes in filename arguments
145 - cvsserver: factor out git-log parsing logic
147 Needs review by folks interested in cvsserver.
150 * as/check-ignore (2012-11-08) 14 commits
151 - t0007: fix tests on Windows
152 - Documentation/check-ignore: we show the deciding match, not the first
153 - Add git-check-ignore sub-command
154 - dir.c: provide free_directory() for reclaiming dir_struct memory
155 - pathspec.c: move reusable code from builtin/add.c
156 - dir.c: refactor treat_gitlinks()
157 - dir.c: keep track of where patterns came from
158 - dir.c: refactor is_path_excluded()
159 - dir.c: refactor is_excluded()
160 - dir.c: refactor is_excluded_from_list()
161 - dir.c: rename excluded() to is_excluded()
162 - dir.c: rename excluded_from_list() to is_excluded_from_list()
163 - dir.c: rename path_excluded() to is_path_excluded()
164 - dir.c: rename cryptic 'which' variable to more consistent name
166 Duy helped to reroll this.
171 * aw/rebase-am-failure-detection (2012-10-11) 1 commit
172 - rebase: Handle cases where format-patch fails
174 I am unhappy a bit about the possible performance implications of
175 having to store the output in a temporary file only for a rare case
176 of format-patch aborting.
179 * jk/lua-hackery (2012-10-07) 6 commits
180 - pretty: fix up one-off format_commit_message calls
181 - Minimum compilation fixup
182 - Makefile: make "lua" a bit more configurable
183 - add a "lua" pretty format
184 - add basic lua infrastructure
185 - pretty: make some commit-parsing helpers more public
187 Interesting exercise. When we do this for real, we probably would want
188 to wrap a commit to make it more like an "object" with methods like
192 * fc/remote-testgit-feature-done (2012-10-29) 1 commit
193 - remote-testgit: properly check for errors
195 Needs review and Ack (or Nack) from people involved in the remote
196 helper interface for this to move forward.
199 * rc/maint-complete-git-p4 (2012-09-24) 1 commit
200 (merged to 'next' on 2012-10-29 at af52cef)
201 + Teach git-completion about git p4
203 Comment from Pete will need to be addressed in a follow-up patch.
206 * as/test-tweaks (2012-09-20) 7 commits
207 - tests: paint unexpectedly fixed known breakages in bold red
208 - tests: test the test framework more thoroughly
209 - [SQUASH] t/t0000-basic.sh: quoting of TEST_DIRECTORY is screwed up
210 - tests: refactor mechanics of testing in a sub test-lib
211 - tests: paint skipped tests in bold blue
212 - tests: test number comes first in 'not ok $count - $message'
213 - tests: paint known breakages in bold yellow
215 Various minor tweaks to the test framework to paint its output
216 lines in colors that match what they mean better.
218 Has the "is this really blue?" issue Peff raised resolved???
221 * jc/maint-name-rev (2012-09-17) 7 commits
222 - describe --contains: use "name-rev --algorithm=weight"
223 - name-rev --algorithm=weight: tests and documentation
224 - name-rev --algorithm=weight: cache the computed weight in notes
225 - name-rev --algorithm=weight: trivial optimization
226 - name-rev: --algorithm option
227 - name_rev: clarify the logic to assign a new tip-name to a commit
228 - name-rev: lose unnecessary typedef
230 "git name-rev" names the given revision based on a ref that can be
231 reached in the smallest number of steps from the rev, but that is
232 not useful when the caller wants to know which tag is the oldest one
233 that contains the rev. This teaches a new mode to the command that
234 uses the oldest ref among those which contain the rev.
236 I am not sure if this is worth it; for one thing, even with the help
237 from notes-cache, it seems to make the "describe --contains" even
238 slower. Also the command will be unusably slow for a user who does
239 not have a write access (hence unable to create or update the
242 Stalled mostly due to lack of responses.
245 * jc/xprm-generation (2012-09-14) 1 commit
246 - test-generation: compute generation numbers and clock skews
248 A toy to analyze how bad the clock skews are in histories of real
251 Stalled mostly due to lack of responses.
254 * jc/blame-no-follow (2012-09-21) 2 commits
255 - blame: pay attention to --no-follow
256 - diff: accept --no-follow option
258 Teaches "--no-follow" option to "git blame" to disable its
259 whole-file rename detection.
261 Stalled mostly due to lack of responses.
264 * jc/doc-default-format (2012-11-26) 2 commits
265 - [SQAUSH] allow "cd Doc* && make DEFAULT_DOC_TARGET=..."
266 - Allow generating a non-default set of documentation
268 Need to address the installation half if this is to be any useful.
271 * mk/maint-graph-infinity-loop (2012-09-25) 1 commit
272 - graph.c: infinite loop in git whatchanged --graph -m
274 The --graph code fell into infinite loop when asked to do what the
275 code did not expect ;-)
277 Anybody who worked on "--graph" wants to comment?
278 Stalled mostly due to lack of responses.
281 * jc/add-delete-default (2012-08-13) 1 commit
282 - git add: notice removal of tracked paths by default
284 "git add dir/" updated modified files and added new files, but does
285 not notice removed files, which may be "Huh?" to some users. They
286 can of course use "git add -A dir/", but why should they?
288 Resurrected from graveyard, as I thought it was a worthwhile thing
289 to do in the longer term.
291 Waiting for comments.
294 * mb/remote-default-nn-origin (2012-07-11) 6 commits
295 - Teach get_default_remote to respect remote.default.
296 - Test that plain "git fetch" uses remote.default when on a detached HEAD.
297 - Teach clone to set remote.default.
298 - Teach "git remote" about remote.default.
299 - Teach remote.c about the remote.default configuration setting.
300 - Rename remote.c's default_remote_name static variables.
302 When the user does not specify what remote to interact with, we
303 often attempt to use 'origin'. This can now be customized via a
304 configuration variable.
308 "The first remote becomes the default" bit is better done as a
311 --------------------------------------------------
314 * jc/maint-fbsd-sh-ifs-workaround (2012-12-10) 1 commit
315 (merged to 'next' on 2012-12-11 at 6659fdc)
316 + sh-setup: work around "unset IFS" bug in some shells
321 * jc/merge-blobs (2012-12-09) 4 commits
322 - merge-tree: add comments to clarify what these functions are doing
323 - merge-tree: lose unused "resolve_directories"
324 - merge-tree: lose unused "flags" from merge_list
325 - Which merge_file() function do you mean?
327 A beginning of a new merge strategy based on the disused merge-tree
328 proof-of-concept code.
331 * jc/same-encoding (2012-12-10) 1 commit
332 - format_commit_message(): simplify calls to logmsg_reencode()
334 Finishing touches to the series to unify "Do we need to reencode
335 between these two encodings?" logic.
338 * nd/invalidate-i-t-a-cache-tree (2012-12-09) 1 commit
339 - cache-tree: invalidate i-t-a paths after generating trees
341 Writing out a tree object when you still have intent-to-add entries
342 in the index left an incorrect cache-tree data there.
345 * jl/submodule-deinit (2012-12-04) 1 commit
346 (merged to 'next' on 2012-12-07 at ea772f0)
347 + submodule: add 'deinit' command
349 There was no Porcelain way to say "I no longer am interested in
350 this submodule", once you express your interest in a submodule with
351 "submodule init". "submodule deinit" is the way to do so.
356 * sl/git-svn-docs (2012-12-05) 4 commits
357 (merged to 'next' on 2012-12-07 at 5bfbb73)
358 + git-svn: Note about tags.
359 + git-svn: Expand documentation for --follow-parent
360 + git-svn: Recommend use of structure options.
361 + git-svn: Document branches with at-sign(@).
366 * pf/editor-ignore-sigint (2012-12-02) 5 commits
367 (merged to 'next' on 2012-12-07 at 6b04419)
368 + launch_editor: propagate signals from editor to git
369 + run-command: do not warn about child death from terminal
370 + launch_editor: ignore terminal signals while editor has control
371 + launch_editor: refactor to use start/finish_command
372 + run-command: drop silent_exec_failure arg from wait_or_whine
374 Avoid confusing cases where the user hits Ctrl-C while in the editor
375 session, not realizing git will receive the signal. Since most editors
376 will take over the terminal and will block SIGINT, this is not likely
382 * bc/append-signed-off-by (2012-11-26) 11 commits
383 - Unify appending signoff in format-patch, commit and sequencer
384 - format-patch: update append_signoff prototype
385 - format-patch: stricter S-o-b detection
386 - t4014: more tests about appending s-o-b lines
387 - sequencer.c: teach append_signoff to avoid adding a duplicate newline
388 - sequencer.c: teach append_signoff how to detect duplicate s-o-b
389 - sequencer.c: always separate "(cherry picked from" from commit body
390 - sequencer.c: recognize "(cherry picked from ..." as part of s-o-b footer
391 - t/t3511: add some tests of 'cherry-pick -s' functionality
392 - t/test-lib-functions.sh: allow to specify the tag name to test_commit
393 - sequencer.c: remove broken support for rfc2822 continuation in footer
395 Expecting a re-roll after a review.
398 * mh/unify-xml-in-imap-send-and-http-push (2012-12-02) 8 commits
399 (merged to 'next' on 2012-12-03 at d677090)
400 + wrap_in_html(): process message in bulk rather than line-by-line
401 + wrap_in_html(): use strbuf_addstr_xml_quoted()
402 + imap-send: change msg_data from storing (ptr, len) to storing strbuf
403 + imap-send: correctly report errors reading from stdin
404 + imap-send: store all_msgs as a strbuf
405 + lf_to_crlf(): NUL-terminate msg_data::data
406 + xml_entities(): use function strbuf_addstr_xml_quoted()
407 + Add new function strbuf_add_xml_quoted()
409 Update imap-send to reuse xml quoting code from http-push codepath,
410 clean up some code, and fix a small bug.
415 * jc/doc-maintainer (2012-11-27) 1 commit
416 - update "howto maintain git"
418 An early draft that is still incomplete.
421 * jk/fsck-dot-in-trees (2012-11-28) 2 commits
422 (merged to 'next' on 2012-11-28 at 519dabc)
423 + fsck: warn about ".git" in trees
424 + fsck: warn about '.' and '..' in trees
429 * mh/doc-remote-helpers (2012-12-07) 6 commits
430 (merged to 'next' on 2012-12-07 at 7ac8c25)
431 + git-remote-helpers.txt: clarify options & ref list attributes
432 + git-remote-helpers.txt: clarify command <-> capability correspondences
433 + git-remote-helpers.txt: rearrange description of capabilities
434 + git-remote-helpers.txt: minor grammar fix
435 + git-remote-helpers.txt: document missing capabilities
436 + git-remote-helpers.txt: document invocation before input format
438 Will merge to 'master'.
441 * mh/pthreads-autoconf (2012-11-27) 1 commit
442 (merged to 'next' on 2012-11-28 at 780600e)
443 + configure.ac: fix pthreads detection on Mac OS X
448 * jn/warn-on-inaccessible-loosen (2012-10-14) 4 commits
449 (merged to 'next' on 2012-11-28 at 43d51c2)
450 + config: exit on error accessing any config file
451 + doc: advertise GIT_CONFIG_NOSYSTEM
452 + config: treat user and xdg config permission problems as errors
453 + config, gitignore: failure to access with ENOTDIR is ok
455 An RFC to deal with a situation where .config/git is a file and we
456 notice .config/git/config is not readable due to ENOTDIR, not
462 * mh/ceiling (2012-10-29) 8 commits
463 (merged to 'next' on 2012-11-26 at d1ce76a)
464 + string_list_longest_prefix(): remove function
465 + setup_git_directory_gently_1(): resolve symlinks in ceiling paths
466 + longest_ancestor_length(): require prefix list entries to be normalized
467 + longest_ancestor_length(): take a string_list argument for prefixes
468 + longest_ancestor_length(): use string_list_split()
469 + Introduce new function real_path_if_valid()
470 + real_path_internal(): add comment explaining use of cwd
471 + Introduce new static function real_path_internal()
473 Elements of GIT_CEILING_DIRECTORIES list may not match the real
474 pathname we obtain from getcwd(), leading the GIT_DIR discovery
475 logic to escape the ceilings the user thought to have specified.
477 Resurrected from Stalled; the earlier performance fear was
483 * fc/fast-export-fixes (2012-12-03) 15 commits
484 (merged to 'next' on 2012-12-03 at f9df523)
485 + fast-export: make sure updated refs get updated
486 + fast-export: don't handle uninteresting refs
487 + fast-export: fix comparison in tests
488 + fast-export: trivial cleanup
489 + remote-testgit: implement the "done" feature manually
490 + remote-testgit: report success after an import
491 + remote-testgit: exercise more features
492 + remote-testgit: cleanup tests
493 + remote-testgit: remove irrelevant test
494 + remote-testgit: remove non-local functionality
495 + Add new simplified git-remote-testgit
496 + Rename git-remote-testgit to git-remote-testpy
497 + remote-helpers: fix failure message
498 + remote-testgit: fix direction of marks
499 + fast-export: avoid importing blob marks
504 * jc/apply-trailing-blank-removal (2012-10-12) 1 commit
505 (merged to 'next' on 2012-11-26 at 3af69e7)
506 + apply.c:update_pre_post_images(): the preimage can be truncated
508 Fix to update_pre_post_images() that did not take into account the
509 possibility that whitespace fix could shrink the preimage and
510 change the number of lines in it.
515 * nd/pathspec-wildcard (2012-11-26) 4 commits
516 (merged to 'next' on 2012-12-03 at eca0fcb)
517 + tree_entry_interesting: do basedir compare on wildcard patterns when possible
518 + pathspec: apply "*.c" optimization from exclude
519 + pathspec: do exact comparison on the leading non-wildcard part
520 + pathspec: save the non-wildcard length part
525 * nd/wildmatch (2012-11-20) 14 commits
526 (merged to 'next' on 2012-11-21 at 151288f)
527 + test-wildmatch: avoid Windows path mangling
528 (merged to 'next' on 2012-10-25 at 510e8df)
529 + Support "**" wildcard in .gitignore and .gitattributes
530 + wildmatch: make /**/ match zero or more directories
531 + wildmatch: adjust "**" behavior
532 + wildmatch: fix case-insensitive matching
533 + wildmatch: remove static variable force_lower_case
534 + wildmatch: make wildmatch's return value compatible with fnmatch
535 + t3070: disable unreliable fnmatch tests
536 + Integrate wildmatch to git
537 + wildmatch: follow Git's coding convention
538 + wildmatch: remove unnecessary functions
539 + Import wildmatch from rsync
540 + ctype: support iscntrl, ispunct, isxdigit and isprint
541 + ctype: make sane_ctype[] const array
543 Allows pathname patterns in .gitignore and .gitattributes files
544 with double-asterisks "foo/**/bar" to match any number of directory
547 I suspect that this needs to be plugged to pathspec matching code;
548 otherwise "git log -- 'Docum*/**/*.txt'" would not show the log for
549 commits that touch Documentation/git.txt, which would be confusing
555 * cr/push-force-tag-update (2012-12-03) 10 commits
556 (merged to 'next' on 2012-12-04 at af2e3a9)
557 + push: allow already-exists advice to be disabled
558 + push: rename config variable for more general use
559 + push: cleanup push rules comment
560 + push: clarify rejection of update to non-commit-ish
561 + push: require force for annotated tags
562 + push: require force for refs under refs/tags/
563 + push: flag updates that require force
564 + push: keep track of "update" state separately
565 + push: add advice for rejected tag reference
566 + push: return reject reasons as a bitset
568 Require "-f" for push to update a tag, even if it is a fast-forward.