{"thread":{"id":"27692","subject":"What's cooking in git.git (Jun 2011, #04; Wed, 22)","startedAt":"2011-06-23T01:08:44Z","lastAt":"2011-06-23T01:08:44Z","messageCount":1,"participants":["Junio C Hamano"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"170485","messageId":"7vsjr14an7.fsf@alter.siamese.dyndns.org","threadId":"27692","inReplyTo":null,"subject":"What's cooking in git.git (Jun 2011, #04; Wed, 22)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2011-06-23T01:08:44Z","receivedAt":"2011-06-23T01:08:44Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Here are the topics that have been cooking.  Commits prefixed with '-' are\nonly in 'pu' while commits prefixed with '+' are in 'next'.\n\nI ended up tagging 1.7.6-rc3; please test it well. The final is expected\nto be at around the end of the week.\n\nThanks.\n\n--------------------------------------------------\n[New Topics]\n\n* ak/gcc46-profile-feedback (2011-06-20) 3 commits\n - Add explanation of the profile feedback build to the README\n - Add profile feedback build to git\n - Add option to disable NORETURN\n\n* sr/transport-helper-fix (2011-06-19) 20 commits\n - transport-helper: implement marks location as capability\n - transport-helper: Use capname for gitdir capability too\n - transport-helper: export is no longer always the last command\n - transport-helper: change import semantics\n - transport-helper: update ref status after push with export\n - transport-helper: use the new done feature where possible\n - transport-helper: check status code of finish_command\n - transport-helper: factor out push_update_refs_status\n - fast-export: support done feature\n - fast-import: introduce 'done' command\n - git-remote-testgit: fix error handling\n - git-remote-testgit: only push for non-local repositories\n - remote-curl: accept empty line as terminator\n - git_remote_helpers: push all refs during a non-local export\n - transport-helper: don't feed bogus refs to export push\n - teach remote-testgit to import non-HEAD refs\n - t5800: document some non-functional parts of remote helpers\n - t5800: use skip_all instead of prereq\n - t5800: factor out some ref tests\n - transport-helper: fix minor leak in push_refs_with_export\n\nAt least Patch 10/20 (git-remote-testgit: fix error handling) and Patch\n15/20 (transport-helper: use the new done feature where possible) need a\nreroll.\n\n* jc/maint-cygwin-trust-executable-bit-default (2011-06-20) 1 commit\n - cygwin: trust executable bit by default\n\nFix for an ancient regression.\n\n* jk/tag-list-multiple-patterns (2011-06-20) 1 commit\n - tag: accept multiple patterns for --list\n\n* jl/maint-fetch-recursive-fix (2011-06-20) 1 commit\n - fetch: Also fetch submodules in subdirectories in on-demand mode\n\n* rr/revert-cherry-pick-continue (2011-06-21) 13 commits\n - revert: Introduce --continue to continue the operation\n - revert: Introduce skip-all to cleanup sequencer data\n - revert: Introduce a layer of indirection over pick_commits\n - revert: Persist data for continuation\n - revert: Catch incompatible command-line options early\n - revert: Separate cmdline parsing from functional code\n - revert: Introduce struct to keep command-line options\n - revert: Rename no_replay to record_origin\n - revert: Eliminate global \"commit\" variable\n - revert: Propogate errors upwards from do_pick_commit\n - revert: Don't check lone argument in get_encoding\n - revert: Factor out add_message_to_msg function\n - advice: Introduce error_resolve_conflict\n\nUnder discussion, just queued here so that it is not lost.\n\n* fk/relink-upon-ldflags-update (2011-06-22) 1 commit\n - Makefile: Track changes to LDFLAGS and relink when necessary\n\n* jk/maint-config-param (2011-06-22) 6 commits\n - config: use strbuf_split_str instead of a temporary strbuf\n - strbuf: allow strbuf_split to work on non-strbufs\n - config: avoid segfault when parsing command-line config\n - config: die on error in command-line config\n - fix \"git -c\" parsing of values with equals signs\n - strbuf_split: add a max parameter\n (this branch is used by jk/clone-cmdline-config.)\n\nSeparated earlier parts of jk/clone-cmdline-config for maint.\n\n* jm/mergetool-pathspec (2011-06-22) 2 commits\n - mergetool: Don't assume paths are unmerged\n - mergetool: Add tests for filename with whitespace\n\nI think this is a good idea, but it probably needs a re-roll.\n\n* jn/gitweb-split-header-html (2011-06-22) 1 commit\n - gitweb: Refactor git_header_html\n\n--------------------------------------------------\n[Stalled]\n\n* jh/receive-count-limit (2011-05-23) 10 commits\n - receive-pack: Allow server to refuse pushes with too many objects\n - pack-objects: Estimate pack size; abort early if pack size limit is exceeded\n - send-pack/receive-pack: Allow server to refuse pushing too large packs\n - pack-objects: Allow --max-pack-size to be used together with --stdout\n - send-pack/receive-pack: Allow server to refuse pushes with too many commits\n - pack-objects: Teach new option --max-commit-count, limiting #commits in pack\n - receive-pack: Prepare for addition of the new 'limit-*' family of capabilities\n - Tighten rules for matching server capabilities in server_supports()\n - send-pack: Attempt to retrieve remote status even if pack-objects fails\n - Update technical docs to reflect side-band-64k capability in receive-pack\n\nWould need another round to separate per-pack and per-session limits.\nNot urgent. Will not merge before 1.7.6.\n\n--------------------------------------------------\n[Cooking]\n\n* aw/rebase-i-p (2011-06-19) 1 commit\n - rebase -i -p: include non-first-parent commits in todo list\n\nRerolled with a minor tweak.\n\n* en/merge-recursive (2011-06-13) 49 commits\n - t3030: fix accidental success in symlink rename\n - merge-recursive: Fix working copy handling for rename/rename/add/add\n - merge-recursive: add handling for rename/rename/add-dest/add-dest\n - merge-recursive: Have conflict_rename_delete reuse modify/delete code\n - merge-recursive: Make modify/delete handling code reusable\n - merge-recursive: Consider modifications in rename/rename(2to1) conflicts\n - merge-recursive: Create function for merging with branchname:file markers\n - merge-recursive: Record more data needed for merging with dual renames\n - merge-recursive: Defer rename/rename(2to1) handling until process_entry\n - merge-recursive: Small cleanups for conflict_rename_rename_1to2\n - merge-recursive: Fix rename/rename(1to2) resolution for virtual merge base\n - merge-recursive: Introduce a merge_file convenience function\n - merge-recursive: Fix modify/delete resolution in the recursive case\n - merge-recursive: Provide more info in conflict markers with file renames\n - merge-recursive: Cleanup and consolidation of rename_conflict_info\n - merge-recursive: Consolidate process_entry() and process_df_entry()\n - merge-recursive: Improve handling of rename target vs. directory addition\n - merge-recursive: Add comments about handling rename/add-source cases\n - merge-recursive: Make dead code for rename/rename(2to1) conflicts undead\n - merge-recursive: Fix deletion of untracked file in rename/delete conflicts\n - merge-recursive: When we detect we can skip an update, actually skip it\n - merge-recursive: Split update_stages_and_entry; only update stages at end\n - merge-recursive: Consolidate different update_stages functions\n - merge-recursive: Allow make_room_for_path() to remove D/F entries\n - merge-recursive: Split was_tracked() out of would_lose_untracked()\n - merge-recursive: Save D/F conflict filenames instead of unlinking them\n - merge-recursive: Fix code checking for D/F conflicts still being present\n - merge-recursive: Fix sorting order and directory change assumptions\n - merge-recursive: Fix recursive case with D/F conflict via add/add conflict\n - merge-recursive: Avoid working directory changes during recursive case\n - merge-recursive: Remember to free generated unique path names\n - merge-recursive: Mark some diff_filespec struct arguments const\n - merge-recursive: Correct a comment\n - merge-recursive: Make BUG message more legible by adding a newline\n - t6022: Add testcase for merging a renamed file with a simple change\n - t6022: New tests checking for unnecessary updates of files\n - t6022: Remove unnecessary untracked files to make test cleaner\n - t6036: criss-cross + rename/rename(1to2)/add-source + modify/modify\n - t6036: criss-cross w/ rename/rename(1to2)/modify+rename/rename(2to1)/modify\n - t6036: tests for criss-cross merges with various directory/file conflicts\n - t6036: criss-cross with weird content can fool git into clean merge\n - t6036: Add differently resolved modify/delete conflict in criss-cross test\n - t6042: Ensure rename/rename conflicts leave index and workdir in sane state\n - t6042: Add failing testcases for rename/rename/add-{source,dest} conflicts\n - t6042: Add tests for content issues with modify/rename/directory conflicts\n - t6042: Add a testcase where undetected rename causes silent file deletion\n - t6042: Add a pair of cases where undetected renames cause issues\n - t6042: Add failing testcase for rename/modify/add-source conflict\n - t6042: Add a testcase where git deletes an untracked file\n\nHaven't looked at the whole series yet.\n\n* fg/submodule-keep-updating (2011-06-13) 3 commits\n - git-submodule.sh: clarify the \"should we die now\" logic\n - submodule update: continue when a checkout fails\n - git-sh-setup: add die_with_status\n\n* jc/no-gitweb-test-without-cgi-etc (2011-06-15) 1 commit\n - t/gitweb-lib.sh: skip gitweb tests when perl dependencies are not met\n\n* jn/mime-type-with-params (2011-06-13) 1 commit\n - gitweb: Make $prevent_xss protection for 'blob_plain' more usable\n\n* ln/gitweb-mime-types-split-at-blank (2011-06-15) 1 commit\n - gitweb: allow space as delimiter in mime.types\n\n* md/interix-update (2011-06-15) 1 commit\n - Update the Interix default build configuration.\n\n* rj/config-cygwin (2011-06-16) 3 commits\n - config.c: Make git_config() work correctly when called recursively\n - t1301-*.sh: Fix the 'forced modes' test on cygwin\n - help.c: Fix detection of custom merge strategy on cygwin\n\n* jk/archive-tar-filter (2011-06-22) 9 commits\n - upload-archive: allow user to turn off filters\n - archive: provide builtin .tar.gz filter\n - archive: implement configurable tar filters\n - archive: refactor file extension format-guessing\n - archive: move file extension format-guessing lower\n - archive: pass archiver struct to write_archive callback\n - archive: refactor list of archive formats\n - archive-tar: don't reload default config options\n - archive: reorder option parsing and config reading\n\nRerolled.\n\n* jc/index-pack (2011-06-05) 9 commits\n - verify-pack: use index-pack --verify\n - index-pack: show histogram when emulating \"verify-pack -v\"\n - index-pack: start learning to emulate \"verify-pack -v\"\n - index-pack: a miniscule refactor\n - index-pack --verify: read anomalous offsets from v2 idx file\n - write_idx_file: need_large_offset() helper function\n - index-pack: --verify\n - write_idx_file: introduce a struct to hold idx customization options\n - index-pack: group the delta-base array entries also by type\n\nKilled \"verify-pack\" ;-) The next will be to update fsck, which would be a\nbigger task.\n\nNot urgent. Will not merge before 1.7.6.\n\n* js/i18n-windows (2011-06-06) 3 commits\n  (merged to 'next' on 2011-06-06 at d8c4ba3)\n + Windows: teach getenv to do a case-sensitive search\n + mingw.c: move definition of mingw_getenv down\n + sh-i18n--envsubst: do not crash when no arguments are given\n\nNot urgent. Will not merge before 1.7.6.\n\n* an/shallow-doc (2011-06-08) 2 commits\n - Document the underlying protocol used by shallow repositories and --depth commands.\n - Fix documentation of fetch-pack that implies that the client can disconnect after sending wants.\n\nNot waiting for a review any longer; looked sensible.\n\n* jc/legacy-loose-object (2011-06-08) 1 commit\n - sha1_file.c: \"legacy\" is really the current format\n\n* jc/zlib-wrap (2011-06-10) 7 commits\n - zlib: allow feeding more than 4GB in one go\n - zlib: zlib can only process 4GB at a time\n - zlib: wrap deflateBound() too\n - zlib: wrap deflate side of the API\n - zlib: wrap inflateInit2 used to accept only for gzip format\n - zlib: wrap remaining calls to direct inflate/inflateEnd\n - zlib wrapper: refactor error message formatter\n\nThis replaces the earlier attempt to deal with the mismatch between our\nexpectation and what zlib API actually offers piecemeal.\n\n* jk/clone-cmdline-config (2011-06-22) 4 commits\n - clone: accept config options on the command line\n - config: make git_config_parse_parameter a public function\n - remote: use new OPT_STRING_LIST\n - parse-options: add OPT_STRING_LIST helper\n (this branch uses jk/maint-config-param.)\n\nSeparated the earlier parts out to make it mergeable to the maintenance\ntrack.\n\n* jk/tag-contains-ab (2011-06-11) 4 commits\n - Why is \"git tag --contains\" so slow?\n - default core.clockskew variable to one day\n - limit \"contains\" traversals based on commit timestamp\n - tag: speed up --contains calculation\n\n* db/http-cookies (2011-06-03) 1 commit\n  (merged to 'next' on 2011-06-06 at 90d736a)\n + http: pass http.cookiefile using CURLOPT_COOKIEFILE\n\nFairly trivial enhancement.\nNot urgent. Will not merge before 1.7.6.\n\n* jc/maint-1.7.3-checkout-describe (2011-06-05) 1 commit\n  (merged to 'next' on 2011-06-06 at 6a59bb7)\n + checkout -b <name>: correctly detect existing branch\n\nFairly trivial bugfix.\nNot urgent. Will not merge before 1.7.6.\n\n* jk/clone-detached (2011-06-07) 5 commits\n . remote-testgit: short-term fix to allow t5800 pass\n - clone: always fetch remote HEAD\n - make copy_ref globally available\n - consider only branches in guess_remote_head\n - t: add tests for cloning remotes with detached HEAD\n\nSomewhat involved bugfix.\nNot urgent. Will not merge before 1.7.6.\n\n* jk/maint-1.7.2-status-ignored (2011-06-02) 2 commits\n  (merged to 'next' on 2011-06-02 at 8626cc6)\n + git status --ignored: tests and docs\n + status: fix bug with missing --ignore files\n\nFairly trivial bugfix.\nNot urgent. Will not merge before 1.7.6.\n\n* jl/submodule-add-relurl-wo-upstream (2011-06-06) 3 commits\n - submodule add: clean up duplicated code\n - submodule add: allow relative repository path even when no url is set\n - submodule add: test failure when url is not configured in superproject\n\nNot urgent. Will not merge before 1.7.6.\n\n* rs/grep-color (2011-06-05) 3 commits\n  (merged to 'next' on 2011-06-06 at fd6bae1)\n + grep: add --heading\n + grep: add --break\n + grep: fix coloring of hunk marks between files\n\nFairly straightforward feature enhancement.\nNot urgent. Will not merge before 1.7.6.\n\n* jc/diff-index-quick-exit-early (2011-05-31) 2 commits\n  (merged to 'next' on 2011-06-01 at 79d868a)\n + diff-index --quiet: learn the \"stop feeding the backend early\" logic\n + Merge remote-tracking branch 'ko/maint' into jc/diff-index-quick-exit-early\n\nNot urgent. Will not merge before 1.7.6.\n\n* ef/maint-win-verify-path (2011-06-08) 5 commits\n - verify_dotfile(): do not assume '/' is the path seperator\n  (merged to 'next' on 2011-06-07 at b418e05)\n + verify_path(): simplify check at the directory boundary\n  (merged to 'next' on 2011-06-01 at f316f68)\n + verify_path: consider dos drive prefix\n + real_path: do not assume '/' is the path seperator\n + A Windows path starting with a backslash is absolute\n\nNot urgent, but is sane. Will not merge before 1.7.6.\n\n* jn/gitweb-js-blame (2011-05-27) 3 commits\n  (merged to 'next' on 2011-06-01 at a984a1b)\n + gitweb.js: use setTimeout rather than setInterval in blame_incremental.js\n + gitweb.js: No need for loop in blame_incremental's handleResponse()\n + gitweb.js: No need for inProgress in blame_incremental.js\n\nWill cook a bit longer.\n\n* mg/diff-stat-count (2011-05-27) 4 commits\n  (merged to 'next' on 2011-06-01 at 5cdb776)\n + diff --stat-count: finishing touches\n + diff-options.txt: describe --stat-{width,name-width,count}\n + diff: introduce --stat-lines to limit the stat lines\n + diff.c: omit hidden entries from namelen calculation with --stat\n\nNot urgent. Will not merge before 1.7.6.\n\n* da/git-prefix-everywhere (2011-06-02) 4 commits\n  (merged to 'next' on 2011-06-02 at 2ab66e7)\n + t/t7503-pre-commit-hook.sh: Add GIT_PREFIX tests\n  (merged to 'next' on 2011-05-30 at 9480900)\n + git-mergetool--lib: Make vimdiff retain the current directory\n + git: Remove handling for GIT_PREFIX\n + setup: Provide GIT_PREFIX to built-ins\n\nNot urgent. Will not merge before 1.7.6.\n\n* jc/streaming-filter (2011-05-26) 8 commits\n  (merged to 'next' on 2011-06-06 at 8ed6b3d)\n + t0021: test application of both crlf and ident\n + t0021-conversion.sh: fix NoTerminatingSymbolAtEOF test\n + streaming: filter cascading\n + streaming filter: ident filter\n + Add LF-to-CRLF streaming conversion\n + stream filter: add \"no more input\" to the filters\n + Add streaming filter API\n + convert.h: move declarations for conversion from cache.h\n (this branch uses jc/streaming.)\n\nTrivial lf-to-crlf and ident conversions can be performed without reading\neverything in-core first.\nNot urgent. Will not merge before 1.7.6.\n\n* jk/combine-diff-binary-etc (2011-05-24) 5 commits\n  (merged to 'next' on 2011-05-24 at 07cf180)\n + combine-diff: respect textconv attributes\n + refactor get_textconv to not require diff_filespec\n + combine-diff: handle binary files as binary\n + combine-diff: calculate mode_differs earlier\n + combine-diff: split header printing into its own function\n\nNot urgent. Will not merge before 1.7.6.\n\n* jc/advice-about-to-lose-commit (2011-05-24) 1 commit\n  (merged to 'next' on 2011-05-30 at 42385cc)\n + checkout: make advice when reattaching the HEAD less loud\n\nNot urgent. Will not merge before 1.7.6.\n\n* jc/streaming (2011-05-26) 14 commits\n  (merged to 'next' on 2011-05-26 at 7fdda8d)\n + sha1_file: use the correct type (ssize_t, not size_t) for read-style function\n  (merged to 'next' on 2011-05-23 at 7fd0b52)\n + streaming: read loose objects incrementally\n + sha1_file.c: expose helpers to read loose objects\n + streaming: read non-delta incrementally from a pack\n + streaming_write_entry(): support files with holes\n + convert: CRLF_INPUT is a no-op in the output codepath\n + streaming_write_entry(): use streaming API in write_entry()\n + streaming: a new API to read from the object store\n + write_entry(): separate two helper functions out\n + unpack_object_header(): make it public\n + sha1_object_info_extended(): hint about objects in delta-base cache\n + sha1_object_info_extended(): expose a bit more info\n + packed_object_info_detail(): do not return a string\n + Merge branches 'jc/convert', 'jc/bigfile' and 'jc/replacing' into jc/streaming\n (this branch is used by jc/streaming-filter.)\n\nNot urgent. Will not merge before 1.7.6.\n\n* ab/i18n-scripts (2011-05-21) 48 commits\n  (merged to 'next' on 2011-05-23 at 69164a3)\n + i18n: git-bisect bisect_next_check \"You need to\" message\n + i18n: git-bisect [Y/n] messages\n + i18n: git-bisect bisect_replay + $1 messages\n + i18n: git-bisect bisect_reset + $1 messages\n + i18n: git-bisect bisect_run + $@ messages\n + i18n: git-bisect die + eval_gettext messages\n + i18n: git-bisect die + gettext messages\n + i18n: git-bisect echo + eval_gettext message\n + i18n: git-bisect echo + gettext messages\n + i18n: git-bisect gettext + echo message\n + i18n: git-bisect add git-sh-i18n\n + i18n: git-stash drop_stash say/die messages\n + i18n: git-stash \"unknown option\" message\n + i18n: git-stash die + eval_gettext $1 messages\n + i18n: git-stash die + eval_gettext $* messages\n + i18n: git-stash die + eval_gettext messages\n + i18n: git-stash die + gettext messages\n + i18n: git-stash say + gettext messages\n + i18n: git-stash echo + gettext message\n + i18n: git-stash add git-sh-i18n\n + i18n: git-submodule \"blob\" and \"submodule\" messages\n + i18n: git-submodule \"path not initialized\" message\n + i18n: git-submodule \"[...] path is ignored\" message\n + i18n: git-submodule \"Entering [...]\" message\n + i18n: git-submodule $errmsg messages\n + i18n: git-submodule \"Submodule change[...]\" messages\n + i18n: git-submodule \"cached cannot be used\" message\n + i18n: git-submodule $update_module say + die messages\n + i18n: git-submodule die + eval_gettext messages\n + i18n: git-submodule say + eval_gettext messages\n + i18n: git-submodule echo + eval_gettext messages\n + i18n: git-submodule add git-sh-i18n\n + i18n: git-pull eval_gettext + warning message\n + i18n: git-pull eval_gettext + die message\n + i18n: git-pull die messages\n + i18n: git-pull add git-sh-i18n\n + i18n: git-am printf(1) message to eval_gettext\n + i18n: git-am core say messages\n + i18n: git-am \"Falling back\" say message\n + i18n: git-am \"Apply?\" message\n + i18n: git-am clean_abort messages\n + i18n: git-am cannot_fallback messages\n + i18n: git-am die messages\n + i18n: git-am gettext + gettext to stderr message\n + i18n: git-am eval_gettext messages\n + i18n: git-am multi-line getttext $msg; echo\n + i18n: git-am one-line gettext $msg; echo\n + i18n: git-am add git-sh-i18n\n\nRerolled.\n\n--------------------------------------------------\n[Discarded]\n\n* jk/transport-helper-fix (2011-06-07) 8 commits\n . git_remote_helpers: push all refs during a non-local export\n . transport-helper: don't feed bogus refs to export push\n . teach remote-testgit to import multiple refs\n . teach remote-testgit to import non-HEAD refs\n . t5800: document some non-functional parts of remote helpers\n . t5800: factor out some ref tests\n . git-remote-testgit: exit gracefully after push\n . transport-helper: fix minor leak in push_refs_with_export\n\nsr/transport-helper-fix is a superset of this.\n\n* js/ref-namespaces (2011-06-07) 4 commits\n . ref namespaces: documentation\n . ref namespaces: support remote repositories via upload-pack and receive-pack\n . ref namespaces: infrastructure\n . Fix prefix handling in ref iteration functions\n\nFairly involved feature enhancement, and breaks tests when merged to 'pu'.\n"}]}