{"thread":{"id":"29239","subject":"What's cooking in git.git (Dec 2011, #08; Thu, 22)","startedAt":"2011-12-22T20:59:25Z","lastAt":"2011-12-22T20:59:25Z","messageCount":1,"participants":["Junio C Hamano"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"181626","messageId":"7vobv0cogi.fsf@alter.siamese.dyndns.org","threadId":"29239","inReplyTo":null,"subject":"What's cooking in git.git (Dec 2011, #08; Thu, 22)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2011-12-22T20:59:25Z","receivedAt":"2011-12-22T20:59:25Z","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\nThe tip of 'master' is now feature complete for 1.7.9 so I could tag it as\nthe -rc0, but I'll let it simmer for several days to give people chance to\ntest over the holidays.\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[New Topics]\n\n* tr/doc-sh-setup (2011-12-20) 1 commit\n  (merged to 'next' on 2011-12-21 at bd73695)\n + git-sh-setup: make require_clean_work_tree part of the interface\n\n* ab/sun-studio-portability (2011-12-21) 3 commits\n  (merged to 'next' on 2011-12-21 at 0cc5a63)\n + Appease Sun Studio by renaming \"tmpfile\"\n + Fix a bitwise negation assignment issue spotted by Sun Studio\n + Fix an enum assignment issue spotted by Sun Studio\n\n* tr/bash-read-unescaped (2011-12-21) 1 commit\n  (merged to 'next' on 2011-12-21 at de865c1)\n + bash completion: use read -r everywhere\n\n* jc/advise-i18n (2011-12-22) 1 commit\n - i18n of multi-line advice messages\n\nAllow localization of advice messages that tend to be longer and\nmulti-line formatted. For now this is deliberately limited to advise()\ninterface and not vreportf() in general as touching the latter has\ninteractions with error() that has plumbing callers whose prefix \"error: \"\nshould never be translated.\n\n--------------------------------------------------\n[Graduated to \"master\"]\n\n* cn/maint-lf-to-crlf-filter (2011-12-16) 1 commit\n  (merged to 'next' on 2011-12-20 at 83d6f7c)\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\n* ef/setenv-putenv (2011-12-14) 2 commits\n  (merged to 'next' on 2011-12-20 at 4845020)\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\n* jc/advice-doc (2011-12-18) 1 commit\n  (merged to 'next' on 2011-12-19 at 0b410e5)\n + advice: Document that they all default to true\n (this branch is used by jc/advise-push-default.)\n\n* jc/maint-lf-to-crlf-keep-crlf (2011-12-18) 1 commit\n  (merged to 'next' on 2011-12-20 at eee6eb3)\n + lf_to_crlf_filter(): resurrect CRLF->CRLF hack\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\n* jc/request-pull-show-head-4 (2011-12-19) 2 commits\n  (merged to 'next' on 2011-12-19 at 771939b)\n + request-pull: do not emit \"tag\" before the tagname\n  (merged to 'next' on 2011-12-16 at bea51ac)\n + request-pull: update the \"pull\" command generation logic\n\n* jk/doc-fsck (2011-12-16) 1 commit\n  (merged to 'next' on 2011-12-20 at 70df8a4)\n + docs: brush up obsolete bits of git-fsck manpage\n\n* jk/follow-rename-score (2011-12-16) 1 commit\n  (merged to 'next' on 2011-12-20 at 74db2a9)\n + use custom rename score during --follow\n\n* jk/git-prompt (2011-12-12) 10 commits\n  (merged to 'next' on 2011-12-20 at 24aff90)\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\n* jk/http-push-to-empty (2011-12-19) 1 commit\n  (merged to 'next' on 2011-12-19 at 845e2a1)\n + remote-curl: don't pass back fake refs\n\n* jk/maint-do-not-feed-stdin-to-tests (2011-12-15) 1 commit\n  (merged to 'next' on 2011-12-20 at 43e83c5)\n + test-lib: redirect stdin of tests\n\n* jk/maint-push-v-is-verbose (2011-12-17) 1 commit\n  (merged to 'next' on 2011-12-20 at b79f101)\n + make \"git push -v\" actually verbose\n\n* jk/maint-strbuf-missing-init (2011-12-18) 2 commits\n  (merged to 'next' on 2011-12-20 at 72fa8ae)\n + Update jk/maint-strbuf-missing-init to builtin/ rename\n + commit, merge: initialize static strbuf\n\n* jk/pretty-reglog-ent (2011-12-16) 1 commit\n  (merged to 'next' on 2011-12-20 at 949b010)\n + pretty: give placeholders to reflog identity\n\n* jn/test-cleanup-7006 (2011-12-14) 1 commit\n  (merged to 'next' on 2011-12-20 at 952f48f)\n + test: errors preparing for a test are not special\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\n* nd/war-on-nul-in-commit (2011-12-15) 3 commits\n  (merged to 'next' on 2011-12-20 at d441111)\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\n* rs/diff-tree-combined-clean-up (2011-12-17) 3 commits\n  (merged to 'next' on 2011-12-20 at 265e049)\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\n* tr/grep-threading (2011-12-16) 3 commits\n  (merged to 'next' on 2011-12-20 at 1a852ef)\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\n--------------------------------------------------\n[Stalled]\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\nWaiting for a reroll.\n\n* jc/advise-push-default (2011-12-18) 1 commit\n - push: hint to use push.default=upstream when appropriate\n\nPeff had a good suggestion outlining an updated code structure so that\nsomebody new can try to dip his or her toes in the development. Any\ntakers?\n\nWaiting for a reroll.\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\nThe API for extra anchoring points may require rethought first; that would\nhopefully make the \"ref\" part a lot simpler.\n\nWaiting for a reroll.\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.\n\nAt least pack-objects and fsck need to learn the new encoding for the\nseries to be usable locally, and then index-pack/unpack-objects needs to\nlearn it to be used remotely.\n\n--------------------------------------------------\n[Cooking]\n\n* jn/maint-gitweb-utf8-fix (2011-12-19) 4 commits\n  (merged to 'next' on 2011-12-20 at b816812)\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\n* tr/pty-all (2011-12-19) 1 commit\n  (merged to 'next' on 2011-12-20 at 9b637d3)\n + test-terminal: set output terminals to raw mode\n\nKept only the second one from the original.\n\n* rr/revert-cherry-pick (2011-12-15) 6 commits\n  (merged to 'next' on 2011-12-21 at d0428dc)\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\n* jc/signed-commit (2011-11-29) 5 commits\n  (merged to 'next' on 2011-12-21 at 8fcbf00)\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\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. jc/advise-push-default might be a better approach.\n\nWill drop.\n"}]}