{"thread":{"id":"31475","subject":"What's cooking in git.git (Sep 2012, #02; Fri, 7)","startedAt":"2012-09-07T21:55:56Z","lastAt":"2012-09-08T05:47:22Z","messageCount":2,"participants":["Junio C Hamano","Torsten Bögershausen"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"198558","messageId":"7vy5klv6oj.fsf@alter.siamese.dyndns.org","threadId":"31475","inReplyTo":null,"subject":"What's cooking in git.git (Sep 2012, #02; Fri, 7)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2012-09-07T21:55:56Z","receivedAt":"2012-09-07T21:55:56Z","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\nThe fourth batch of topics have graduated to 'master'.\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[Graduated to \"master\"]\n\n* jc/apply-binary-p0 (2012-08-24) 1 commit\n  (merged to 'next' on 2012-08-28 at 6fa690c)\n + apply: compute patch->def_name correctly under -p0\n\n\"git apply -p0\" did not parse pathnames on \"diff --git\" line\ncorrectly.  This caused patches that had pathnames in no other\nplaces to be mistakenly rejected (most notably, binary patch that\ndoes not rename nor change mode).  Textual patches, renames or\nmode changes have preimage and postimage pathnames in different\nplaces in a form that can be parsed unambiguously and did not suffer\nfrom this problem.\n\n* jc/dotdot-is-parent-directory (2012-08-23) 1 commit\n  (merged to 'next' on 2012-08-28 at 2f2ae87)\n + specifying ranges: we did not mean to make \"..\" an empty set\n\n\"git log ..\" errored out saying it is both rev range and a path when\nthere is no disambiguating \"--\" is on the command line.  Update the\ncommand line parser to interpret \"..\" as a path in such a case.\n\n* jc/maint-doc-checkout-b-always-takes-branch-name (2012-08-26) 1 commit\n  (merged to 'next' on 2012-08-29 at e0d0f5c)\n + doc: \"git checkout -b/-B/--orphan\" always takes a branch name\n\nThe synopsis said \"checkout [-B branch]\" to make it clear the branch\nname is a parameter to the option, but the heading for the option\ndescription was \"-B::\", not \"-B branch::\", making the documentation\nmisleading.  There may be room in documentation pages of other\ncommands for similar improvements (hint, hint).\n\n* jk/config-warn-on-inaccessible-paths (2012-08-21) 4 commits\n  (merged to 'next' on 2012-08-24 at 7470bd6)\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 we did not diagnose existing\nfiles that we cannot read.\n\n* jk/maint-http-half-auth-push (2012-08-27) 8 commits\n  (merged to 'next' on 2012-08-29 at 0ed32f5)\n + http: prompt for credentials on failed POST\n + http: factor out http error code handling\n + t: test http access to \"half-auth\" repositories\n + t: test basic smart-http authentication\n + t/lib-httpd: recognize */smart/* repos as smart-http\n + t/lib-httpd: only route auth/dumb to dumb repos\n + t5550: factor out http auth setup\n + t5550: put auth-required repo in auth/dumb\n\nPushing to smart HTTP server with recent Git fails without having\nthe username in the URL to force authentication, if the server is\nconfigured to allow GET anonymously, while requiring authentication\nfor POST.\n\n* kk/maint-for-each-ref-multi-sort (2012-08-21) 2 commits\n  (merged to 'next' on 2012-08-24 at 28a5db4)\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\n* lt/commit-tree-guess-utf-8 (2012-08-21) 1 commit\n  (merged to 'next' on 2012-08-24 at d16ac69)\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\n* nd/am-i18n-fix (2012-08-22) 1 commit\n  (merged to 'next' on 2012-08-24 at f8e9a63)\n + am: quote string for translation before passing to eval_gettextln\n\n\"git am\" wasn't marked up for i18n properly.\n\n* nd/branch-v-alignment (2012-08-27) 1 commit\n  (merged to 'next' on 2012-08-29 at 5c0d226)\n + branch -v: align even when branch names are in UTF-8\n\nOutput from \"git branch -v\" contains \"(no branch)\" that could be\nlocalized, but the code to align it along with the names of branches\nwere counting in bytes, not in display columns.\n\n* nd/i18n-parseopt-help (2012-08-22) 66 commits\n  (merged to 'next' on 2012-08-24 at 2a04ce0)\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\n* nd/i18n-poison-test-updates (2012-08-27) 7 commits\n  (merged to 'next' on 2012-08-29 at 9b7ff7f)\n + Fix tests under GETTEXT_POISON on parseopt\n + Fix tests under GETTEXT_POISON on git-remote\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\nUpdate tests that can be broken with gettext-poison builds.\n\n* pw/p4-use-client-spec-branch-detection (2012-08-20) 5 commits\n  (merged to 'next' on 2012-08-24 at 08abc61)\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\nFixes \"git p4\" when \"--use-client-spec\" and \"--detect-branches\" are\nused together (the command used to misdetect branches).\n\n* tr/maint-parseopt-avoid-empty (2012-08-20) 1 commit\n  (merged to 'next' on 2012-08-24 at cffa9a0)\n + gettext: do not translate empty string\n\nA workaround to avoid doing _(\"\"), which translates to unwanted\nmagic string in the .po files.\n\n--------------------------------------------------\n[New Topics]\n\n* kd/cvsimport-avoid-invalid-tag (2012-09-06) 1 commit\n - cvsimport: strip all inappropriate tag strings\n\n\"cvsimport\" tried to create a tag taken from CVS without\nsufficiently sanitizing it, causing the import to fail when an\ninvalid character in the tagname made underlying \"git tag\" to fail.\n\nWill merge to 'next'.\n\n* mh/abspath (2012-09-06) 8 commits\n - t0060: verify that real_path() removes extra slashes\n - real_path(): properly handle nonexistent top-level paths\n - t0060: verify that real_path() works correctly with absolute paths\n - real_path(): reject the empty string\n - t0060: verify that real_path() fails if passed the empty string\n - absolute_path(): reject the empty string\n - t0060: verify that absolute_path() fails if passed the empty string\n - t0060: move tests of real_path() from t0000 to here\n\n* nd/i18n-status (2012-09-06) 1 commit\n - status: remove i18n legos\n\nWill merge to 'next'.\n\n* nd/log-n-doc (2012-09-06) 1 commit\n - doc: move rev-list option -<n> from git-log.txt to rev-list-options.txt\n\nWill merge to 'next'.\n\n* nd/maint-remote-remove (2012-09-06) 1 commit\n - remote: prefer subcommand name 'remove' to 'rm'\n\nWill merge to 'next'.\n\n* sb/send-email-reconfirm-fix (2012-09-06) 1 commit\n - send-email: initial_to and initial_reply_to are both optional\n\nWill merge to 'next'.\n\n* sn/ls-remote-get-url-doc (2012-09-07) 1 commit\n - ls-remote: document the '--get-url' option\n\nWill merge to 'next'.\n\n* dj/fetch-all-tags (2012-09-07) 1 commit\n - fetch --all: pass --tags/--no-tags through to each remote\n (this branch uses jk/argv-array.)\n\n\"git fetch --all\", when passed \"--no-tags\", did not honor the\n\"--no-tags\" option while fetching from individual remotes (the same\nissue existed with \"--tags\", but combination \"--all --tags\" makes\nmuch less sense than \"--all --no-tags\").\n\nWill merge to 'next'.\n\n--------------------------------------------------\n[Stalled]\n\n* jx/test-real-path (2012-08-27) 1 commit\n - test: set the realpath of CWD as TRASH_DIRECTORY\n\nRunning tests with the \"trash\" directory elsewhere with the \"--root\"\noption did not work well if the directory was specified by a symbolic\nlink pointing at it.\n\nSeems broken as it makes $(pwd) and TRASH_DIRECTORY inconsistent.\nNeeds rerolling.\n\n* jc/maint-push-refs-all (2012-08-27) 2 commits\n - get_fetch_map(): tighten checks on dest refs\n - [BROKEN] fetch/push: allow refs/*:refs/*\n\nAllows pushing and fetching everything including refs/stash.\nThis is broken (see the log message there).\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* 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* 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.  Was waiting for comments from mentors and\nstakeholders, but nothing seems to be happening, other than breakage\nfixes on Cygwin.  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* 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* as/check-ignore (2012-09-02) 10 commits\n . fixup: decl-after-stmt etc.\n . Add git-check-ignore\n . Provide free_directory() for reclaiming dir_struct memory\n . Extract some useful pathspec handling code from builtin/add.c into a library\n . For each exclude pattern, store information about where it came from\n . dir.c: refactor excluded() and path_excluded()\n . dir.c: refactor excluded_from_list()\n . dir.c: rename cryptic 'which' variable to more consistent name\n . Improve documentation and comments regarding directory traversal API\n . Update directory listing API doc to match code\n\nWill be rerolled.\n\n* jc/maint-ident-missing-human-name (2012-08-31) 1 commit\n  (merged to 'next' on 2012-09-07 at 0e99b20)\n + split_ident_line(): make best effort when parsing author/committer line\n\n\"git show --format='%ci'\" did not give timestamp correctly for\ncommits created without human readable name on \"committer\" line.\n\nWill merge to 'master' as part of the fifth batch.\n\n* jk/argv-array (2012-09-02) 4 commits\n  (merged to 'next' on 2012-09-07 at 98dbd14)\n + submodule: use argv_array instead of hand-building arrays\n + fetch: use argv_array instead of hand-building arrays\n + argv-array: fix bogus cast when freeing array\n + argv-array: add pop function\n (this branch is used by dj/fetch-all-tags.)\n\nUse argv-array API in \"git fetch\" implementation.\n\nWill merge to 'master' as part of the fifth batch.\n\n* rj/tap-fix (2012-09-02) 6 commits\n - test-lib.sh: Suppress the \"passed all ...\" message if no tests run\n - test-lib.sh: Add check for invalid use of 'skip_all' facility\n - test-lib.sh: Fix some shell coding style violations\n - t4016-*.sh: Skip all tests rather than each test\n - t3902-*.sh: Skip all tests rather than each test\n - t3300-*.sh: Fix a TAP parse error\n\nWill merge to 'next'.\n\n* rj/test-regex (2012-09-02) 1 commit\n  (merged to 'next' on 2012-09-07 at e7e3527)\n + test-regex: Add a test to check for a bug in the regex routines\n\nGit ships with a fall-back regexp implementation for platforms with\nbuggy regexp library; give people a tool to see if they should be\nusing it on their platform.\n\nWill merge to 'master' as part of the fifth batch.\n\n* jc/maint-checkout-fileglob-doc (2012-09-07) 2 commits\n - gitcli: contrast wildcard given to shell and to git\n - Document file-glob for \"git checkout -- '*.c'\"\n\nWill merge to 'next'.\n\n* jc/xprm-generation (2012-09-04) 1 commit\n - test-generation: compute generation numbers and clock skews\n\n* rj/path-cleanup (2012-09-04) 5 commits\n - Call mkpathdup() rather than xstrdup(mkpath(...))\n - Call git_pathdup() rather than xstrdup(git_path(\"...\"))\n - path.c: Use vsnpath() in the implementation of git_path()\n - path.c: Don't discard the return value of vsnpath()\n - path.c: Remove the 'git_' prefix from a file scope function\n\n* rs/archive-zip-utf8 (2012-09-04) 1 commit\n - archive-zip: support UTF-8 paths\n\n* mz/cherry-pick-cmdline-order (2012-08-30) 3 commits\n  (merged to 'next' on 2012-08-31 at fc8eec4)\n + cherry-pick/revert: respect order of revisions to pick\n + demonstrate broken 'git cherry-pick three one two'\n + teach log --no-walk=unsorted, which avoids sorting\n\n\"git cherry-pick A C B\" used to replay changes in A and then B and\nthen C if these three commits had committer timestamps in that\norder, which is not what the user who said \"A C B\" naturally expects.\n\nWill merge to 'master' as part of the fifth batch.\n\n* ph/credential-gnome-keyring (2012-08-24) 1 commit\n  (merged to 'next' on 2012-08-31 at 6f3b1de)\n + contrib: add credential helper for GnomeKeyring\n (this branch is used by ph/credential-refactor.)\n\nThe later refactoring of the shared code in the original series may\nnot be worth the trouble, so it is split into a separate topic that\nbuilds on top of this one, which independently should be useful.\n\nWill merge to 'master' as part of the fifth batch.\n\n* ms/contrib-thunderbird-updates (2012-08-31) 2 commits\n - [SQUASH] minimum fixup\n - Thunderbird: fix appp.sh format problems\n\nUpdate helper to send out format-patch output using Thunderbird.\nSeems to have design regression for silent users.\n\n* nd/i18n-index-pack (2012-08-31) 1 commit\n  (merged to 'next' on 2012-09-07 at bbcece1)\n + i18n: mark more index-pack strings for translation\n\nWill merge to 'master' as part of the fifth batch.\n\n* jk/maint-quiet-is-synonym-to-s-in-log (2012-08-28) 1 commit\n  (merged to 'next' on 2012-08-31 at 06f6953)\n + log: fix --quiet synonym for -s\n\nWe tried to bend backwards to allow \"--quiet\" to be a synonym as\n\"-s\" when given as e.g. \"git show --quiet\", but did not quite\nsucceed.\n\nWill merge to 'master' as part of the fifth batch.\n\n* nd/checkout-option-parsing-fix (2012-09-07) 4 commits\n - fixup! checkout: reorder option handling\n - checkout: reorder option handling\n - checkout: move more parameters to struct checkout_opts\n - checkout: pass \"struct checkout_opts *\" as const pointer\n\nThe option parsing of \"git checkout\" had error checking, dwim and\ndefaulting missing options, all mixed in the code, and issuing an\nappropriate error message with useful context was getting harder.\nReorganize the code and allow giving a proper diagnosis when the\nuser says \"git checkout -b -t foo bar\" (e.g. \"-t\" is not a good name\nfor a branch).\n\nWill merge to 'next' after squashing the tip two.\n\n* jc/maint-name-rev (2012-09-04) 7 commits\n - describe --contains: use \"name-rev --weight\"\n - name-rev --weight: tests and documentation\n - name-rev --weight: cache the computed weight in notes\n - name-rev --weight: trivial optimization\n - name-rev: --weight option\n - name_rev: clarify the logic to assign a new tip-name to a commit\n - name-rev: lose unnecessary typedef\n\n\"git name-rev\" names the given revision based on a ref that can be\nreached in the smallest number of steps from the rev, but that is\nnot useful when the caller wants to know which tag is the oldest one\nthat contains the rev.  This teaches a new mode to the command that\nuses the oldest ref among those which contain the rev.\n\nI am not sure if this is worth it; for one thing, even with the help\nfrom notes-cache, it seems to make the \"describe --contains\" even\nslower. Also the command will be unusably slow for a user who does\nnot have a write access (hence unable to create or update the\nnotes-cache).\n\nNeeds another round to at least find a better name for the option,\nand possibly a cheaper but still better than the current \"close to\nthe tip\" heuristics.\n\n* cn/branch-set-upstream-to (2012-08-30) 3 commits\n  (merged to 'next' on 2012-08-31 at d550ecd)\n + branch: deprecate --set-upstream and show help if we detect possible mistaken use\n + branch: add --unset-upstream option\n + branch: introduce --set-upstream-to\n\n\"git branch --set-upstream origin/master\" is a common mistake to\ncreate a local branch 'origin/master' and set it to integrate with\nthe current branch.  With a plan to deprecate this option, introduce\n\"git branch (-u|--set-upstream-to) origin/master\" that sets the\ncurrent branch to integrate with 'origin/master' remote tracking\nbranch.\n\nWill merge to 'master' as part of the fifth batch.\n\n* js/compat-itimer (2012-08-24) 1 commit\n - Support for setitimer() on platforms lacking it\n\nPieces to support compilation on __TANDEM.\n\n* ph/credential-refactor (2012-09-02) 5 commits\n - wincred: port to generic credential helper\n - Merge branch 'ef/win32-cred-helper' into ph/credential-refactor\n - osxkeychain: port to generic credential helper implementation\n - gnome-keyring: port to generic helper implementation\n - contrib: add generic credential helper\n (this branch uses ph/credential-gnome-keyring.)\n\nAttempts to refactor to share code among OSX keychain, Gnome keyring\nand Win32 credential helpers.\n\n* mh/fetch-filter-refs (2012-08-26) 17 commits\n - filter_refs(): simplify logic\n - fetch_pack(): free matching heads\n - cmd_fetch_pack(): simplify computation of return value\n - fetch-pack: report missing refs even if no existing refs were received\n - cmd_fetch_pack: return early if finish_connect() returns an error\n - filter_refs(): compress unmatched refs in heads array\n - filter_refs(): do not leave gaps in return_refs\n - filter_refs(): simplify by removing optimization\n - Pass nr_heads to filter_refs() by reference\n - Pass nr_heads to everything_local() by reference\n - Pass nr_heads to do_pack_ref() by reference\n - Let fetch_pack() inform caller about number of unique heads\n - filter_refs(): do not check the same head_pos twice\n - fetch-pack.c: name local variables more consistently\n - fetch_pack(): reindent function decl and defn\n - Rename static function fetch_pack() to http_fetch_pack()\n - t5500: add tests of error output for missing refs\n\nCode simplification and clarification.\nWaiting for a follow-up patch based on Peff's idea.\n\n* jc/merge-bases (2012-08-31) 9 commits\n  (merged to 'next' on 2012-09-07 at ab0974d)\n + reduce_heads(): reimplement on top of remove_redundant()\n + merge-base: \"--is-ancestor A B\"\n + get_merge_bases_many(): walk from many tips in parallel\n + in_merge_bases(): use paint_down_to_common()\n + merge_bases_many(): split out the logic to paint history\n + in_merge_bases(): omit unnecessary redundant common ancestor reduction\n + http-push: use in_merge_bases() for fast-forward check\n + receive-pack: use in_merge_bases() for fast-forward check\n + in_merge_bases(): support only one \"other\" commit\n\nOptimise the \"merge-base\" computation a bit, and also update its\nusers that do not need the full merge-base information to call a\ncheaper subset.\n\nWill merge to 'master' as part of the fifth batch.\n\n* jl/submodule-rm (2012-08-27) 1 commit\n - Teach rm to remove submodules unless they contain a git directory\n\n\"git rm submodule\" cannot blindly remove a submodule directory as\nits working tree may have local changes, and worse yet, it may even\nhave its repository embedded in it.  Teach it some special cases\nwhere it is safe to remove a submodule, specifically, when there is\nno local changes in the submodule working tree, and its repository\nis not embedded in its working tree but is elsewhere and uses the\ngitfile mechanism to point at it.\n\n* fa/remote-svn (2012-08-28) 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 and .gitignore\n - Implement a remote helper for svn in C\n (this branch is used by fa/vcs-svn.)\n\nA GSoC project.  Looked promising.\nWaiting for comments from mentors and stakeholders.\n\n* fa/vcs-svn (2012-08-28) 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\nA GSoC project.  Looked promising.\nWaiting for comments from mentors and stakeholders.\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.\nwhile waiting for older \"less\" to go extinct.\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\n* nd/checkout-branch-name-check (2012-08-27) 1 commit\n . checkout: verify new branch name's validity early\n\n\"git checkout -b --opt y\" errors out saying that creating a new\nbranch to check it out and grabbing contents for paths out of a\ncommit are incompatible operations.  While it is technically correct\n(the command line wants to create a new branch whose name is \"--opt\"\nand check it out, and there shouldn't be anything else left on the\ncommand line, but there is \"y\"), \"--opt\" is not a valid name of the\nbranch to begin with, so even without \"y\", the command will not\nsucceed.  Treat this case specially to complain that \"--opt\" is not\na valid branch name.\n"},{"id":"198562","messageId":"504ADBEA.1050606@web.de","threadId":"31475","inReplyTo":"7vy5klv6oj.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Sep 2012, #02; Fri, 7)","fromName":"Torsten Bögershausen","fromEmail":"tboegi@web.de","sentAt":"2012-09-08T05:47:22Z","receivedAt":"2012-09-08T05:47:22Z","isPatch":false,"sender":{"key":"tboegi@web.de","avatar":"https://avatars.githubusercontent.com/u/7138363?v=4"},"body":"On 07.09.12 23:55, Junio C Hamano wrote:\n> [Discarded]\n> \n> * jc/sanitize-nkd-lazy-iconv-open (2012-07-31) 1 commit\n>  . macos: lazily initialize iconv\n> \n> Teach the code that works around NKD/NKC gotcha on MacOS to call\n> iconv_open() only when it is necessary, in the hope of avoiding\n> set-up overhead.  It turns out that there was no noticeable\n> improvements.\n\nMy vote is not to discard the branch: \n\nEven if the improvements are not measurable, the lazy iconv_open\nis a good coding style.\n\nIt might inspire people to use resources carefully, \nand only allocate them if they are really needed.\n"}]}