{"thread":{"id":"31323","subject":"What's cooking in git.git (Aug 2012, #07; Wed, 22)","startedAt":"2012-08-22T21:03:52Z","lastAt":"2012-08-22T21:03:52Z","messageCount":1,"participants":["Junio C Hamano"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"197660","messageId":"7vsjbe63lz.fsf@alter.siamese.dyndns.org","threadId":"31323","inReplyTo":null,"subject":"What's cooking in git.git (Aug 2012, #07; Wed, 22)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2012-08-22T21:03:52Z","receivedAt":"2012-08-22T21:03:52Z","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 'next'.\n\nAs promised (threatened ;-), the first batch of topics for the next\nrelease are now part of 'master'.  They are mostly innocuous\ndocumentation updates, test clean-ups, and all should eventually go\nto the maintenance track.  In addition, the update to git-svn to\nmake it work better with subversion 1.7 is also included.\n\nI'm planning to keep this cycle reasonably short and aim for tagging\nthe result as 1.8.0 at the end of 9th week, on October 21st, after\nwhich I'd disappear for a few weeks.  http://tinyurl.com/gitCal is\nwhere you can always find my rough tagging schedule at.\n\nYou can find the changes described here in the integration branches of the\nrepositories listed at\n\n    http://git-blame.blogspot.com/p/git-public-repositories.html\n\n--------------------------------------------------\n[New Topics]\n\n* er/doc-fast-import-done (2012-08-22) 1 commit\n - fast-import: document the --done option\n\nParked in 'pu' in case ESR responds with \"Sorry, forgot to sign-off\".\n\n* nd/am-i18n-fix (2012-08-22) 1 commit\n - am: quote string for translation before passing to eval_gettextln\n\n\"git am\" wasn't marked up for i18n properly.\nWill merge to 'next', and eventually to maint-1.7.11 track.\n\n--------------------------------------------------\n[Graduated to \"master\"]\n\n* hv/coding-guidelines (2012-08-15) 1 commit\n  (merged to 'next' on 2012-08-20 at 4984865)\n + Documentation/CodingGuidelines: spell out more shell guidelines\n\n(Originally merged to 'next' on 2012-08-18)\n\nIn earlier days, \"imitate the style in the neibouring code\" was\nsufficient to keep the coherent style, but over time some parts of\nthe codebase have drifted enough to make it ineffective.\n\n* jc/doc-git-updates (2012-08-17) 1 commit\n  (merged to 'next' on 2012-08-20 at ab1db71)\n + Documentation: update the introductory section\n\n(Originally merged to 'next' on 2012-08-18)\n\n* jc/maint-abbrev-option-cli (2012-08-16) 1 commit\n  (merged to 'next' on 2012-08-20 at 54d1a5a)\n + gitcli: describe abbreviation of long options\n\n(Originally merged to 'next' on 2012-08-18)\n\nWe did not document that many commands take unique prefix\nabbreviations of long options (e.g. \"--option\" may be the only flag\nthat the command accepts that begin with \"--opt\", in which case you\ncan give \"--opt\") anywhere easy to find for new people.\n\n* jc/maint-rev-list-topo-doc (2012-08-15) 1 commit\n  (merged to 'next' on 2012-08-20 at 0f669d2)\n + rev-list docs: clarify --topo-order description\n\n(Originally merged to 'next' on 2012-08-18)\n\nIt was unclear what \"--topo-order\" was really about in the\ndocumentation. It is not just about \"children before parent\", but\nalso about \"don't mix lineages\".\n\n* jc/tag-doc (2012-08-06) 1 commit\n  (merged to 'next' on 2012-08-20 at 9eb658e)\n + Documentation: do not mention .git/refs/* directories\n\n(Originally merged to 'next' on 2012-08-18)\n\nOur documentation used to assume having files in .git/refs/*\ndirectories was the only to have branches and tags, but that is not\ntrue for quite some time.\n\n* jc/test-prereq (2012-08-04) 8 commits\n  (merged to 'next' on 2012-08-20 at dd44c4a)\n + t3910: use the UTF8_NFD_TO_NFC test prereq\n + test-lib: provide UTF8 behaviour as a prerequisite\n + t0050: use the SYMLINKS test prereq\n + t0050: use the CASE_INSENSITIVE_FS test prereq\n + test-lib: provide case insensitivity as a prerequisite\n + test: allow prerequisite to be evaluated lazily\n + test: rename $satisfied to $satisfied_prereq\n\n(Originally merged to 'next' on 2012-08-04)\n\nTeaches the test framework to probe rarely used prerequistes lazily,\nand make use of it for detecting SYMLINKS, CASE_INSENSITIVE_FS and\nNKD/NKC MacOS x gotcha.\n\n* jk/check-docs-update (2012-08-08) 8 commits\n  (merged to 'next' on 2012-08-20 at d51021d)\n + check-docs: get documented command list from Makefile\n + check-docs: drop git-help special-case\n + check-docs: list git-gui as a command\n + check-docs: factor out command-list\n + command-list: mention git-credential-* helpers\n + command-list: add git-sh-i18n\n + check-docs: update non-command documentation list\n + check-docs: mention gitweb specially\n\n(Originally merged to 'next' on 2012-08-18)\n\nSimplify \"make check-docs\" implementation and update its coverage.\n\n* js/gitweb-path-info-unquote (2012-08-15) 1 commit\n  (merged to 'next' on 2012-08-20 at a4aa740)\n + gitweb: URL-decode $my_url/$my_uri when stripping PATH_INFO\n\n(Originally merged to 'next' on 2012-08-15)\n\nStripping of PATH_INFO in gitweb did not take url style quoting into\naccount, failing to notice directories with funny characters e.g. SP\nin their paths.\n\n* mk/test-seq (2012-08-04) 1 commit\n  (merged to 'next' on 2012-08-20 at c373e0e)\n + tests: Introduce test_seq\n (this branch is used by ab/diff-write-incomplete-line.)\n\n(Originally merged to 'next' on 2012-08-06)\n\nAdd a compatibility/utility function to the test framework. \n\n* mm/die-with-dashdash-help (2012-08-03) 1 commit\n  (merged to 'next' on 2012-08-20 at ebe0e1a)\n + setup: clarify error messages for file/revisions ambiguity\n\n(Originally merged to 'next' on 2012-08-09)\n\nReword error messages.\n\n* ms/git-svn-1.7 (2012-08-02) 20 commits\n  (merged to 'next' on 2012-08-21 at ae8aff9)\n + git-svn: remove ad-hoc canonicalizations\n + git-svn: canonicalize newly-minted URLs\n + git-svn: introduce add_path_to_url function\n + git-svn: canonicalize earlier\n + git-svn: replace URL escapes with canonicalization\n + git-svn: attempt to mimic SVN 1.7 URL canonicalization\n + t9107: fix typo\n + t9118: workaround inconsistency between SVN versions\n + Git::SVN{,::Ra}: canonicalize earlier\n + git-svn: path canonicalization uses SVN API\n + Git::SVN::Utils: remove irrelevant comment\n + git-svn: add join_paths() to safely concatenate paths\n + git-svn: factor out _collapse_dotdot function\n + git-svn: use SVN 1.7 to canonicalize when possible\n + git-svn: move canonicalization to Git::SVN::Utils\n + use Git::SVN{,::RA}->url accessor globally\n + use Git::SVN->path accessor globally\n + Git::SVN::Ra: use accessor for URLs\n + Git::SVN: use accessor for URLs internally\n + Git::SVN: use accessors internally for path\n\nA series by Michael Schwern via Eric to update git-svn to revamp the\nway URLs are internally passed around, to make it work with SVN 1.7.\n\n* mv/pull-r-for-rebase (2012-08-17) 1 commit\n  (merged to 'next' on 2012-08-20 at 9743071)\n + man: git pull -r is a short for --rebase\n\n(Originally merged to 'next' on 2012-08-18)\n\nA minor documentation update.\n\n* nd/index-errno (2012-08-06) 1 commit\n  (merged to 'next' on 2012-08-20 at 34076c6)\n + read_index_from: remove bogus errno assignments\n\n(Originally merged to 'next' on 2012-08-06)\n\nAssignments to errno before calling system functions that used to\nmatter in the old code were left behind after the code structure\nchanged sufficiently to make them useless.\n\n* pg/maint-apply-remove-unused-variable (2012-08-05) 1 commit\n  (merged to 'next' on 2012-08-20 at 260975b)\n + apply: delete unused deflate_origlen from patch struct\n\n(Originally merged to 'next' on 2012-08-05)\n\nRemove an unused field.\n\n* tr/maint-send-email-2047 (2012-07-31) 1 commit\n  (merged to 'next' on 2012-08-20 at cf5ee1c)\n + send-email: improve RFC2047 quote parsing\n\n(Originally merged to 'next' on 2012-08-09)\n\n\"git send-email\" did not unquote encoded words that appear on the\nheader correctly, and lost \"_\" from strings.\n\n* tr/merge-recursive-flush (2012-08-03) 1 commit\n  (merged to 'next' on 2012-08-20 at 00aeb19)\n + merge-recursive: eliminate flush_buffer() in favor of write_in_full()\n\n(Originally merged to 'next' on 2012-08-09)\n\nRemove unnecessary code.\n\n* tr/void-diff-setup-done (2012-08-03) 1 commit\n  (merged to 'next' on 2012-08-20 at 2f21f63)\n + diff_setup_done(): return void\n\n(Originally merged to 'next' on 2012-08-09)\n\nRemove unnecessary code.\n\n--------------------------------------------------\n[Stalled]\n\n* jc/add-delete-default (2012-08-13) 1 commit\n - git add: notice removal of tracked paths by default\n\n\"git add dir/\" updated modified files and added new files, but does\nnot notice removed files, which may be \"Huh?\" to some users.  They\ncan of course use \"git add -A dir/\", but why should they?\n\nResurrected from graveyard, as I thought it was a worthwhile thing\nto do in the longer term; waiting for comments.\n\n* tx/relative-in-the-future (2012-08-16) 2 commits\n - date: show relative dates in the future\n - date: refactor the relative date logic from presentation\n\nNot my itch; rewritten an earlier submission by Tom Xue into\nsomewhat more maintainable form, though it breaks existing i18n.\n\nAnybody interested in fixing it up?  Otherwise may discard.\n\n* pw/p4-submit-conflicts (2012-08-16) 12 commits\n - git p4: add submit --prepare-p4-only option\n - git p4: add submit --dry-run option\n - git p4: accept -v for --verbose\n - git p4: revert deleted files after submit cancel\n - git p4: rearrange submit template construction\n - git p4: test clean-up after failed submit, fix added files\n - git p4: standardize submit cancel due to unchanged template\n - git p4: move conflict prompt into run, use [c]ontinue and [q]uit\n - git p4: remove submit failure options [a]pply and [w]rite\n - git p4: gracefully fail if some commits could not be applied\n - git p4 test: use p4d -L option to suppress log messages\n - git p4 test: remove bash-ism of combined export/assignment\n\nWaiting for the dust to settle.\n\n* mz/rebase-range (2012-07-18) 7 commits\n . rebase (without -p): correctly calculate patches to rebase\n . rebase -p: don't request --left-right only to ignore left side\n . rebase -p: use --cherry-mark for todo file\n . git-rebase--interactive.sh: look up subject in add_pick_line\n . git-rebase--interactive: group all $preserve_merges code\n . git-rebase--interactive.sh: extract function for adding \"pick\" line\n . git-rebase--am.sh: avoid special-casing --keep-empty\n\nExpecting a reroll.\n\nPerformance concerns from Windows folks.  Also the series lacks\nproper sign-offs.\n\n* jl/submodule-rm (2012-07-05) 2 commits\n - rm: remove submodules from the index and the .gitmodules file\n - rm: don't fail when removing populated submodules\n\nExpecting a reroll.\n\n* mb/remote-default-nn-origin (2012-07-11) 6 commits\n - Teach get_default_remote to respect remote.default.\n - Test that plain \"git fetch\" uses remote.default when on a detached HEAD.\n - Teach clone to set remote.default.\n - Teach \"git remote\" about remote.default.\n - Teach remote.c about the remote.default configuration setting.\n - Rename remote.c's default_remote_name static variables.\n\nWhen the user does not specify what remote to interact with, we\noften attempt to use 'origin'.  This can now be customized via a\nconfiguration variable.\n\nExpecting a reroll.\n\n\"The first remote becomes the default\" bit is better done as a\nseparate step.\n\n* jc/split-blob (2012-04-03) 6 commits\n - chunked-object: streaming checkout\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 - packfile: use varint functions\n\nNot ready.\n\nI finished the streaming checkout codepath, but as explained in\n127b177 (bulk-checkin: support chunked-object encoding, 2011-11-30),\nthese are still early steps of a long and painful journey. At least\npack-objects and fsck need to learn the new encoding for the series\nto be usable locally, and then index-pack/unpack-objects needs to\nlearn it to be used remotely.\n\nGiven that I heard a lot of noise that people want large files, and\nthat I was asked by somebody at GitTogether'11 privately for an\nadvice on how to pay developers (not me) to help adding necessary\nsupport, I am somewhat dissapointed that the original patch series\nthat was sent long time ago still remains here without much comments\nand updates from the developer community. I even made the interface\nto the logic that decides where to split chunks easily replaceable,\nand I deliberately made the logic in the original patch extremely\nstupid to entice others, especially the \"bup\" fanbois, to come up\nwith a better logic, thinking that giving people an easy target to\nshoot for, they may be encouraged to help out. The plan is not\nworking :-<.\n\n--------------------------------------------------\n[Cooking]\n\n* lt/commit-tree-guess-utf-8 (2012-08-21) 1 commit\n - commit/commit-tree: correct latin1 to utf-8\n\nTeaches \"git commit\" and \"git commit-tree\" the \"we are told to use\nutf-8 in log message, but this does not look like utf-8---attempt to\npass it through convert-from-latin1-to-utf8 and see if it makes\nsense\" heuristics \"git mailinfo\" already uses.\n\nWill merge to 'next'.\n\n* kk/maint-for-each-ref-multi-sort (2012-08-21) 2 commits\n - for-each-ref: Fix sort with multiple keys\n - t6300: test sort with multiple keys\n\n\"git for-each-ref\" did not currectly support more than one --sort\noption.\n\nWill merge to 'next'.\n\n* fa/remote-svn (2012-08-22) 16 commits\n - Add a test script for remote-svn\n - remote-svn: add marks-file regeneration\n - Add a svnrdump-simulator replaying a dump file for testing\n - remote-svn: add incremental import\n - remote-svn: Activate import/export-marks for fast-import\n - Create a note for every imported commit containing svn metadata\n - vcs-svn: add fast_export_note to create notes\n - Allow reading svn dumps from files via file:// urls\n - remote-svn, vcs-svn: Enable fetching to private refs\n - When debug==1, start fast-import with \"--stats\" instead of \"--quiet\"\n - Add documentation for the 'bidi-import' capability of remote-helpers\n - Connect fast-import to the remote-helper via pipe, adding 'bidi-import' capability\n - Add argv_array_detach and argv_array_free_detached\n - Add svndump_init_fd to allow reading dumps from arbitrary FDs\n - Add git-remote-testsvn to Makefile\n - Implement a remote helper for svn in C\n (this branch is used by fa/vcs-svn.)\n\n* fa/vcs-svn (2012-08-22) 4 commits\n - vcs-svn: remove repo_tree\n - vcs-svn/svndump: rewrite handle_node(), begin|end_revision()\n - vcs-svn/svndump: restructure node_ctx, rev_ctx handling\n - svndump: move struct definitions to .h\n (this branch uses fa/remote-svn.)\n\n* nd/i18n-parseopt-help (2012-08-22) 66 commits\n - Use imperative form in help usage to describe an action\n - Reduce translations by using same terminologies\n - i18n: write-tree: mark parseopt strings for translation\n - i18n: verify-tag: mark parseopt strings for translation\n - i18n: verify-pack: mark parseopt strings for translation\n - i18n: update-server-info: mark parseopt strings for translation\n - i18n: update-ref: mark parseopt strings for translation\n - i18n: update-index: mark parseopt strings for translation\n - i18n: tag: mark parseopt strings for translation\n - i18n: symbolic-ref: mark parseopt strings for translation\n - i18n: show-ref: mark parseopt strings for translation\n - i18n: show-branch: mark parseopt strings for translation\n - i18n: shortlog: mark parseopt strings for translation\n - i18n: rm: mark parseopt strings for translation\n - i18n: revert, cherry-pick: mark parseopt strings for translation\n - i18n: rev-parse: mark parseopt strings for translation\n - i18n: reset: mark parseopt strings for translation\n - i18n: rerere: mark parseopt strings for translation\n - i18n: status: mark parseopt strings for translation\n - i18n: replace: mark parseopt strings for translation\n - i18n: remote: mark parseopt strings for translation\n - i18n: read-tree: mark parseopt strings for translation\n - i18n: push: mark parseopt strings for translation\n - i18n: prune: mark parseopt strings for translation\n - i18n: prune-packed: mark parseopt strings for translation\n - i18n: pack-refs: mark parseopt strings for translation\n - i18n: pack-objects: mark parseopt strings for translation\n - i18n: notes: mark parseopt strings for translation\n - i18n: name-rev: mark parseopt strings for translation\n - i18n: mv: mark parseopt strings for translation\n - i18n: mktree: mark parseopt strings for translation\n - i18n: merge: mark parseopt strings for translation\n - i18n: merge-file: mark parseopt strings for translation\n - i18n: merge-base: mark parseopt strings for translation\n - i18n: ls-tree: mark parseopt strings for translation\n - i18n: ls-files: mark parseopt strings for translation\n - i18n: log: mark parseopt strings for translation\n - i18n: init-db: mark parseopt strings for translation\n - i18n: help: mark parseopt strings for translation\n - i18n: hash-object: mark parseopt strings for translation\n - i18n: grep: mark parseopt strings for translation\n - i18n: gc: mark parseopt strings for translation\n - i18n: fsck: mark parseopt strings for translation\n - i18n: format-patch: mark parseopt strings for translation\n - i18n: for-each-ref: mark parseopt strings for translation\n - i18n: fmt-merge-msg: mark parseopt strings for translation\n - i18n: fetch: mark parseopt strings for translation\n - i18n: fast-export: mark parseopt strings for translation\n - i18n: describe: mark parseopt strings for translation\n - i18n: config: mark parseopt strings for translation\n - i18n: count-objects: mark parseopt strings for translation\n - i18n: commit: mark parseopt strings for translation\n - i18n: column: mark parseopt strings for translation\n - i18n: clone: mark parseopt strings for translation\n - i18n: clean: mark parseopt strings for translation\n - i18n: cherry: mark parseopt strings for translation\n - i18n: checkout: mark parseopt strings for translation\n - i18n: checkout-index: mark parseopt strings for translation\n - i18n: check-attr: mark parseopt strings for translation\n - i18n: cat-file: mark parseopt strings for translation\n - i18n: branch: mark parseopt strings for translation\n - i18n: blame: mark parseopt strings for translation\n - i18n: add: mark parseopt strings for translation\n - i18n: bisect--helper: mark parseopt strings for translation\n - i18n: archive: mark parseopt strings for translation\n - i18n: mark \"style\" in OPT_COLUMN() for translation\n\nA lot of i18n mark-up for the help text from \"git <cmd> -h\".\n\nWill merge to 'next'.\n\n* tr/maint-parseopt-avoid-empty (2012-08-20) 1 commit\n - gettext: do not translate empty string\n\nA workaround to avoid doing _(\"\"), which translates to magic string\nin the .po files.\n\nWill merge to 'next'.\n\n* jk/config-warn-on-inaccessible-paths (2012-08-21) 4 commits\n - warn_on_inaccessible(): a helper to warn on inaccessible paths\n - attr: warn on inaccessible attribute files\n - gitignore: report access errors of exclude files\n - config: warn on inaccessible files\n\nWhen looking for $HOME/.gitconfig etc., it is OK if we cannot read\nthem because they do not exist, but unable to read existing ones\nneed to be diagnosed.\n\nWill merge to 'next'.\n\n* nd/i18n-poison-test-updates (2012-08-21) 6 commits\n - Fix tests under GETTEXT_POISON on parseopt\n - Fix tests under GETTEXT_POISON on pack-object\n - Fix tests under GETTEXT_POISON on git-apply\n - Fix tests under GETTEXT_POISON on diffstat\n - Fix tests under GETTEXT_POISON on git-stash\n - Fix tests under GETTEXT_POISON on relative dates\n\nUpdates to tests that can be broken with gettext-poison builds.\n\n* jc/daemon-access-hook (2012-08-15) 1 commit\n  (merged to 'next' on 2012-08-20 at c8f5b2e)\n + daemon: --access-hook option\n\nAllow an external command to tell git-daemon to decline service\nbased on the client address, repository path, etc.\n\nWill merge to 'master' as part of the third batch.\n\n* jc/send-email-reconfirm (2012-08-14) 1 commit\n  (merged to 'next' on 2012-08-20 at dffdef6)\n + send-email: validate & reconfirm interactive responses\n\nValidate interactive input to \"git send-email\" to avoid common\nmistakes such as saying \"y<RETURN>\" to sender mail address whose\nprompt is given with a correctly guessed default.\n\nWill merge to 'master' as part of the third batch.\n\n* ef/win32-cred-helper (2012-08-16) 1 commit\n  (merged to 'next' on 2012-08-20 at bd5c651)\n + contrib: add win32 credential-helper\n\nCredential helper for Win32 to allow access to the keychain of\nthe logged-in user.\n\nWill merge to 'master' as part of the second batch.\n\n* rr/precompose-utf8-cleanup (2012-08-20) 2 commits\n  (merged to 'next' on 2012-08-20 at a883c2a)\n + precompose-utf8: do not call checks for non-ascii \"utf8\"\n + cleanup precompose_utf8\n\nA style and code cleanup.\n\nWill merge to 'master' as part of the second batch.\n\n* mh/maint-config-doc-proxy-command (2012-08-18) 2 commits\n  (merged to 'next' on 2012-08-20 at a484625)\n + git-config doc: unconfuse an example\n + git-config.txt: fix example\n\nA minor documentation update.\n\nWill merge to 'master' as part of the second batch.\n\n* ph/stash-rerere (2012-08-17) 2 commits\n  (merged to 'next' on 2012-08-20 at ae37111)\n + stash: invoke rerere in case of conflict\n + test: git-stash conflict sets up rerere\n\n\"git stash\" internally used \"git merge-recursive\" backend, which did\nnot trigger \"rerere\" upon conflicts unlike other mergy operations.\n\nWill merge to 'master' as part of the third batch.\n\n* hv/submodule-path-unmatch (2012-08-14) 1 commit\n  (merged to 'next' on 2012-08-20 at cbe6483)\n + Let submodule command exit with error status if path does not exist\n\nAs the title says.\n\nWill merge to 'master' as part of the second batch.\n\n* bc/receive-pack-stdout-protection (2012-08-06) 2 commits\n  (merged to 'next' on 2012-08-20 at b1b0d18)\n + receive-pack: do not leak output from auto-gc to standard output\n + t/t5400: demonstrate breakage caused by informational message from prune\n\n(Originally merged to 'next' on 2012-08-07)\n\nWhen \"git push\" triggered the automatic gc on the receiving end, a\nmessage from \"git prune\" that said it was removing cruft leaked to\nthe standard output, breaking the communication protocol.\n\nWill merge to 'master' as part of the second batch.\n\n* bc/prune-info (2012-08-07) 1 commit\n  (merged to 'next' on 2012-08-20 at 1bc9e66)\n + prune.c: only print informational message in show_only or verbose mode\n\nTeach \"git prune\" without \"-v\" to be silent about leftover temporary files.\n\nWill merge to 'master' as part of the second batch.\n\n* jk/docs-docbook-monospace-display (2012-08-07) 1 commit\n  (merged to 'next' on 2012-08-20 at 0ed30dc)\n + docs: monospace listings in docbook output\n\n(Originally merged to 'next' on 2012-08-18)\n\nThe documentation in the TeXinfo format was using indented output\nfor materials meant to be examples that are better typeset in\nmonospace.\n\nWill merge to 'master' as part of the second batch.\n\n* jc/maint-protect-sh-from-ifs (2012-08-08) 1 commit\n  (merged to 'next' on 2012-08-20 at 8b00562)\n + sh-setup: protect from exported IFS\n\nWhen the user exports a non-default IFS without HT, scripts that\nrely on being able to parse \"ls-files -s | while read a b c...\"\nstart to fail.  Protect them from such a misconfiguration.\n\nWill merge to 'master' as part of the second batch.\n\n* mg/rebase-i-onto-reflog-in-full (2012-08-10) 1 commit\n  (merged to 'next' on 2012-08-20 at f671bd2)\n + rebase -i: use full onto sha1 in reflog\n\nThe reflog entries left by \"git rebase\" and \"git rebase -i\" were\ninconsistent.\n\nWill merge to 'master' as part of the second batch.\n\n* mz/empty-rebase-test (2012-08-09) 1 commit\n  (merged to 'next' on 2012-08-20 at 53e2419)\n + add tests for 'git rebase --keep-empty'\n\nWill merge to 'master' as part of the second batch.\n\n* jc/capabilities (2012-08-13) 3 commits\n  (merged to 'next' on 2012-08-20 at 1976e47)\n + fetch-pack: mention server version with verbose output\n + parse_feature_request: make it easier to see feature values\n + fetch-pack: do not ask for unadvertised capabilities\n (this branch uses jk/version-string.)\n\nSome capabilities were asked by fetch-pack even when upload-pack did\nnot advertise that they are available.  Fix fetch-pack not to do so.\n\nWill merge to 'master' as part of the second batch.\n\n* pw/p4-use-client-spec-branch-detection (2012-08-20) 5 commits\n - git p4: make branch detection work with --use-client-spec\n - git p4: do wildcard decoding in stripRepoPath\n - git p4: set self.branchPrefixes in initialization\n - git p4 test: add broken --use-client-spec --detect-branches tests\n - git p4 test: move client_view() function to library\n\nWill merge to 'next' and soon to 'master'.\n\n* jc/maint-push-refs-all (2012-08-07) 2 commits\n - get_fetch_map(): tighten checks on dest refs\n - fetch/push: allow refs/*:refs/*\n\nAllows pushing and fetching refs/stash.\nNeed to send it out to the list for review.\n\n* jk/version-string (2012-08-10) 3 commits\n  (merged to 'next' on 2012-08-20 at 6d207bb)\n + do not send client agent unless server does first\n + send-pack: fix capability-sending logic\n + include agent identifier in capability string\n (this branch is used by jc/capabilities.)\n\n(Originally merged to 'next' on 2012-08-10)\n\nLeftover bits from the \"git version\" code restructuring, that give\nus an ability to expose the Git version over the wire in the\nprotocol exchange. But we do so carefully only to the other end that\nunderstands it.\n\nWill merge to 'master' as part of the third batch.\n\n* js/grep-patterntype-config (2012-08-03) 1 commit\n  (merged to 'next' on 2012-08-20 at 39a0431)\n + grep: add a grep.patternType configuration setting\n\n(Originally merged to 'next' on 2012-08-09)\n\n\"grep\" learned to use a non-standard pattern type by default if a\nconfiguration variable tells it to.\n\nWill merge to 'master' as part of the second batch.\n\n* ab/diff-write-incomplete-line (2012-08-05) 1 commit\n  (merged to 'next' on 2012-08-20 at e28b804)\n + Fix '\\ No newline...' annotation in rewrite diffs\n\n(Originally merged to 'next' on 2012-08-07)\n\nThe output from \"git diff -B\" for a file that ends with an\nincomplete line did not put \"\\ No newline...\" on a line of its own.\n\nWill merge to 'master' as part of the second batch.\n\n* tg/index-v5 (2012-08-17) 13 commits\n - p0002-index.sh: add perf test for the index formats\n - update-index.c: rewrite index when index-version is given\n - Write resolve-undo data for index-v5\n - Write index-v5 cache-tree data\n - Write index-v5\n - Read cache-tree in index-v5\n - Read resolve-undo data\n - Read index-v5\n - Make in-memory format aware of stat_crc\n - Add documentation of the index-v5 file format\n - t2104: Don't fail for index versions other than [23]\n - read-cache.c: Re-read index if index file changed\n - Move index v2 specific functions to their own file\n\nA GSoC project, queued here primarily to give people an easier\naccess to the state of the last posted version.\n\n* jc/maint-sane-execvp-notdir (2012-07-31) 1 commit\n  (merged to 'next' on 2012-08-20 at 0d76cf2)\n + sane_execvp(): ignore non-directory on $PATH\n\n(Originally merged to 'next' on 2012-08-09)\n\n\"git foo\" errored out with \"Not a directory\" when the user had a non\ndirectory on $PATH, and worse yet it masked an alias \"foo\" to run.\n\nWill merge to 'master' as part of the third batch.\n\n* cw/cherry-pick-allow-empty-message (2012-08-06) 1 commit\n  (merged to 'next' on 2012-08-20 at 0dc0590)\n + cherry-pick: add --allow-empty-message option\n\n(Originally merged to 'next' on 2012-08-09)\n\n\"git cherry-pick\" by default stops when it sees a commit without any\nlog message.  The \"--allow-empty-message\" option can be used to\nsilently proceed.\n\nWill merge to 'master' as part of the third batch.\n\n* jc/maint-t7406-rev-parse-max-count-huh (2012-07-30) 1 commit\n  (merged to 'next' on 2012-08-20 at 3e2598a)\n + t7406: fix misleading \"rev-parse --max-count=1 HEAD\"\n\n(Originally merged to 'next' on 2012-07-30)\n\nTest clean-up, with no behaviour change.\nWill merge to 'master' as part of the second batch.\n\n* jk/maint-diff-nul40-as-sentinel (2012-07-29) 1 commit\n + diff: do not use null sha1 as a sentinel value\n (this branch is used by jk/maint-null-in-trees.)\n\n\"git diff\" had a confusion between taking data from a path in the\nworking tree and taking data from an object that happens to have\nname 0{40} recorded in a tree.\n\n* mz/cherry-code-cleanup (2012-07-29) 3 commits\n  (merged to 'next' on 2012-08-20 at bfb0457)\n + cherry: remove redundant check for merge commit\n + cherry: don't set ignored rev_info options\n + remove unnecessary parameter from get_patch_ids()\n\nMinor code clean-up on the cherry-pick codepath.\n\nWill merge to 'master' as part of the second batch.\n\n* jc/maint-config-exit-status (2012-07-30) 1 commit\n  (merged to 'next' on 2012-08-20 at e18ddd8)\n + config: \"git config baa\" should exit with status 1\n\n(Originally merged to 'next' on 2012-07-30)\n\nThe exit status code from \"git config\" was way overspecified while\nbeing incorrect.  Update the implementation to give the documented\nstatus for a case that was documented, and introduce a new code for\n\"all other errors\".\n\nWill merge to 'master' as part of the third batch.\n\n* jk/maint-null-in-trees (2012-07-29) 2 commits\n  (merged to 'next' on 2012-08-20 at 5bc2c49)\n + fsck: detect null sha1 in tree entries\n + do not write null sha1s to on-disk index\n (this branch uses jk/maint-diff-nul40-as-sentinel.)\n\n(Originally merged to 'next' on 2012-07-30)\n\nWe do not want a link to 0{40} object stored anywhere in our objects.\n\nWill merge to 'master' as part of the second batch.\n\n* sz/submodule-force-update (2012-07-25) 1 commit\n - Make 'git submodule update --force' always check out submodules.\n\nWe may want a documentation update and a few tests.\n\nKicked back to 'pu'.\n\n* da/difftool-updates (2012-08-21) 13 commits\n  (merged to 'next' on 2012-08-21 at 332afe4)\n + difftool: silence warning\n  (merged to 'next' on 2012-08-20 at 2fecd90)\n + Add Code Compare v2.80.4 as a merge / diff tool for Windows\n + mergetool,difftool: Document --tool-help consistently\n + difftool: Disable --symlinks on cygwin\n + difftool: Handle compare() returning -1\n + difftool: Wrap long lines for readability\n + difftool: Check all return codes from compare()\n + difftool: Handle finding mergetools/ in a path with spaces\n + difftool: Use symlinks when diffing against the worktree\n + difftool: Call the temp directory \"git-difftool\"\n + difftool: Move option values into a hash\n + difftool: Eliminate global variables\n + difftool: Simplify print_tool_help()\n\n(Originally merged to 'next' on 2012-08-10)\n\n\"git difftool --dir-diff\" learned to use symbolic links to prepare\ntemporary copy of the working tree when available.\n\nWill merge to 'master' as part of the second batch.\n\n* jk/no-more-pre-exec-callback (2012-06-05) 1 commit\n - pager: drop \"wait for output to run less\" hack\n\n(Originally merged to 'next' on 2012-07-23)\n\nWill defer until the end of the 2012,\nwaiting for older \"less\" to go extinct.\n\n* mm/push-default-switch-warning (2012-06-24) 1 commit\n  (merged to 'next' on 2012-08-20 at 553e6c0)\n + push: start warning upcoming default change for push.default\n\n(Originally merged to 'next' on 2012-06-26)\n\nIn the next major release, we will switch \"git push [$there]\" that\ndoes not say what to push from the traditional \"matching\" to the\nupdated \"simple\" semantics, that pushes the current branch to the\nbranch with the same name only when the current branch is set to\nintegrate with that remote branch (all other cases will error out).\n\nWill merge to 'master' as part of the second batch.\n\n--------------------------------------------------\n[Discarded]\n\n* jc/sanitize-nkd-lazy-iconv-open (2012-07-31) 1 commit\n . macos: lazily initialize iconv\n\nTeach the code that works around NKD/NKC gotcha on MacOS to call\niconv_open() only when it is necessary, in the hope of avoiding\nset-up overhead.  It turns out that there was no noticeable\nimprovements.\n"}]}