{"thread":{"id":"29206","subject":"What's cooking in git.git (Dec 2011, #06; Sun, 18)","startedAt":"2011-12-19T05:57:34Z","lastAt":"2011-12-19T05:57:34Z","messageCount":1,"participants":["Junio C Hamano"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"181454","messageId":"7v62hdnlwx.fsf@alter.siamese.dyndns.org","threadId":"29206","inReplyTo":null,"subject":"What's cooking in git.git (Dec 2011, #06; Sun, 18)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2011-12-19T05:57:34Z","receivedAt":"2011-12-19T05:57:34Z","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' (proposed updates) while commits prefixed with '+' are in\n'next'.\n\nA handful of topics have graduated to 'master', but they are all minor.\nMore important features for 1.7.9 will come in the next batch (marked as\n'Will merge to \"master\"' below), which should happen in a couple of days;\nPeff's credential series is among them.\n\nHere are the repositories that have my integration branches:\n\nWith maint, master, next, pu, todo:\n\n        git://git.kernel.org/pub/scm/git/git.git\n        git://repo.or.cz/alt-git.git\n        https://code.google.com/p/git-core/\n        https://github.com/git/git\n\nWith only maint and master:\n\n        git://git.sourceforge.jp/gitroot/git-core/git.git\n        git://git-core.git.sourceforge.net/gitroot/git-core/git-core\n\nWith all the topics and integration branches:\n\n        https://github.com/gitster/git\n\nThe preformatted documentation in HTML and man format are found in:\n\n        git://git.kernel.org/pub/scm/git/git-{htmldocs,manpages}.git/\n        git://repo.or.cz/git-{htmldocs,manpages}.git/\n        https://code.google.com/p/git-{htmldocs,manpages}.git/\n        https://github.com/gitster/git-{htmldocs,manpages}.git/\n\n--------------------------------------------------\n[Graduated to \"master\"]\n\n* aw/rebase-i-stop-on-failure-to-amend (2011-11-30) 1 commit\n  (merged to 'next' on 2011-12-09 at a117e83)\n + rebase -i: interrupt rebase when \"commit --amend\" failed during \"reword\"\n\n* jc/commit-amend-no-edit (2011-12-08) 5 commits\n  (merged to 'next' on 2011-12-09 at b9cfa4e)\n + test: commit --amend should honor --no-edit\n + commit: honour --no-edit\n + t7501 (commit): modernize style\n + test: remove a porcelain test that hard-codes commit names\n + test: add missing \"&&\" after echo command\n\n* jc/stream-to-pack (2011-12-01) 5 commits\n  (merged to 'next' on 2011-12-09 at d0fd605)\n + bulk-checkin: replace fast-import based implementation\n + csum-file: introduce sha1file_checkpoint\n + finish_tmp_packfile(): a helper function\n + create_tmp_packfile(): a helper function\n + write_pack_header(): a helper function\n (this branch is used by jc/split-blob.)\n\nTeaches \"git add\" to send large-ish blob data straight to a packfile.\nThis is a continuation to the \"large file support\" topic. The codepath to\nmove data from worktree to repository is made aware of streaming, just\nlike the checkout codepath that goes the other way, which was done in the\nprevious \"large file support\" topic in the 1.7.7 cycle.\n\n* jh/fast-import-notes (2011-11-28) 3 commits\n  (merged to 'next' on 2011-12-09 at 2b01132)\n + fast-import: Fix incorrect fanout level when modifying existing notes refs\n + t9301: Add 2nd testcase exposing bugs in fast-import's notes fanout handling\n + t9301: Fix testcase covering up a bug in fast-import's notes fanout handling\n\n* jk/upload-archive-use-start-command (2011-11-21) 1 commit\n  (merged to 'next' on 2011-12-09 at 88cb83a)\n + upload-archive: use start_command instead of fork\n\n--------------------------------------------------\n[New Topics]\n\n* cn/maint-lf-to-crlf-filter (2011-12-16) 1 commit\n - lf_to_crlf_filter(): tell the caller we added \"\\n\" when draining\n (this branch is used by jc/maint-lf-to-crlf-keep-crlf.)\n\nA recent fix to the codepath was not quite correct.\n\nWill merge to \"next\".\n\n* jc/maint-lf-to-crlf-keep-crlf (2011-12-18) 1 commit\n - lf_to_crlf_filter(): resurrect CRLF->CRLF hack\n (this branch uses cn/maint-lf-to-crlf-filter.)\n\nThe lf-to-crlf filter in the streaming checkout codepath forgot that we\ntry not to convert LF to CRLF if the repository data already has CRLF.\n\nWill merge to \"next\".\n\n* jc/request-pull-show-head-4 (2011-12-16) 1 commit\n  (merged to 'next' on 2011-12-16 at bea51ac)\n + request-pull: update the \"pull\" command generation logic\n\nWill merge to \"master\".\n\n* jk/doc-fsck (2011-12-16) 1 commit\n - docs: brush up obsolete bits of git-fsck manpage\n\nWill merge to \"next\".\n\n* jk/follow-rename-score (2011-12-16) 1 commit\n - use custom rename score during --follow\n\nWill merge to \"next\".\n\n* jk/pretty-reglog-ent (2011-12-16) 1 commit\n - pretty: give placeholders to reflog identity\n\nWill merge to \"next\".\n\n* jk/http-push-to-empty (2011-12-17) 1 commit\n - remote-curl: don't pass back fake refs\n\nWill merge to \"next\".\n\n* jk/maint-push-v-is-verbose (2011-12-17) 1 commit\n - make \"git push -v\" actually verbose\n\nWill merge to \"next\".\n\n* jk/maint-strbuf-missing-init (2011-12-18) 2 commits\n - Update jk/maint-strbuf-missing-init to builtin/ rename\n - commit, merge: initialize static strbuf\n\nWill merge to \"next\".\n\n* rs/diff-tree-combined-clean-up (2011-12-17) 3 commits\n - submodule: use diff_tree_combined_merge() instead of diff_tree_combined()\n - pass struct commit to diff_tree_combined_merge()\n - use struct sha1_array in diff_tree_combined()\n\nWill merge to \"next\".\n\n* jn/maint-gitweb-utf8-fix (2011-12-18) 4 commits\n - gitweb: Fix fallback mode of to_utf8 subroutine\n - gitweb: Output valid utf8 in git_blame_common('data')\n - gitweb: esc_html() site name for title in OPML\n - gitweb: Call to_utf8() on input string in chop_and_escape_str()\n\nWill merge to \"next\".\n\n* pw/p4-docs-and-tests (2011-12-18) 11 commits\n - git-p4: document and test submit options\n - git-p4: test and document --use-client-spec\n - git-p4: test --keep-path\n - git-p4: test --max-changes\n - git-p4: document and test --import-local\n - git-p4: honor --changesfile option and test\n - git-p4: document and test clone --branch\n - git-p4: test cloning with two dirs, clarify doc\n - git-p4: clone does not use --git-dir\n - git-p4: test debug macro\n - git-p4: introduce asciidoc documentation\n\n* jc/advise-push-default (2011-12-18) 2 commits\n - push: hint to use push.default=upstream when appropriate\n - advice: Document that they all default to true\n\nA counter-proposal to jc/push-ignore-stale that may encourage a bad\nworkflow.\n\n--------------------------------------------------\n[Cooking]\n\n* ef/setenv-putenv (2011-12-14) 2 commits\n - compat/setenv.c: error if name contains '='\n - compat/setenv.c: update errno when erroring out\n (this branch is used by ef/x-setenv-putenv.)\n\nWill merge to \"next\".\n\n* jk/maint-do-not-feed-stdin-to-tests (2011-12-15) 1 commit\n - test-lib: redirect stdin of tests\n\nWill merge to \"next\".\n\n* jn/test-cleanup-7006 (2011-12-14) 1 commit\n - test: errors preparing for a test are not special\n\nWill merge to \"next\".\n\n* nd/war-on-nul-in-commit (2011-12-15) 3 commits\n - commit_tree(): refuse commit messages that contain NULs\n - Convert commit_tree() to take strbuf as message\n - merge: abort if fails to commit\n\nWill merge to \"next\".\n\n* jk/git-prompt (2011-12-12) 10 commits\n - contrib: add credential helper for OS X Keychain\n - Makefile: OS X has /dev/tty\n - Makefile: linux has /dev/tty\n - credential: use git_prompt instead of git_getpass\n - prompt: use git_terminal_prompt\n - add generic terminal prompt function\n - refactor git_getpass into generic prompt function\n - move git_getpass to its own source file\n - imap-send: don't check return value of git_getpass\n - imap-send: avoid buffer overflow\n (this branch uses jk/credentials.)\n\nWill merge to 'next' after taking another look.\n\n* mh/ref-api-rest (2011-12-12) 35 commits\n - repack_without_ref(): call clear_packed_ref_cache()\n - read_packed_refs(): keep track of the directory being worked in\n - is_refname_available(): query only possibly-conflicting references\n - refs: read loose references lazily\n - read_loose_refs(): take a (ref_entry *) as argument\n - struct ref_dir: store a reference to the enclosing ref_cache\n - sort_ref_dir(): take (ref_entry *) instead of (ref_dir *)\n - do_for_each_ref_in_dir*(): take (ref_entry *) instead of (ref_dir *)\n - add_entry(): take (ref_entry *) instead of (ref_dir *)\n - search_ref_dir(): take (ref_entry *) instead of (ref_dir *)\n - find_containing_direntry(): use (ref_entry *) instead of (ref_dir *)\n - add_ref(): take (ref_entry *) instead of (ref_dir *)\n - read_packed_refs(): take (ref_entry *) instead of (ref_dir *)\n - find_ref(): take (ref_entry *) instead of (ref_dir *)\n - is_refname_available(): take (ref_entry *) instead of (ref_dir *)\n - get_loose_refs(): return (ref_entry *) instead of (ref_dir *)\n - get_packed_refs(): return (ref_entry *) instead of (ref_dir *)\n - refs: wrap top-level ref_dirs in ref_entries\n - get_ref_dir(): keep track of the current ref_dir\n - do_for_each_ref(): only iterate over the subtree that was requested\n - refs: sort ref_dirs lazily\n - sort_ref_dir(): do not sort if already sorted\n - refs: store references hierarchically\n - refs.c: rename ref_array -> ref_dir\n - struct ref_entry: nest the value part in a union\n - check_refname_component(): return 0 for zero-length components\n - free_ref_entry(): new function\n - refs.c: reorder definitions more logically\n - is_refname_available(): reimplement using do_for_each_ref_in_array()\n - names_conflict(): simplify implementation\n - names_conflict(): new function, extracted from is_refname_available()\n - repack_without_ref(): reimplement using do_for_each_ref_in_array()\n - do_for_each_ref_in_arrays(): new function\n - do_for_each_ref_in_array(): new function\n - do_for_each_ref(): correctly terminate while processesing extra_refs\n (this branch uses mh/ref-api.)\n\nThe API for extra anchoring points may require rethought first; that would\nhopefully make the \"ref\" part a lot simpler.\n\n* ci/stripspace-docs (2011-12-12) 1 commit\n  (merged to 'next' on 2011-12-13 at 35b2cdf)\n + Update documentation for stripspace\n\nWill merge to \"master\".\n\n* jk/maint-mv (2011-12-12) 5 commits\n  (merged to 'next' on 2011-12-13 at 58caedb)\n + mv: be quiet about overwriting\n + mv: improve overwrite warning\n + mv: make non-directory destination error more clear\n + mv: honor --verbose flag\n + docs: mention \"-k\" for both forms of \"git mv\"\n\nWill merge to \"master\".\n\n* jk/maint-snprintf-va-copy (2011-12-12) 1 commit\n  (merged to 'next' on 2011-12-13 at d37a7e1)\n + compat/snprintf: don't look at va_list twice\n\nWill merge to \"master\".\n\n* jn/maint-sequencer-fixes (2011-12-12) 7 commits\n  (merged to 'next' on 2011-12-13 at 5b3950c)\n + revert: stop creating and removing sequencer-old directory\n + Revert \"reset: Make reset remove the sequencer state\"\n + revert: do not remove state until sequence is finished\n + revert: allow single-pick in the middle of cherry-pick sequence\n + revert: pass around rev-list args in already-parsed form\n + revert: allow cherry-pick --continue to commit before resuming\n + revert: give --continue handling its own function\n (this branch is used by rr/revert-cherry-pick.)\n\nWill merge to \"master\".\n\n* mh/ref-api (2011-12-12) 16 commits\n  (merged to 'next' on 2011-12-15 at d65a830)\n + add_ref(): take a (struct ref_entry *) parameter\n + create_ref_entry(): extract function from add_ref()\n + repack_without_ref(): remove temporary\n + resolve_gitlink_ref_recursive(): change to work with struct ref_cache\n + Pass a (ref_cache *) to the resolve_gitlink_*() helper functions\n + resolve_gitlink_ref(): improve docstring\n + get_ref_dir(): change signature\n + refs: change signatures of get_packed_refs() and get_loose_refs()\n + is_dup_ref(): extract function from sort_ref_array()\n + add_ref(): add docstring\n + parse_ref_line(): add docstring\n + is_refname_available(): remove the \"quiet\" argument\n + clear_ref_array(): rename from free_ref_array()\n + refs: rename parameters result -> sha1\n + refs: rename \"refname\" variables\n + struct ref_entry: document name member\n (this branch is used by mh/ref-api-rest.)\n\nLater part split out to expedite moving the earlier good bits forward.\n\nWill merge to \"master\".\n\n* nd/resolve-ref (2011-12-13) 3 commits\n  (merged to 'next' on 2011-12-13 at c7002e9)\n + Rename resolve_ref() to resolve_ref_unsafe()\n + Convert resolve_ref+xstrdup to new resolve_refdup function\n + revert: convert resolve_ref() to read_ref_full()\n\nWill merge to \"master\".\n\n* tr/grep-threading (2011-12-16) 3 commits\n - grep: disable threading in non-worktree case\n - grep: enable threading with -p and -W using lazy attribute lookup\n - grep: load funcname patterns for -W\n\nWill merge to 'next' after taking another look.\n\n* tr/pty-all (2011-12-12) 3 commits\n - t/lib-terminal: test test-terminal's sanity\n - test-terminal: set output terminals to raw mode\n - test-terminal: give the child an empty stdin TTY\n\nThe test breakage that originally triggered interest in this topic is\nfixed more cleanly with Peff's jk/maint-do-not-feed-stdin-to-tests but\nthis series may independently be useful.\n\nJonathan had good review comments, and this would need to be rerolled.\n\n* jc/push-ignore-stale (2011-12-14) 2 commits\n - push: --ignore-stale option\n - set_ref_status_for_push(): use transport-flags abstraction\n\nProbably solving a wrong problem and encouraging a wrong workflow while at\nit. Will drop. jc/advise-push-default might be a better approach.\n\n* jk/fetch-no-tail-match-refs (2011-12-13) 4 commits\n  (merged to 'next' on 2011-12-13 at 805c018)\n + connect.c: drop path_match function\n + fetch-pack: match refs exactly\n + t5500: give fully-qualified refs to fetch-pack\n + drop \"match\" parameter from get_remote_heads\n\nWill merge to \"master\".\n\n* jk/maint-push-over-dav (2011-12-13) 2 commits\n  (merged to 'next' on 2011-12-13 at 45e376c)\n + http-push: enable \"proactive auth\"\n + t5540: test DAV push with authentication\n\nWill merge to \"master\".\n\n* rr/revert-cherry-pick (2011-12-15) 6 commits\n - t3502, t3510: clarify cherry-pick -m failure\n - t3510 (cherry-pick-sequencer): use exit status\n - revert: simplify getting commit subject in format_todo()\n - revert: tolerate extra spaces, tabs in insn sheet\n - revert: make commit subjects in insn sheet optional\n - revert: free msg in format_todo()\n (this branch uses jn/maint-sequencer-fixes.)\n\nPicked up only the earlier bits that are reasonably clear for now.\n\nWill merge to \"next\".\n\n* ew/keepalive (2011-12-05) 1 commit\n  (merged to 'next' on 2011-12-13 at 1b5d5c4)\n + enable SO_KEEPALIVE for connected TCP sockets\n\n* jc/checkout-m-twoway (2011-12-15) 3 commits\n  (merged to 'next' on 2011-12-15 at cc64fed)\n + checkout_merged(): squelch false warning from some gcc\n  (merged to 'next' on 2011-12-11 at b61057f)\n + Test 'checkout -m -- path'\n  (merged to 'next' on 2011-12-09 at c946009)\n + checkout -m: no need to insist on having all 3 stages\n\nWill merge to \"master\".\n\n* tr/cache-tree (2011-12-06) 5 commits\n  (merged to 'next' on 2011-12-13 at e0da64d)\n + reset: update cache-tree data when appropriate\n + commit: write cache-tree data when writing index anyway\n + Refactor cache_tree_update idiom from commit\n + Test the current state of the cache-tree optimization\n + Add test-scrap-cache-tree\n\nWill merge to \"master\".\n\n* rr/test-chaining (2011-12-11) 7 commits\n  (merged to 'next' on 2011-12-13 at b08445e)\n + t3401: use test_commit in setup\n + t3401: modernize style\n + t3040 (subprojects-basic): fix '&&' chaining, modernize style\n + t1510 (worktree): fix '&&' chaining\n + t3030 (merge-recursive): use test_expect_code\n + test: fix '&&' chaining\n + t3200 (branch): fix '&&' chaining\n\nWill merge to \"master\".\n\n* jc/split-blob (2011-12-01) 6 commits\n . WIP (streaming chunked)\n - chunked-object: fallback checkout codepaths\n - bulk-checkin: support chunked-object encoding\n - bulk-checkin: allow the same data to be multiply hashed\n - new representation types in the packstream\n - varint-in-pack: refactor varint encoding/decoding\n\nNot ready. At least pack-objects and fsck need to learn the new encoding\nfor the series to be usable locally, and then index-pack/unpack-objects\nneeds to learn it to be used remotely.\n\n* jk/credentials (2011-12-12) 14 commits\n  (merged to 'next' on 2011-12-12 at 7a6d658)\n + t: add test harness for external credential helpers\n + credentials: add \"store\" helper\n + strbuf: add strbuf_add*_urlencode\n + Makefile: unix sockets may not available on some platforms\n + credentials: add \"cache\" helper\n + docs: end-user documentation for the credential subsystem\n + credential: make relevance of http path configurable\n + credential: add credential.*.username\n + credential: apply helper config\n + http: use credential API to get passwords\n + credential: add function for parsing url components\n + introduce credentials API\n + t5550: fix typo\n + test-lib: add test_config_global variant\n (this branch is used by jk/git-prompt.)\n\nLater part split out to expedite moving the earlier good bits forward.\n\nWill merge to \"master\".\n\n* ab/enable-i18n (2011-12-05) 1 commit\n  (merged to 'next' on 2011-12-13 at 65af8cd)\n + i18n: add infrastructure for translating Git with gettext\n\n* jc/signed-commit (2011-11-29) 5 commits\n - gpg-interface: allow use of a custom GPG binary\n - pretty: %G[?GS] placeholders\n - test \"commit -S\" and \"log --show-signature\"\n - log: --show-signature\n - commit: teach --gpg-sign option\n\nNot exactly urgent.\n"}]}