{"thread":{"id":"34042","subject":"What's cooking in git.git (Jun 2013, #03; Thu, 6)","startedAt":"2013-06-06T22:41:08Z","lastAt":"2013-06-10T07:41:44Z","messageCount":24,"participants":["Junio C Hamano","SZEDER Gábor","Ramkumar Ramachandra","Matthieu Moy"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"219570","messageId":"7vzjv2x3p7.fsf@alter.siamese.dyndns.org","threadId":"34042","inReplyTo":null,"subject":"What's cooking in git.git (Jun 2013, #03; Thu, 6)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2013-06-06T22:41:08Z","receivedAt":"2013-06-06T22:41:08Z","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\n'-' are only in 'pu' (proposed updates) while commits prefixed with\n'+' are in 'next'.\n\nYou can find the changes described here in the integration branches\nof the repositories listed at\n\n    http://git-blame.blogspot.com/p/git-public-repositories.html\n\n--------------------------------------------------\n[New Topics]\n\n* jk/list-objects-sans-blobs (2013-06-06) 4 commits\n - archive: ignore blob objects when checking reachability\n - list-objects: optimize \"revs->blob_objects = 0\" case\n - upload-archive: restrict remote objects with reachability check\n - clear parsed flag when we free tree buffers\n\n Attempt to allow \"archive --remote=$there $arbitrary_sha1\" while\n keeping the reachability safety.\n\n--------------------------------------------------\n[Graduated to \"master\"]\n\n* dm/unbash-subtree (2013-05-21) 1 commit\n  (merged to 'next' on 2013-06-03 at 2c9d2fb)\n + contrib/git-subtree: Use /bin/sh interpreter instead of /bin/bash\n\n It turns out that git-subtree script does not have to be run with\n bash.\n\n\n* fc/cleanups (2013-05-28) 3 commits\n  (merged to 'next' on 2013-06-03 at 527cf93)\n + test: rebase: fix --interactive test\n + test: trivial cleanups\n + remote: trivial style cleanup\n\n\n* fc/makefile (2013-05-26) 5 commits\n  (merged to 'next' on 2013-06-03 at d1074e4)\n + build: do not install git-remote-testpy\n + build: add NO_INSTALL variable\n + build: cleanup using $<\n + build: cleanup using $^\n + build: trivial simplification\n (this branch is used by fc/remote-helpers-use-specified-python.)\n\n Stop installing the git-remote-testpy script that is only used for\n testing.  Also use handy magic variables to simplify rules.\n\n\n* fc/send-email-chainreplyto-warning (2013-05-28) 1 commit\n  (merged to 'next' on 2013-06-03 at e04764f)\n + send-email: remove warning about unset chainreplyto\n\n An overdue removal of \"behaviour changed at 1.7.0; if you were\n living in a cave, here is what you can adjust to it\" message.\n\n\n* fc/show-branch-in-rebase-am (2013-05-29) 1 commit\n  (merged to 'next' on 2013-06-03 at 176f6b7)\n + prompt: fix for simple rebase\n\n The bash prompt code (in contrib/) displayed the name of the branch\n being rebased when \"rebase -i/-m/-p\" modes are in use, but not the\n plain vanilla \"rebase\".\n\n\n* fc/transport-helper-no-refspec (2013-05-21) 2 commits\n  (merged to 'next' on 2013-06-03 at 8763bda)\n + transport-helper: check if the dry-run is supported\n + transport-helper: barf when user tries old:new\n\n With \"export\" remote-helper protocol, (1) a push that tries to\n update a remote ref whose name is different from the pushing side\n does not work yet, and (2) the helper may not know how to do\n --dry-run, so detect such problematic cases and disable them for\n now.\n\n\n* jc/core-checkstat (2013-05-06) 1 commit\n  (merged to 'next' on 2013-06-03 at 2166cb3)\n + deprecate core.statinfo at Git 2.0 boundary\n (this branch is used by jc/core-checkstat-2.0.)\n\n The configuration variable core.checkstat was advertised in the\n documentation but the code expected core.statinfo instead.\n\n For now, we accept both core.checkstat and core.statinfo, but the\n latter will be removed in the longer term.\n\n\n* ks/difftool-dir-diff-copy-fix (2013-05-29) 1 commit\n  (merged to 'next' on 2013-06-03 at ca0cae0)\n + difftool --dir-diff: allow changing any clean working tree file\n\n \"difftool --dir-diff\" did not copy back changes made by the\n end-user in the diff tool backend to the working tree in some\n cases.\n\n\n* nd/clone-connectivity-shortcut (2013-05-28) 4 commits\n  (merged to 'next' on 2013-06-03 at 812bd80)\n + clone: open a shortcut for connectivity check\n + index-pack: remove dead code (it should never happen)\n + fetch-pack: prepare updated shallow file before fetching the pack\n + clone: let the user know when check_everything_connected is run\n\n \"git clone\" uses a lighter-weight implementation when making sure\n that the history behind refs are complete.\n\n\n* nd/prune-packed-dryrun-verbose (2013-05-28) 1 commit\n  (merged to 'next' on 2013-06-03 at 3445b27)\n + prune-packed: avoid implying \"1\" is DRY_RUN in prune_packed_objects()\n\n\n* nd/urls-doc-no-file-hyperlink-fix (2013-05-24) 1 commit\n  (merged to 'next' on 2013-06-03 at 54903b2)\n + urls.txt: avoid auto converting to hyperlink\n\n An entry for \"file://\" scheme in the enumeration of URL types Git\n can take in the HTML documentation was made into a clickable link\n by mistake.\n\n\n* rj/mingw-compat-st-mode-bits (2013-05-29) 1 commit\n  (merged to 'next' on 2013-06-03 at 2efe84c)\n + path: Fix a sparse warning\n\n\n* rr/push-head (2013-05-29) 3 commits\n  (merged to 'next' on 2013-06-03 at ecd5be7)\n + push: make push.default = current use resolved HEAD\n + push: fail early with detached HEAD and current\n + push: factor out the detached HEAD error message\n\n \"git push $there HEAD:branch\" did not resolve HEAD early enough, so\n it was easy to flip it around while push is still going on and push\n out a branch that the user did not originally intended when the\n command was started.\n\n\n* rr/zsh-color-prompt (2013-05-17) 3 commits\n  (merged to 'next' on 2013-06-03 at d011a76)\n + prompt: colorize ZSH prompt\n + prompt: factor out gitstring coloring logic\n + prompt: introduce GIT_PS1_STATESEPARATOR\n\n\n* rs/commit-m-no-edit (2013-05-28) 1 commit\n  (merged to 'next' on 2013-06-03 at 14329fa)\n + commit: don't start editor if empty message is given with -m\n\n \"git commit --allow-empty-message -m ''\" should not start an\n editor.\n\n\n* sb/archive-zip-double-assignment-fix (2013-05-29) 1 commit\n  (merged to 'next' on 2013-06-03 at c316eec)\n + archive-zip:write_zip_entry: Remove second reset of size variable to zero.\n\n\n* tg/maint-zsh-svn-remote-prompt (2013-05-22) 1 commit\n  (merged to 'next' on 2013-06-03 at 32a45c0)\n + prompt: fix show upstream with svn and zsh\n\n zsh prompt script that borrowed from bash prompt script did not\n work due to slight differences in array variable notation between\n these two shells.\n\n\n* th/bisect-skip-report-range-fix (2013-05-22) 1 commit\n  (merged to 'next' on 2013-06-03 at 7bd4656)\n + bisect: Fix log output for multi-parent skip ranges\n\n Fix for an additional bisect log comments.\n\n\n* tr/push-no-verify-doc (2013-05-23) 1 commit\n  (merged to 'next' on 2013-06-03 at 01737d6)\n + Document push --no-verify\n\n \"git push --[no-]verify\" was not documented.\n\n--------------------------------------------------\n[Stalled]\n\n* fc/remote-helpers-use-specified-python (2013-05-28) 4 commits\n - remote-helpers: add exec-path links\n - remote-helpers: allow direct test execution\n - remote-helpers: rename tests\n - remote-helpers: generate scripts\n\n I do not particularly think the second from the bottom is a good\n change, but it takes the remainder of the series hostage.\n\n Waiting for a reroll.\n\n\n* jk/packed-refs-race (2013-05-06) 4 commits\n - for_each_ref: load all loose refs before packed refs\n - get_packed_refs: reload packed-refs file when it changes\n - add a stat_validity struct\n - resolve_ref: close race condition for packed refs\n\n Will be rerolled.\n\n\n* mg/more-textconv (2013-05-10) 7 commits\n - grep: honor --textconv for the case rev:path\n - grep: allow to use textconv filters\n - t7008: demonstrate behavior of grep with textconv\n - cat-file: do not die on --textconv without textconv filters\n - show: honor --textconv for blobs\n - diff_opt: track whether flags have been set explicitly\n - t4030: demonstrate behavior of show with textconv\n\n Make \"git grep\" and \"git show\" pay attention to --textconv when\n dealing with blob objects.\n\n I thought this was pretty well designed and executed, but it seems\n there are some doubts on the list; kicking back to 'pu'.\n\n\n* mh/multimail (2013-04-21) 1 commit\n - git-multimail: a replacement for post-receive-email\n\n Waiting for the initial history to pull from.\n $gmane/223564\n\n\n* jc/format-patch (2013-04-22) 2 commits\n - format-patch: --inline-single\n - format-patch: rename \"no_inline\" field\n\n A new option to send a single patch to the standard output to be\n appended at the bottom of a message.  I personally have no need for\n this, but it was easy enough to cobble together.  Tests, docs and\n stripping out more MIMEy stuff are left as exercises to interested\n parties.\n\n Not ready for inclusion.\n\n Will discard unless we hear from anybody who is interested in\n tying its loose ends.\n\n\n* jk/gitweb-utf8 (2013-04-08) 4 commits\n - gitweb: Fix broken blob action parameters on blob/commitdiff pages\n - gitweb: Don't append ';js=(0|1)' to external links\n - gitweb: Make feed title valid utf8\n - gitweb: Fix utf8 encoding for blob_plain, blobdiff_plain, commitdiff_plain, and patch\n\n Various fixes to gitweb.\n\n Drew Northup volunteered to take a look into this.\n $gmane/226216\n\n\n* jk/commit-info-slab (2013-04-19) 3 commits\n - commit-slab: introduce a macro to define a slab for new type\n - commit-slab: avoid large realloc\n - commit: allow associating auxiliary info on-demand\n (this branch is used by jc/show-branch.)\n\n Technology demonstration to show a way we could use unbound number\n of flag bits on commit objects.\n\n\n* jc/show-branch (2013-05-21) 5 commits\n - show-branch: use commit slab to represent bitflags of arbitrary width\n - show-branch.c: remove \"all_mask\"\n - show-branch.c: abstract out \"flags\" operation\n - show-branch.c: lift all_mask/all_revs to a global static\n - show-branch.c: update comment style\n (this branch uses jk/commit-info-slab.)\n\n Waiting for the final step to lift the hard-limit before sending it out.\n\n--------------------------------------------------\n[Cooking]\n\n* ar/wildmatch-foldcase (2013-06-02) 1 commit\n  (merged to 'next' on 2013-06-04 at 3180bcc)\n + wildmatch: properly fold case everywhere\n\n The wildmatch engine did not honor WM_CASEFOLD option correctly.\n\n Will merge to 'master'.\n\n\n* cr/git-work-tree-sans-git-dir (2013-06-03) 1 commit\n  (merged to 'next' on 2013-06-04 at bebedca)\n + git.txt: remove stale comment regarding GIT_WORK_TREE\n\n These days, \"git --work-tree=there cmd\" without specifying an\n explicit --git-dir=here will do the usual discovery, but we had a\n description of older behaviour in the documentation.\n\n Will merge to 'master'.\n\n\n* fc/do-not-use-the-index-in-add-to-index (2013-06-03) 2 commits\n  (merged to 'next' on 2013-06-04 at 94e7b60)\n + read-cache: trivial style cleanups\n + read-cache: fix wrong 'the_index' usage\n\n Will merge to 'master'.\n\n\n* fc/sequencer-skip-quiet (2013-06-06) 5 commits\n - sequencer: run post-rewrite hook\n - cherry-pick: store rewritten commits\n - cherry-pick: add --skip-empty option\n - sequencer: avoid leaking message buffer when refusing to create an empty commit\n - sequencer: remove useless indentation\n\n The bottom three looked more or less reasonable.  Execution of\n post-rewrite hook could use a better refactoring from the original\n code copied from builtin/commit.c, though.\n\n\n* js/test-ln-s-add (2013-06-02) 11 commits\n - t6035: use test_ln_s_add to remove SYMLINKS prerequisite\n - t3509, t4023, t4114: use test_ln_s_add to remove SYMLINKS prerequisite\n - t3100: use test_ln_s_add to remove SYMLINKS prerequisite\n - t3030: use test_ln_s_add to remove SYMLINKS prerequisite\n - t2100: use test_ln_s_add to remove SYMLINKS prerequisite\n - t0000: use test_ln_s_add to remove SYMLINKS prerequisite\n - tests: use test_ln_s_add to remove SYMLINKS prerequisite (trivial cases)\n - tests: introduce test_ln_s and test_ln_s_add\n - t3010: modernize style\n - t2100: modernize style and unroll a loop of test cases\n - test-chmtime: Fix exit code on Windows\n\n Many tests that check the behaviour of symbolic links stored in the\n index or the tree objects do not have to be skipped on a filesystem\n that lack symbolic link support.\n\n There seem to be some misconversion, mostly around the use of the\n new test_ln_s helper.\n\n Will be rerolled.\n $gmane/226466,226467\n\n\n* mt/send-email-cc-match-fix (2013-06-05) 7 commits\n  (merged to 'next' on 2013-06-06 at e4d0831)\n + test-send-email: test for pre-sanitized self name\n + t/send-email: test suppress-cc=self with non-ascii\n + t/send-email: add test with quoted sender\n + send-email: make --suppress-cc=self sanitize input\n + t/send-email: test suppress-cc=self on cccmd\n + send-email: fix suppress-cc=self on cccmd\n + t/send-email.sh: add test for suppress-cc=self\n\n Logic git-send-email used to suppress cc mishandled names like \"A\n U. Thor\" <author@example.xz>, where the human readable part needs\n to be quoted (the user input may not have the double quotes around\n the name, and comparison was done between quoted and unquoted\n strings).\n\n Will merge to 'master'.\n\n\n* rr/complete-difftool (2013-06-03) 2 commits\n  (merged to 'next' on 2013-06-04 at 01c7611)\n + completion: clarify ls-tree, archive, show completion\n + completion: difftool takes both revs and files\n\n Update command line completion (in contrib/) to use a better named\n completion helper function for commands that take revisions and\n paths.\n\n Will merge to 'master'.\n\n\n* rr/diffcore-pickaxe-doc (2013-06-03) 2 commits\n  (merged to 'next' on 2013-06-04 at 67d1fc7)\n + diffcore-pickaxe doc: document -S and -G properly\n + diffcore-pickaxe: make error messages more consistent\n\n Update the low-level diffcore documentation on -S/-G and --pickaxe-all.\n\n Will merge to 'master'.\n\n\n* tr/sha1-file-silence-loose-object-info-under-prune-race (2013-06-03) 1 commit\n  (merged to 'next' on 2013-06-04 at e891bb8)\n + sha1_file: silence sha1_loose_object_info\n\n Will merge to 'master'.\n\n\n* bp/mediawiki-credential (2013-06-05) 1 commit\n  (merged to 'next' on 2013-06-05 at ea07ec1)\n + git-remote-mediawiki: use Git.pm functions for credentials\n\n The bridge to MediaWiki has been updated to use the credential\n helper interface in Git.pm, losing its own and the original\n implementation the former was based on.\n\n Will merge to 'master'.\n\n\n* mz/rebase-tests (2013-06-03) 7 commits\n - tests: move test for rebase messages from t3400 to t3406\n - t3406: modernize style\n - add tests for rebasing merged history\n - add tests for rebasing root\n - add tests for rebasing of empty commits\n - add tests for rebasing with patch-equivalence present\n - add simple tests of consistency across rebase types\n\n Will be rerolled.\n\n\n* fc/completion-less-ls-remote (2013-06-02) 1 commit\n  (merged to 'next' on 2013-06-03 at 6624f0b)\n + completion: avoid ls-remote in certain scenarios\n\n Will merge to 'master'.\n\n\n* jk/test-exit-code-by-signal (2013-06-06) 2 commits\n  (merged to 'next' on 2013-06-06 at 6fdea1b)\n + t0005: skip signal death exit code test on Windows\n  (merged to 'next' on 2013-06-03 at 25af892)\n + t0005: test git exit code from signal death\n\n Will merge to 'master'.\n\n\n* nd/make-wildmatch-default (2013-06-02) 1 commit\n - Makefile: promote wildmatch to be the default fnmatch implementation\n\n Will merge to 'next'.\n\n\n* rr/remove-contrib-some (2013-06-02) 1 commit\n  (merged to 'next' on 2013-06-05 at fc15705)\n + contrib: remove continuous/ and patches/\n\n Remove stale contrib/ material.\n\n\n* rs/unpack-trees-plug-leak (2013-06-02) 7 commits\n  (merged to 'next' on 2013-06-03 at 97e7b6d)\n + unpack-trees: free cache_entry array members for merges\n + diff-lib, read-tree, unpack-trees: mark cache_entry array paramters const\n + diff-lib, read-tree, unpack-trees: mark cache_entry pointers const\n + unpack-trees: create working copy of merge entry in merged_entry\n + unpack-trees: factor out dup_entry\n + read-cache: mark cache_entry pointers const\n + cache: mark cache_entry pointers const\n\n Will merge to 'master'.\n\n\n* tr/test-commit-only-on-orphan (2013-06-02) 1 commit\n  (merged to 'next' on 2013-06-03 at b1864fd)\n + Test 'commit --only' after 'checkout --orphan'\n\n Will merge to 'master'.\n\n\n* ap/diff-ignore-blank-lines (2013-05-29) 1 commit\n - diff: add --ignore-blank-lines option\n\n \"git diff\" learned a mode that ignores hunks whose change consists\n only of additions and removals of blank lines, which is the same as\n \"diff -B\" (ignore blank lines) of GNU diff.\n\n Will be rerolled.\n $gmane/226394\n\n\n* rj/mingw-cygwin (2013-05-08) 2 commits\n  (merged to 'next' on 2013-06-04 at 308fdb4)\n + cygwin: Remove the CYGWIN_V15_WIN32API build variable\n + mingw: rename WIN32 cpp macro to GIT_WINDOWS_NATIVE\n\n Update build for Cygwin 1.[57].  Torsten Bögershausen reports that\n this is fine with Cygwin 1.7 ($gmane/225824) so let's try moving it\n ahead.\n\n Will merge to 'master'.\n\n\n* rr/rebase-autostash (2013-05-29) 7 commits\n  (merged to 'next' on 2013-06-04 at 16f7c54)\n + rebase: implement --[no-]autostash and rebase.autostash\n + rebase --merge: return control to caller, for housekeeping\n + rebase -i: return control to caller, for housekeeping\n + am: return control to caller, for housekeeping\n + rebase: prepare to do generic housekeeping\n + rebase -i: don't error out if $state_dir already exists\n + am: tighten a conditional that checks for $dotest\n\n Will merge to 'master'.\n\n\n* cb/log-follow-with-combined (2013-05-28) 1 commit\n  (merged to 'next' on 2013-06-04 at d5bf4f3)\n + fix segfault with git log -c --follow\n\n Will merge to 'master'.\n\n\n* xq/credential-osxkeychain (2013-05-28) 1 commit\n  (merged to 'next' on 2013-06-04 at a4ee0e0)\n + credential-osxkeychain: support more protocols\n\n Will merge to 'master'.\n\n\n* mh/reflife (2013-06-02) 25 commits\n  (merged to 'next' on 2013-06-05 at 291d863)\n + refs: document the lifetime of the args passed to each_ref_fn\n + register_ref(): make a copy of the bad reference SHA-1\n + exclude_existing(): set existing_refs.strdup_strings\n + string_list_add_refs_by_glob(): add a comment about memory management\n + string_list_add_one_ref(): rename first parameter to \"refname\"\n + show_head_ref(): rename first parameter to \"refname\"\n + show_head_ref(): do not shadow name of argument\n + add_existing(): do not retain a reference to sha1\n + do_fetch(): clean up existing_refs before exiting\n + do_fetch(): reduce scope of peer_item\n + object_array_entry: fix memory handling of the name field\n + find_first_merges(): remove unnecessary code\n + find_first_merges(): initialize merges variable using initializer\n + fsck: don't put a void*-shaped peg in a char*-shaped hole\n + object_array_remove_duplicates(): rewrite to reduce copying\n + revision: use object_array_filter() in implementation of gc_boundary()\n + object_array: add function object_array_filter()\n + revision: split some overly-long lines\n + cmd_diff(): make it obvious which cases are exclusive of each other\n + cmd_diff(): rename local variable \"list\" -> \"entry\"\n + cmd_diff(): use an object_array for holding trees\n + builtin_diff_tree(): make it obvious that function wants two entries\n + add_rev_cmdline(): make a copy of the name argument\n + fetch: make own copies of refnames\n + describe: make own copy of refname\n\n Define memory ownership and lifetime rules for what for-each-ref\n feeds to its callbacks (in short, \"you do not own it, so make a\n copy if you want to keep it\").\n\n Will merge to 'master'.\n\n\n* mm/mediawiki-https-fail-message (2013-05-29) 1 commit\n  (merged to 'next' on 2013-06-04 at fb2671c)\n + git-remote-mediawiki: better error message when HTTP(S) access fails\n\n Hint users when https:// connection failed to check the\n certificate; it is a good hint if we assumie that it is common\n error for the end users to make.\n\n Will merge to 'master'.\n\n\n* rr/die-on-missing-upstream (2013-06-02) 2 commits\n  (merged to 'next' on 2013-06-03 at 00847ea)\n + sha1_name: fix error message for @{<N>}, @{<date>}\n + sha1_name: fix error message for @{u}\n\n When a reflog notation is used for implicit \"current branch\", we\n did not say which branch and worse said \"branch ''\".\n\n Will merge to 'master'.\n\n\n* fc/remote-bzr (2013-05-28) 8 commits\n  (merged to 'next' on 2013-06-04 at a603082)\n + remote-bzr: add fallback check for a partial clone\n + remote-bzr: reorganize the way 'wanted' works\n + remote-bzr: trivial cleanups\n + remote-bzr: change global repo\n + remote-bzr: delay cloning/pulling\n + remote-bzr: simplify get_remote_branch()\n + remote-bzr: fix for files with spaces\n + remote-bzr: recover from failed clones\n\n Will merge to 'master'.\n\n\n* jx/clean-interactive (2013-06-03) 15 commits\n - test: add t7301 for git-clean--interactive\n - git-clean: add documentation for interactive git-clean\n - git-clean: add ask each interactive action\n - git-clean: add select by numbers interactive action\n - git-clean: add filter by pattern interactive action\n - git-clean: use a git-add-interactive compatible UI\n - git-clean: add colors to interactive git-clean\n - git-clean: show items of del_list in columns\n - git-clean: add support for -i/--interactive\n - git-clean: refactor git-clean into two phases\n - Refactor write_name_quoted_relative, remove unused params\n - Refactor quote_path_relative, remove unused params\n - quote.c: remove path_relative, use relative_path instead\n - path.c: refactor relative_path(), not only strip prefix\n - test: add test cases for relative_path\n\n\n* tr/test-v-and-v-subtest-only (2013-05-16) 6 commits\n - test-lib: support running tests under valgrind in parallel\n - test-lib: allow prefixing a custom string before \"ok N\" etc.\n - test-lib: valgrind for only tests matching a pattern\n - test-lib: verbose mode for only tests matching a pattern\n - test-lib: refactor $GIT_SKIP_TESTS matching\n - test-lib: enable MALLOC_* for the actual tests\n\n Allows N instances of tests run in parallel, each running 1/N parts\n of the test suite under Valgrind, to speed things up.\n\n The tip one may be useful in practice but is a tad ugly ;-)\n\n There seem to be some miscounting by toggling the verbose/valgrind\n mode at wrong places?  Cf. $gmane/225735\n\n Waiting for a reroll.\n\n\n* fc/contrib-related (2013-06-03) 4 commits\n - contrib: related: parse committish like format-patch\n - contrib: related: add option to parse from committish\n - contrib: related: add support for multiple patches\n - Add new git-related helper to contrib\n\n Waiting for the design review to settle.\n\n\n* fc/remote-hg (2013-05-28) 50 commits\n  (merged to 'next' on 2013-06-04 at 9ee7dab)\n + remote-hg: add support for --force\n + remote-hg: add support for --dry-run\n + remote-hg: check if a fetch is needed\n + remote-hg: trivial cleanup\n + remote-helpers: improve marks usage\n + remote-hg: add check_push() helper\n + remote-hg: add setup_big_push() helper\n + remote-hg: remove files before modifications\n + remote-hg: improve lightweight tag author\n + remote-hg: use remote 'default' not local one\n + remote-hg: improve branch listing\n + remote-hg: simplify branch_tip()\n + remote-hg: check diverged bookmarks\n + remote-hg: pass around revision refs\n + remote-hg: implement custom checkheads()\n + remote-hg: implement custom push()\n + remote-hg: only update necessary revisions\n + remote-hg: force remote bookmark push selectively\n + remote-hg: reorganize bookmark handling\n + remote-hg: add test for failed double push\n + remote-hg: add test for big push\n + remote-hg: add test for new bookmark special\n + remote-hg: add test for bookmark diverge\n + remote-hg: add test for diverged push\n + remote-hg: add test to push new bookmark\n + remote-hg: add remote tests\n + remote-hg: update bookmarks when using a remote\n + remote-hg: add check_bookmark() test helper\n + remote-bzr: simplify test checks\n + remote-hg: add tests for 'master' bookmark\n + remote-hg: always point HEAD to master\n + remote-hg: improve progress calculation\n + remote-hg: trivial cleanups\n + remote-hg: ensure remote rebasing works\n + remote-hg: upgrade version 1 marks\n + remote-hg: switch from revisions to SHA-1 noteids\n + remote-hg: add version checks to the marks\n + remote-hg: improve node traversing\n + remote-hg: shuffle some code\n + remote-hg: use a shared repository store\n + remote-hg: load all extensions\n + remote-hg: test: simplify previous branch checkout\n + remote-helpers: test: simplify remote URLs\n + remote-helpers: tests: general improvements\n + remote-helpers: test: cleanup style\n + remote-helpers: test: cleanup white-spaces\n + remote-hg: trivial reorganization\n + remote-hg: test: be a little more quiet\n + remote-hg: tests: fix hg merge\n + remote-helpers: tests: use python directly\n\n Will merge to 'master'.\n\n\n* hv/config-from-blob (2013-05-12) 5 commits\n - do not die when error in config parsing of buf occurs\n - teach config --blob option to parse config from database\n - config: make parsing stack struct independent from actual data source\n - config: drop cf validity check in get_next_char()\n - config: factor out config file stack management\n\n Waiting for a reroll.\n $gmane/223964\n\n\n* kb/full-history-compute-treesame-carefully-2 (2013-05-16) 15 commits\n  (merged to 'next' on 2013-06-05 at 193242b)\n + revision.c: make default history consider bottom commits\n + revision.c: don't show all merges for --parents\n + revision.c: discount side branches when computing TREESAME\n + revision.c: add BOTTOM flag for commits\n + simplify-merges: drop merge from irrelevant side branch\n + simplify-merges: never remove all TREESAME parents\n + t6012: update test for tweaked full-history traversal\n + revision.c: Make --full-history consider more merges\n + Documentation: avoid \"uninteresting\"\n + rev-list-options.txt: correct TREESAME for P\n + t6111: add parents to tests\n + t6111: allow checking the parents as well\n + t6111: new TREESAME test set\n + t6019: test file dropped in -s ours merge\n + decorate.c: compact table when growing\n\n Major update to a very core part of the revision traversal logic to\n improve culling of irrelevant parents while traversing a mergy\n history.\n\n\n* mm/color-auto-default (2013-05-15) 2 commits\n - make color.ui default to 'auto'\n - config: refactor management of color.ui's default value\n\n Flip the default for color.ui to 'auto', which is what many\n tutorials recommend new users to do.  The updated code claims the\n switch happened at Git 2.0 in the past tense, but we might want to\n expedite it, as this change is not all that important to deserve a\n major version bump.\n\n I'd vote for merging this without waiting for 2.0.  Comments?\n\n Waiting for a reroll.\n\n\n* jh/shorten-refname (2013-05-07) 4 commits\n - t1514: refname shortening is done after dereferencing symbolic refs\n - shorten_unambiguous_ref(): Fix shortening refs/remotes/origin/HEAD to origin\n - t1514: Demonstrate failure to correctly shorten \"refs/remotes/origin/HEAD\"\n - t1514: Add tests of shortening refnames in strict/loose mode\n\n When remotes/origin/HEAD is not a symbolic ref, \"rev-parse\n --abbrev-ref remotes/origin/HEAD\" ought to show \"origin\", not\n \"origin/HEAD\", which is fixed with this series (if it is a symbolic\n ref that points at remotes/origin/something, then it should show\n \"origin/something\" and it already does).\n\n Expecting a reroll, as an early part of a larger series.\n\n\n* nd/warn-ambiguous-object-name (2013-05-29) 1 commit\n  (merged to 'next' on 2013-06-04 at e87c9d1)\n + get_sha1: warn about full or short object names that look like refs\n\n \"git cmd <name>\", when <name> happens to be a 40-hex string,\n directly uses the 40-hex string as an object name, even if a ref\n \"refs/<some hierarchy>/<name>\" exists.  This disambiguation order\n is unlikely to change, but we should warn about the ambiguity just\n like we warn when more than one refs/ hierachies share the same\n name.\n\n Will merge to 'master'.\n\n\n* fc/at-head (2013-05-08) 13 commits\n  (merged to 'next' on 2013-06-04 at f334a2a)\n + sha1_name: compare variable with constant, not constant with variable\n + Add new @ shortcut for HEAD\n + sha1_name: refactor reinterpret()\n + sha1_name: check @{-N} errors sooner\n + sha1_name: reorganize get_sha1_basic()\n + sha1_name: don't waste cycles in the @-parsing loop\n + sha1_name: remove unnecessary braces\n + sha1_name: remove no-op\n + tests: at-combinations: @{N} versus HEAD@{N}\n + tests: at-combinations: increase coverage\n + tests: at-combinations: improve nonsense()\n + tests: at-combinations: check ref names directly\n + tests: at-combinations: simplify setup\n\n Instead of typing four capital letters \"HEAD\", you can say \"@\"\n instead.\n\n Will merge to 'master'.\n\n\n* jk/submodule-subdirectory-ok (2013-04-24) 3 commits\n - submodule: fix quoting in relative_path()\n - submodule: drop the top-level requirement\n - rev-parse: add --prefix option\n\n Allow various subcommands of \"git submodule\" to be run not from the\n top of the working tree of the superproject.\n\n Waiting for a reroll.\n\n\n* jl/submodule-mv (2013-04-23) 5 commits\n - submodule.c: duplicate real_path's return value\n - rm: delete .gitmodules entry of submodules removed from the work tree\n - Teach mv to update the path entry in .gitmodules for moved submodules\n - Teach mv to move submodules using a gitfile\n - Teach mv to move submodules together with their work trees\n\n \"git mv A B\" when moving a submodule A does \"the right thing\",\n inclusing relocating its working tree and adjusting the paths in\n the .gitmodules file.\n\n Waiting for a reroll.\n\n\n* jn/add-2.0-u-A-sans-pathspec (2013-04-26) 1 commit\n - git add: -u/-A now affects the entire working tree\n\n Will cook in 'next' until Git 2.0.\n\n\n* jc/core-checkstat-2.0 (2013-05-06) 1 commit\n - core.statinfo: remove as promised in Git 2.0\n\n Will cook in 'next' until Git 2.0.\n\n\n* jc/push-2.0-default-to-simple (2013-04-03) 1 commit\n - push: switch default from \"matching\" to \"simple\"\n\n Will cook in 'next' until Git 2.0.\n\n\n* jc/add-2.0-ignore-removal (2013-04-22) 1 commit\n - git add <pathspec>... defaults to \"-A\"\n\n Updated endgame for \"git add <pathspec>\" that defaults to \"--all\"\n aka \"--no-ignore-removal\".\n\n Will cook in 'next' until Git 2.0.\n"},{"id":"219573","messageId":"20130607000006.GA25731@goldbirke","threadId":"34042","inReplyTo":"7vzjv2x3p7.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Jun 2013, #03; Thu, 6)","fromName":"SZEDER Gábor","fromEmail":"szeder@ira.uka.de","sentAt":"2013-06-07T00:00:06Z","receivedAt":"2013-06-07T00:00:06Z","isPatch":false,"sender":{"key":"szeder.dev@gmail.com","avatar":"https://avatars.githubusercontent.com/u/116324?v=4"},"body":"On Thu, Jun 06, 2013 at 03:41:08PM -0700, Junio C Hamano wrote:\n> * rr/complete-difftool (2013-06-03) 2 commits\n>   (merged to 'next' on 2013-06-04 at 01c7611)\n>  + completion: clarify ls-tree, archive, show completion\n>  + completion: difftool takes both revs and files\n> \n>  Update command line completion (in contrib/) to use a better named\n>  completion helper function for commands that take revisions and\n>  paths.\n> \n>  Will merge to 'master'.\n\nThis should not be merged to master as is; the one at the top because\nof the reasons given in $gmane/226272, the one at the bottom because\nof the misleading commit message (__git_complete_file() always\ncompleted refs first as part of the ref:file notation, so it worked\njust fine except for the ref1...ref2 notation; the real reason for\ncalling __git_complete_revlist_file() for difftool is to make clear\nthat difftool takes ref1...ref2:file, too).\n\n\nGábor\n"},{"id":"219575","messageId":"7vli6mwx07.fsf@alter.siamese.dyndns.org","threadId":"34042","inReplyTo":"20130607000006.GA25731@goldbirke","subject":"Re: What's cooking in git.git (Jun 2013, #03; Thu, 6)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2013-06-07T01:05:44Z","receivedAt":"2013-06-07T01:05:44Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"SZEDER Gábor <szeder@ira.uka.de> writes:\n\n> On Thu, Jun 06, 2013 at 03:41:08PM -0700, Junio C Hamano wrote:\n>> * rr/complete-difftool (2013-06-03) 2 commits\n>>   (merged to 'next' on 2013-06-04 at 01c7611)\n>>  + completion: clarify ls-tree, archive, show completion\n>>  + completion: difftool takes both revs and files\n>> \n>>  Update command line completion (in contrib/) to use a better named\n>>  completion helper function for commands that take revisions and\n>>  paths.\n>> \n>>  Will merge to 'master'.\n>\n> This should not be merged to master as is; the one at the top because\n> of the reasons given in $gmane/226272, the one at the bottom because\n> of the misleading commit message (__git_complete_file() always\n> completed refs first as part of the ref:file notation, so it worked\n> just fine except for the ref1...ref2 notation; the real reason for\n> calling __git_complete_revlist_file() for difftool is to make clear\n> that difftool takes ref1...ref2:file, too).\n\nOops.\n\nIt is too late to amend the log messages now, but at least a follow-up\npatch can fix the breakage by adding __git_complete_file() back.  Would\nyou mind doing that?\n\nThanks.\n"},{"id":"219642","messageId":"7v1u8dvrqg.fsf@alter.siamese.dyndns.org","threadId":"34042","inReplyTo":"7vli6mwx07.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Jun 2013, #03; Thu, 6)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2013-06-07T15:57:11Z","receivedAt":"2013-06-07T15:57:11Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Forgot to cc; sorry about that.\n\nJunio C Hamano <gitster@pobox.com> writes:\n\n> SZEDER Gábor <szeder@ira.uka.de> writes:\n>\n>> On Thu, Jun 06, 2013 at 03:41:08PM -0700, Junio C Hamano wrote:\n>>> * rr/complete-difftool (2013-06-03) 2 commits\n>>>   (merged to 'next' on 2013-06-04 at 01c7611)\n>>>  + completion: clarify ls-tree, archive, show completion\n>>>  + completion: difftool takes both revs and files\n>>> \n>>>  Update command line completion (in contrib/) to use a better named\n>>>  completion helper function for commands that take revisions and\n>>>  paths.\n>>> \n>>>  Will merge to 'master'.\n>>\n>> This should not be merged to master as is; the one at the top because\n>> of the reasons given in $gmane/226272, the one at the bottom because\n>> of the misleading commit message (__git_complete_file() always\n>> completed refs first as part of the ref:file notation, so it worked\n>> just fine except for the ref1...ref2 notation; the real reason for\n>> calling __git_complete_revlist_file() for difftool is to make clear\n>> that difftool takes ref1...ref2:file, too).\n>\n> Oops.\n>\n> It is too late to amend the log messages now, but at least a follow-up\n> patch can fix the breakage by adding __git_complete_file() back.  Would\n> you mind doing that?\n>\n> Thanks.\n"},{"id":"219653","messageId":"CALkWK0=D7sHLgptWkFHma1FoS-zdifHqXnuuBKhkyuszgEJ0Xw@mail.gmail.com","threadId":"34042","inReplyTo":"20130607000006.GA25731@goldbirke","subject":"Re: What's cooking in git.git (Jun 2013, #03; Thu, 6)","fromName":"Ramkumar Ramachandra","fromEmail":"artagnon@gmail.com","sentAt":"2013-06-07T17:30:14Z","receivedAt":"2013-06-07T17:30:14Z","isPatch":false,"sender":{"key":"r@artagnon.com","avatar":"https://avatars.githubusercontent.com/u/37226?v=4"},"body":"SZEDER Gábor wrote:\n> the one at the top because\n> of the reasons given in $gmane/226272\n\nSorry about the delay: I went to sleep for a couple of days :P\n\n> the one at the bottom because\n> of the misleading commit message (__git_complete_file() always\n> completed refs first as part of the ref:file notation, so it worked\n> just fine except for the ref1...ref2 notation; the real reason for\n> calling __git_complete_revlist_file() for difftool is to make clear\n> that difftool takes ref1...ref2:file, too).\n\nHow am I (or anyone else) supposed to know the \"intended\" meaning\n__git_complete_file()?  The implementation is just an alias to\n__git_complete_revlist_file(), so I looked at the name and guessed\nthat it was supposed to complete files; now you tell me that it was\nintended to complete any revspec except revision ranges (what does\nthat have to do with \"file\" again?).  I suppose digging through the\nhistory would've told me, but I really didn't bother for such a\ntrivial non-functional change.\n\nIf you ask me, you should clamp down on spurious completions\neverywhere uniformly, if that is what you want (I personally have no\ninterest in the topic).  I see no reason to keep a badly named\nfunction around.\n"},{"id":"219665","messageId":"7v8v2lu5ks.fsf@alter.siamese.dyndns.org","threadId":"34042","inReplyTo":"CALkWK0=D7sHLgptWkFHma1FoS-zdifHqXnuuBKhkyuszgEJ0Xw@mail.gmail.com","subject":"Re: What's cooking in git.git (Jun 2013, #03; Thu, 6)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2013-06-07T18:41:07Z","receivedAt":"2013-06-07T18:41:07Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Ramkumar Ramachandra <artagnon@gmail.com> writes:\n\n> SZEDER Gábor wrote:\n>> the one at the top because\n>> of the reasons given in $gmane/226272\n>\n> Sorry about the delay: I went to sleep for a couple of days :P\n>\n>> the one at the bottom because\n>> of the misleading commit message (__git_complete_file() always\n>> completed refs first as part of the ref:file notation, so it worked\n>> just fine except for the ref1...ref2 notation; the real reason for\n>> calling __git_complete_revlist_file() for difftool is to make clear\n>> that difftool takes ref1...ref2:file, too).\n>\n> How am I (or anyone else) supposed to know the \"intended\" meaning\n> __git_complete_file()?\n\n\"git log -Gcomplete_file -p contrib/completion\" found this one:\n\ncommit 1d66ec587e7d903afdf12a81718772a9eadc15a1\nAuthor: SZEDER Gábor <szeder@ira.uka.de>\nDate:   Thu Mar 10 19:12:29 2011 +0100\n\n    bash: complete 'git diff ...branc<TAB>'\n    \n    While doing a final sanity check before merging a topic Bsomething, it\n    is a good idea to review what damage Bsomething branch would make, by\n    running:\n    \n        $ git diff ...Bsomething\n    \n    Unfortunately, our completion script for 'git diff' doesn't offer\n    anything after '...'.  This is because 'git diff's completion function\n    invokes __git_complete_file() for non-option arguments to complete the\n    '<tree>:<path>' extended SHA-1 notation, but this helper function\n    doesn't support refs after '...' or '..'.  Completion of refs after\n    '...' or '..' is supported by the __git_complete_revlist() helper\n    function, but that doesn't support '<tree>:<path>'.\n    \n    To support both '...<ref>' and '<tree>:<path>' notations for 'git\n    diff', this patch, instead of adding yet another helper function,\n    joins __git_complete_file() and __git_complete_revlist() into the new\n    common function __git_complete_revlist_file().  The old helper\n    functions __git_complete_file() and __git_complete_revlist() are\n    changed to be a direct wrapper around the new\n    __git_complete_revlist_file(), because they might be used in\n    user-supplied completion scripts and we don't want to break them.\n    \n    This change will cause some wrong suggestions for other commands which\n    use __git_complete_file() ('git diff' and friends) or\n    __git_complete_revlist() ('git log' and friends), e.g. 'git diff\n    ...master:Doc<TAB>' and 'git log master:Doc<TAB>' will complete the\n    path to 'Documentation/', although neither commands make any sense.\n    However, both of these were actively wrong to begin with as soon as\n    the user entered the ':', so there is no real harm done.\n    \n    Suggested-by: Junio C Hamano <gitster@pobox.com>\n    Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>\n    Signed-off-by: Junio C Hamano <gitster@pobox.com>\n\nNow I do not recall suggesting it, and you (and I today after 2\nyears) may disagree with the rationale, but at least we can read\nwhat was the \"intended\" meaning, I think.\n"},{"id":"219670","messageId":"20130607185537.GC25731@goldbirke","threadId":"34042","inReplyTo":"CALkWK0=D7sHLgptWkFHma1FoS-zdifHqXnuuBKhkyuszgEJ0Xw@mail.gmail.com","subject":"Re: What's cooking in git.git (Jun 2013, #03; Thu, 6)","fromName":"SZEDER Gábor","fromEmail":"szeder@fira.uka.de","sentAt":"2013-06-07T18:55:37Z","receivedAt":"2013-06-07T18:55:37Z","isPatch":false,"sender":{"key":"szeder@fira.uka.de","avatar":null},"body":"On Fri, Jun 07, 2013 at 11:00:14PM +0530, Ramkumar Ramachandra wrote:\n> SZEDER Gábor wrote:\n> > the one at the top because\n> > of the reasons given in $gmane/226272\n> \n> Sorry about the delay: I went to sleep for a couple of days :P\n> \n> > the one at the bottom because\n> > of the misleading commit message (__git_complete_file() always\n> > completed refs first as part of the ref:file notation, so it worked\n> > just fine except for the ref1...ref2 notation; the real reason for\n> > calling __git_complete_revlist_file() for difftool is to make clear\n> > that difftool takes ref1...ref2:file, too).\n> \n> How am I (or anyone else) supposed to know the \"intended\" meaning\n> __git_complete_file()?  The implementation is just an alias to\n> __git_complete_revlist_file(), so I looked at the name and guessed\n> that it was supposed to complete files; now you tell me that it was\n> intended to complete any revspec except revision ranges (what does\n> that have to do with \"file\" again?).  I suppose digging through the\n> history would've told me, but I really didn't bother for such a\n> trivial non-functional change.\n\nYeah, I suppose it's always wise to do a bit of history digging before\nyou go on to remove a function you don't know what it is doing, even\nthough a simple git log -Sfuncname perhaps doesn't even qualifies for\n\"digging\" ;)\n"},{"id":"219672","messageId":"CALkWK0nD4xudS=XG1z+KRxnUmOA6sG6NpRX-rZc1CjNodzcGAg@mail.gmail.com","threadId":"34042","inReplyTo":"7v8v2lu5ks.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Jun 2013, #03; Thu, 6)","fromName":"Ramkumar Ramachandra","fromEmail":"artagnon@gmail.com","sentAt":"2013-06-07T19:01:08Z","receivedAt":"2013-06-07T19:01:08Z","isPatch":false,"sender":{"key":"r@artagnon.com","avatar":"https://avatars.githubusercontent.com/u/37226?v=4"},"body":"Junio C Hamano wrote:\n> \"git log -Gcomplete_file -p contrib/completion\" found this one:\n>\n> Now I do not recall suggesting it, and you (and I today after 2\n> years) may disagree with the rationale, but at least we can read\n> what was the \"intended\" meaning, I think.\n\nHaving spent so much time documenting pickaxe, I should atleast learn\nto use it more often :\\\n"},{"id":"219678","messageId":"20130607191643.GA31625@goldbirke","threadId":"34042","inReplyTo":"7v8v2lu5ks.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Jun 2013, #03; Thu, 6)","fromName":"SZEDER Gábor","fromEmail":"szeder@ira.uka.de","sentAt":"2013-06-07T19:16:43Z","receivedAt":"2013-06-07T19:16:43Z","isPatch":false,"sender":{"key":"szeder.dev@gmail.com","avatar":"https://avatars.githubusercontent.com/u/116324?v=4"},"body":"On Fri, Jun 07, 2013 at 11:41:07AM -0700, Junio C Hamano wrote:\n> \"git log -Gcomplete_file -p contrib/completion\" found this one:\n> \n> commit 1d66ec587e7d903afdf12a81718772a9eadc15a1\n> Author: SZEDER Gábor <szeder@ira.uka.de>\n> Date:   Thu Mar 10 19:12:29 2011 +0100\n> \n>     bash: complete 'git diff ...branc<TAB>'\n\n(snip)\n\n>     Suggested-by: Junio C Hamano <gitster@pobox.com>\n>     Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>\n>     Signed-off-by: Junio C Hamano <gitster@pobox.com>\n> \n> Now I do not recall suggesting it, and you (and I today after 2\n> years) may disagree with the rationale, but at least we can read\n> what was the \"intended\" meaning, I think.\n\nSee\n\n  http://thread.gmane.org/gmane.comp.version-control.git/167728/focus=168838\n\nI still agree with the rationale, considering that the new\n__git_complete_revlist_file() function for completing ref1...ref2:path\nis a nearly straight copy-paste from the then __git_complete_revlist()\nand __git_complete_file() including that 12 line long sed script.\n\n\nGábor\n"},{"id":"219685","messageId":"20130607193444.GB31625@goldbirke","threadId":"34042","inReplyTo":"7vli6mwx07.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Jun 2013, #03; Thu, 6)","fromName":"SZEDER Gábor","fromEmail":"szeder@ira.uka.de","sentAt":"2013-06-07T19:34:44Z","receivedAt":"2013-06-07T19:34:44Z","isPatch":false,"sender":{"key":"szeder.dev@gmail.com","avatar":"https://avatars.githubusercontent.com/u/116324?v=4"},"body":"On Thu, Jun 06, 2013 at 06:05:44PM -0700, Junio C Hamano wrote:\n> SZEDER Gábor <szeder@ira.uka.de> writes:\n> \n> > On Thu, Jun 06, 2013 at 03:41:08PM -0700, Junio C Hamano wrote:\n> >> * rr/complete-difftool (2013-06-03) 2 commits\n> >>   (merged to 'next' on 2013-06-04 at 01c7611)\n> >>  + completion: clarify ls-tree, archive, show completion\n> >>  + completion: difftool takes both revs and files\n> >> \n> >>  Update command line completion (in contrib/) to use a better named\n> >>  completion helper function for commands that take revisions and\n> >>  paths.\n> >> \n> >>  Will merge to 'master'.\n> >\n> > This should not be merged to master as is; the one at the top because\n> > of the reasons given in $gmane/226272, the one at the bottom because\n> > of the misleading commit message (__git_complete_file() always\n> > completed refs first as part of the ref:file notation, so it worked\n> > just fine except for the ref1...ref2 notation; the real reason for\n> > calling __git_complete_revlist_file() for difftool is to make clear\n> > that difftool takes ref1...ref2:file, too).\n> \n> Oops.\n> \n> It is too late to amend the log messages now, but at least a follow-up\n> patch can fix the breakage by adding __git_complete_file() back.  Would\n> you mind doing that?\n\nIs it in master already?  Am I missing something?\n\nWouldn't it be cleaner to revert those two patches from next and apply\nthis instead?\n\n\n -- >8 --\n\nFrom: SZEDER Gábor <szeder@ira.uka.de>\nSubject: [PATCH] completion: be explicit about revlist completion for difftool\n and show\n\nThe completion functions for 'git difftool' and 'git show' call\n__git_complete_file() to support completion of the 'ref:path' notation.\nHowever, these two commands also understand the 'ref1..ref2:path'\nnotation, the completion of which we happen to support accidentaly,\nbecause nowadays __git_complete_file() is a wrapper around\n__git_complete_revlist_file().\n\nLet's be explicit about it and call __git_complete_revlist_file()\ndirectly.\n\nSigned-off-by: SZEDER Gábor <szeder@ira.uka.de>\n---\n contrib/completion/git-completion.bash | 4 ++--\n 1 file changed, 2 insertions(+), 2 deletions(-)\n\ndiff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash\nindex 56c52c66..fd9a1d5f 100644\n--- a/contrib/completion/git-completion.bash\n+++ b/contrib/completion/git-completion.bash\n@@ -1211,7 +1211,7 @@ _git_difftool ()\n \t\treturn\n \t\t;;\n \tesac\n-\t__git_complete_file\n+\t__git_complete_revlist_file\n }\n \n __git_fetch_options=\"\n@@ -2277,7 +2277,7 @@ _git_show ()\n \t\treturn\n \t\t;;\n \tesac\n-\t__git_complete_file\n+\t__git_complete_revlist_file\n }\n \n _git_show_branch ()\n-- \n1.8.0.220.g4d14ece\n"},{"id":"219689","messageId":"7vwqq5snzi.fsf@alter.siamese.dyndns.org","threadId":"34042","inReplyTo":"20130607191643.GA31625@goldbirke","subject":"Re: What's cooking in git.git (Jun 2013, #03; Thu, 6)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2013-06-07T19:46:25Z","receivedAt":"2013-06-07T19:46:25Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"SZEDER Gábor <szeder@ira.uka.de> writes:\n\n>> Now I do not recall suggesting it, and you (and I today after 2\n>> years) may disagree with the rationale, but at least we can read\n>> what was the \"intended\" meaning, I think.\n>\n> See\n>\n>   http://thread.gmane.org/gmane.comp.version-control.git/167728/focus=168838\n>\n> I still agree with the rationale,...\n\nThanks for a pointer.  I think what I was suggesting was slightly\ndifferent in that I was hoping to see a single helper that knows to\ncomplete to object names (possibly including trees/blobs with the\ntreeish:path notation), ranges, and pathnames (not treeish:path\nnotation) until it sees a \"--\" and then complete only to pathnames.\n\nIt can be improved by teaching the unified one that some command\nlike \"log\" can never take treeish:path but only committishes, some\ncommand take individual object names but never ranges, and/or\ndetails like that.  But I still agree that \"git log HEAD:dir<TAB>\"\nthat completes to a blob or a tree object name is not an issue\n(because what was before <TAB> cannot possibly name anything \"git\nlog\" would appreciate), even though it might not be ideal.\n"},{"id":"219690","messageId":"CALkWK0mkQqopPBrmO1e20nN_kbNLgcR4cA9z7nOfA4q_2GxvMg@mail.gmail.com","threadId":"34042","inReplyTo":"20130607193444.GB31625@goldbirke","subject":"Re: What's cooking in git.git (Jun 2013, #03; Thu, 6)","fromName":"Ramkumar Ramachandra","fromEmail":"artagnon@gmail.com","sentAt":"2013-06-07T19:47:28Z","receivedAt":"2013-06-07T19:47:28Z","isPatch":false,"sender":{"key":"r@artagnon.com","avatar":"https://avatars.githubusercontent.com/u/37226?v=4"},"body":"SZEDER Gábor wrote:\n> because nowadays __git_complete_file() is a wrapper around\n> __git_complete_revlist_file().\n\nWhat?  It was never anything different from a poorly-named alias for\n__git_complete_revlist_file().  You have already agreed that\n__git_complete_file() is a horrible name, so why not deprecate it?\nWhom is this confusion benefiting, and how is it any \"cleaner\"?  If\nyou're arguing about expanding __git_complete_file(), don't do that:\njust write a new function and give it a proper name.\n"},{"id":"219692","messageId":"20130607200657.GC31625@goldbirke","threadId":"34042","inReplyTo":"CALkWK0mkQqopPBrmO1e20nN_kbNLgcR4cA9z7nOfA4q_2GxvMg@mail.gmail.com","subject":"Re: What's cooking in git.git (Jun 2013, #03; Thu, 6)","fromName":"SZEDER Gábor","fromEmail":"szeder@ira.uka.de","sentAt":"2013-06-07T20:06:57Z","receivedAt":"2013-06-07T20:06:57Z","isPatch":false,"sender":{"key":"szeder.dev@gmail.com","avatar":"https://avatars.githubusercontent.com/u/116324?v=4"},"body":"On Sat, Jun 08, 2013 at 01:17:28AM +0530, Ramkumar Ramachandra wrote:\n> SZEDER Gábor wrote:\n> > because nowadays __git_complete_file() is a wrapper around\n> > __git_complete_revlist_file().\n> \n> What?  It was never anything different from a poorly-named alias for\n> __git_complete_revlist_file().\n\nAgain: __git_complete_file() has been there since the completion\nscript was first included in git.\n\n>  You have already agreed that\n> __git_complete_file() is a horrible name, so why not deprecate it?\n\nI am not against deprecating it, and by \"it\" I mean the function name.\n\n> Whom is this confusion benefiting, and how is it any \"cleaner\"?\n\nIt's clearer because of the reasons I gave in my other email in the\ndiscussion of the patch.\n\nPlus it would avoid commits on master with incorrect commit messages.\n\n> If\n> you're arguing about expanding __git_complete_file(), don't do that:\n> just write a new function and give it a proper name.\n\nI am not arguing about that.\n"},{"id":"219705","messageId":"20130607204430.GD31625@goldbirke","threadId":"34042","inReplyTo":"7vwqq5snzi.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Jun 2013, #03; Thu, 6)","fromName":"SZEDER Gábor","fromEmail":"szeder@ira.uka.de","sentAt":"2013-06-07T20:44:30Z","receivedAt":"2013-06-07T20:44:30Z","isPatch":false,"sender":{"key":"szeder.dev@gmail.com","avatar":"https://avatars.githubusercontent.com/u/116324?v=4"},"body":"On Fri, Jun 07, 2013 at 12:46:25PM -0700, Junio C Hamano wrote:\n> Thanks for a pointer.  I think what I was suggesting was slightly\n> different in that I was hoping to see a single helper that knows to\n> complete to object names (possibly including trees/blobs with the\n> treeish:path notation), ranges, and pathnames (not treeish:path\n> notation) until it sees a \"--\" and then complete only to pathnames.\n\nWe already got that except the completion of pathnames before \"--\",\nand I don't know how that could be done properly for commands taking\nboth refs and paths.  Just consider\n\n  git diff git.c\n  git diff master git.c\n  git diff master next git.c\n\nWe can't guess whether the user wants refs or paths when he first hits\ntab after 'git diff ', not even after 'git diff master '.  I\ndefinitely don't want to see refs and paths all mixed up.\n\nAs for the _single_ helper: I think it has some value that we have\ndifferent helper functions and we can indicate whether a certain git\ncommand can take a ref or ref:path or ref1...ref2 or even\nref1..ref2:path by calling the appropriate helper function (however\nbadly it might have been named), even if all these functions happen to\nboil down to a single implementation.\n\n\nGábor\n"},{"id":"219741","messageId":"7vk3m5si4h.fsf@alter.siamese.dyndns.org","threadId":"34042","inReplyTo":"20130607204430.GD31625@goldbirke","subject":"Re: What's cooking in git.git (Jun 2013, #03; Thu, 6)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2013-06-07T21:53:02Z","receivedAt":"2013-06-07T21:53:02Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"SZEDER Gábor <szeder@ira.uka.de> writes:\n\n> On Fri, Jun 07, 2013 at 12:46:25PM -0700, Junio C Hamano wrote:\n>> Thanks for a pointer.  I think what I was suggesting was slightly\n>> different in that I was hoping to see a single helper that knows to\n>> complete to object names (possibly including trees/blobs with the\n>> treeish:path notation), ranges, and pathnames (not treeish:path\n>> notation) until it sees a \"--\" and then complete only to pathnames.\n>\n> We already got that except the completion of pathnames before \"--\",\n> and I don't know how that could be done properly for commands taking\n> both refs and paths.\n> ...\n>   git diff git.c\n>   git diff master git.c\n>   git diff master next git.c\n\nIt is somewhat annoying that \"git diff gi<TAB>\" stops at expanding\nit to \"git diff git\" and then upon another \"git diff git<TAB>\"\noffers tags whose names begin with \"git\" (e.g. gitgui-0.10.0) but\nthe pathname git.c is not included in the choices.  My wish was to\ntake the union in such a fairly limited case.  I tend to agree with\nyou that \"git diff <TAB>\" that expands to all refs and pathnames\nwould be useless, but so is expansion to all pathnames (or refnames\nfor that matter).\n\nIn any case, I wouldn't insist on AI perfection in the first place\n;-).  As long as it works reasonably well, I am happy (and I think\nthe current completion code already works better than reasonably\nwell, at least for me).\n\nThanks.\n"},{"id":"219767","messageId":"20130608001147.GA32350@goldbirke","threadId":"34042","inReplyTo":"7vk3m5si4h.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Jun 2013, #03; Thu, 6)","fromName":"SZEDER Gábor","fromEmail":"szeder@ira.uka.de","sentAt":"2013-06-08T00:11:47Z","receivedAt":"2013-06-08T00:11:47Z","isPatch":false,"sender":{"key":"szeder.dev@gmail.com","avatar":"https://avatars.githubusercontent.com/u/116324?v=4"},"body":"On Fri, Jun 07, 2013 at 02:53:02PM -0700, Junio C Hamano wrote:\n> SZEDER Gábor <szeder@ira.uka.de> writes:\n> \n> > On Fri, Jun 07, 2013 at 12:46:25PM -0700, Junio C Hamano wrote:\n> >> Thanks for a pointer.  I think what I was suggesting was slightly\n> >> different in that I was hoping to see a single helper that knows to\n> >> complete to object names (possibly including trees/blobs with the\n> >> treeish:path notation), ranges, and pathnames (not treeish:path\n> >> notation) until it sees a \"--\" and then complete only to pathnames.\n> >\n> > We already got that except the completion of pathnames before \"--\",\n> > and I don't know how that could be done properly for commands taking\n> > both refs and paths.\n> > ...\n> >   git diff git.c\n> >   git diff master git.c\n> >   git diff master next git.c\n> \n> It is somewhat annoying that \"git diff gi<TAB>\" stops at expanding\n> it to \"git diff git\" and then upon another \"git diff git<TAB>\"\n> offers tags whose names begin with \"git\" (e.g. gitgui-0.10.0) but\n> the pathname git.c is not included in the choices.  My wish was to\n> take the union in such a fairly limited case.  I tend to agree with\n> you that \"git diff <TAB>\" that expands to all refs and pathnames\n> would be useless, but so is expansion to all pathnames (or refnames\n> for that matter).\n\n... or trying to complete a branch name starting with a 'v', and then\ngetting all the vx.y.z tags.\n\nIf you know you want git.c, then you can force filename completion\neither by entering \"--\" before hitting tab or by using the Alt-/ Bash\n(readline?) keybinding, otherwise you'll get refs.  I think this is\nmore than adequate, as it brings the best of both worlds: you can\nquickly and easily get both ref-only and file-only completion.\nTraining your fingers to type \"--\" is perhaps better, just in case\nwe'll ever do tracked-file-aware filename completion for e.g. 'git log\n-- g<TAB>' in the future.\n\n\nBest,\nGábor\n"},{"id":"219833","messageId":"CALkWK0km0C6q7-LoZBiAtzVh_Uv-bbEZuecv5uCsAk6E=uXxfg@mail.gmail.com","threadId":"34042","inReplyTo":"7vzjv2x3p7.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Jun 2013, #03; Thu, 6)","fromName":"Ramkumar Ramachandra","fromEmail":"artagnon@gmail.com","sentAt":"2013-06-08T15:30:27Z","receivedAt":"2013-06-08T15:30:27Z","isPatch":false,"sender":{"key":"r@artagnon.com","avatar":"https://avatars.githubusercontent.com/u/37226?v=4"},"body":"Junio C Hamano wrote:\n> * mm/color-auto-default (2013-05-15) 2 commits\n>  - make color.ui default to 'auto'\n>  - config: refactor management of color.ui's default value\n>\n>  Flip the default for color.ui to 'auto', which is what many\n>  tutorials recommend new users to do.  The updated code claims the\n>  switch happened at Git 2.0 in the past tense, but we might want to\n>  expedite it, as this change is not all that important to deserve a\n>  major version bump.\n>\n>  I'd vote for merging this without waiting for 2.0.  Comments?\n\nYes, please merge.  The commit message looks good as well: it doesn't\nsay anything about waiting for 2.0.\n\n>  Waiting for a reroll.\n\nThe one in pu looks fine to me.  What am I missing?\n"},{"id":"219853","messageId":"vpqhah8v43p.fsf@anie.imag.fr","threadId":"34042","inReplyTo":"CALkWK0km0C6q7-LoZBiAtzVh_Uv-bbEZuecv5uCsAk6E=uXxfg@mail.gmail.com","subject":"Re: What's cooking in git.git (Jun 2013, #03; Thu, 6)","fromName":"Matthieu Moy","fromEmail":"matthieu.moy@grenoble-inp.fr","sentAt":"2013-06-08T18:39:54Z","receivedAt":"2013-06-08T18:39:54Z","isPatch":false,"sender":{"key":"matthieu.moy@grenoble-inp.fr","avatar":"https://gravatar.com/avatar/72c8a2705971a25dfaff23cece15130d405685845d911aedd5667ace277f3fc5?d=mp&s=160"},"body":"Ramkumar Ramachandra <artagnon@gmail.com> writes:\n\n> Yes, please merge.  The commit message looks good as well: it doesn't\n> say anything about waiting for 2.0.\n\nThe commit message doesn't, but the doc does. I'll resend without the\n2.0 mention.\n\n-- \nMatthieu Moy\nhttp://www-verimag.imag.fr/~moy/\n"},{"id":"220168","messageId":"7v1u8bouam.fsf@alter.siamese.dyndns.org","threadId":"34042","inReplyTo":"20130608001147.GA32350@goldbirke","subject":"Re: What's cooking in git.git (Jun 2013, #03; Thu, 6)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2013-06-09T21:20:33Z","receivedAt":"2013-06-09T21:20:33Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"SZEDER Gábor <szeder@ira.uka.de> writes:\n\n>> It is somewhat annoying that \"git diff gi<TAB>\" stops at expanding\n>> it to \"git diff git\" and then upon another \"git diff git<TAB>\"\n>> offers tags whose names begin with \"git\" (e.g. gitgui-0.10.0) but\n>> the pathname git.c is not included in the choices.  My wish was to\n>> take the union in such a fairly limited case.  I tend to agree with\n>> you that \"git diff <TAB>\" that expands to all refs and pathnames\n>> would be useless, but so is expansion to all pathnames (or refnames\n>> for that matter).\n>\n> ... or trying to complete a branch name starting with a 'v', and then\n> getting all the vx.y.z tags.\n>\n> If you know you want git.c, then you can force filename completion\n> either by entering \"--\" before hitting tab...\n\nYes, that is exactly why I said \"the current completion code already\nworks better than reasonably well, at least for me\" in the\nconcluding part of my message.\n\nRegarding that rr/complete-difftool topic, let's revert the tip 2\ncommits (the \"ls-tree, archive and show\" one, and the follow-up\nresurrection of __git_complete_file) with this:\n\n    Revert 77c1305 and 3c3b46b\n    \n    As explained by SZEDER Gábor in $gmane/226272, git_complete_file\n    helper is about completing <tree-ish>, taking <commit> at the tips\n    of refs and also understanding <tree-ish>:<path> notation, and\n    changing \"archive\" and \"ls-tree\" to use git_complete_revlist_file\n    that in addition is meant to expand A..B range notation was a\n    mistake.\n    \n    Signed-off-by: Junio C Hamano <gitster@pobox.com>\n\nand then queue this on top of d8517cc6670d (completion: difftool\ntakes both revs and files, 2013-06-02), so that the attached and\nd8517cc6670d will be the only two commits that graduate to 'master'\nfrom this topic.\n\n-- >8 --\nFrom: Ramkumar Ramachandra <artagnon@gmail.com>\nDate: Sun, 2 Jun 2013 19:33:42 +0530\nSubject: [PATCH] completion: show can take both revlist and paths\n\nThe 'git show' completion uses __git_complete_file (aliased to\n__git_complete_revlist_file), because accepts <tree-ish>:<path> as\nwell as <commit-ish>.  But the command also accepts range of commits\nin A..B notation, so using __git_complete_revlist_file is more\nappropriate.\n\nThere still remain two users of __git_complete_file, completions for\n\"archive\" and \"ls-tree\".  As these commands do not take range\nnotation, and \"git show\" no longer uses __git_complete_file, the\nimplementation of can be updated not to complete ranges, but that is\na separate topic.\n\nSigned-off-by: Ramkumar Ramachandra <artagnon@gmail.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>\n---\n contrib/completion/git-completion.bash | 2 +-\n 1 file changed, 1 insertion(+), 1 deletion(-)\n\ndiff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash\nindex 1b4b0f9..b9dfc3b 100644\n--- a/contrib/completion/git-completion.bash\n+++ b/contrib/completion/git-completion.bash\n@@ -2360,7 +2360,7 @@ _git_show ()\n \t\treturn\n \t\t;;\n \tesac\n-\t__git_complete_file\n+\t__git_complete_revlist_file\n }\n \n _git_show_branch ()\n-- \n1.8.3-477-gc2fede3\n"},{"id":"220172","messageId":"20130609214833.GE2091@goldbirke","threadId":"34042","inReplyTo":"7v1u8bouam.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Jun 2013, #03; Thu, 6)","fromName":"SZEDER Gábor","fromEmail":"szeder@ira.uka.de","sentAt":"2013-06-09T21:48:33Z","receivedAt":"2013-06-09T21:48:33Z","isPatch":false,"sender":{"key":"szeder.dev@gmail.com","avatar":"https://avatars.githubusercontent.com/u/116324?v=4"},"body":"Hi,\n\n\nOn Sun, Jun 09, 2013 at 02:20:33PM -0700, Junio C Hamano wrote:\n> Regarding that rr/complete-difftool topic, let's revert the tip 2\n> commits (the \"ls-tree, archive and show\" one, and the follow-up\n> resurrection of __git_complete_file) with this:\n> \n>     Revert 77c1305 and 3c3b46b\n>     \n>     As explained by SZEDER Gábor in $gmane/226272, git_complete_file\n>     helper is about completing <tree-ish>, taking <commit> at the tips\n>     of refs and also understanding <tree-ish>:<path> notation, and\n>     changing \"archive\" and \"ls-tree\" to use git_complete_revlist_file\n>     that in addition is meant to expand A..B range notation was a\n>     mistake.\n>     \n>     Signed-off-by: Junio C Hamano <gitster@pobox.com>\n> \n> and then queue this on top of d8517cc6670d (completion: difftool\n> takes both revs and files, 2013-06-02), so that the attached and\n> d8517cc6670d will be the only two commits that graduate to 'master'\n> from this topic.\n\nThat's fine with me, except ...\n\n> -- >8 --\n> From: Ramkumar Ramachandra <artagnon@gmail.com>\n> Date: Sun, 2 Jun 2013 19:33:42 +0530\n> Subject: [PATCH] completion: show can take both revlist and paths\n> \n> The 'git show' completion uses __git_complete_file (aliased to\n> __git_complete_revlist_file), because accepts <tree-ish>:<path> as\n> well as <commit-ish>.  But the command also accepts range of commits\n> in A..B notation, so using __git_complete_revlist_file is more\n> appropriate.\n> \n> There still remain two users of __git_complete_file, completions for\n> \"archive\" and \"ls-tree\".  As these commands do not take range\n> notation, and \"git show\" no longer uses __git_complete_file, the\n> implementation of can be updated not to complete ranges, but that is\n\n\"the implementation of\" what?  A word missing perhaps?  Or \"the\nimplementation can be updated\"?\n\n\nBest,\nGábor\n\n> a separate topic.\n> \n> Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>\n> Signed-off-by: Junio C Hamano <gitster@pobox.com>\n> ---\n>  contrib/completion/git-completion.bash | 2 +-\n>  1 file changed, 1 insertion(+), 1 deletion(-)\n> \n> diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash\n> index 1b4b0f9..b9dfc3b 100644\n> --- a/contrib/completion/git-completion.bash\n> +++ b/contrib/completion/git-completion.bash\n> @@ -2360,7 +2360,7 @@ _git_show ()\n>  \t\treturn\n>  \t\t;;\n>  \tesac\n> -\t__git_complete_file\n> +\t__git_complete_revlist_file\n>  }\n>  \n>  _git_show_branch ()\n> -- \n> 1.8.3-477-gc2fede3\n"},{"id":"220204","messageId":"7vehcaopv0.fsf@alter.siamese.dyndns.org","threadId":"34042","inReplyTo":"20130609214833.GE2091@goldbirke","subject":"Re: What's cooking in git.git (Jun 2013, #03; Thu, 6)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2013-06-09T22:56:19Z","receivedAt":"2013-06-09T22:56:19Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"SZEDER Gábor <szeder@ira.uka.de> writes:\n\n>> There still remain two users of __git_complete_file, completions for\n>> \"archive\" and \"ls-tree\".  As these commands do not take range\n>> notation, and \"git show\" no longer uses __git_complete_file, the\n>> implementation of can be updated not to complete ranges, but that is\n>\n> \"the implementation of\" what?  A word missing perhaps?\n\nit.\n\nThanks.\n"},{"id":"220242","messageId":"CALkWK0kvSvK=bFJo13=yw+2EZmGyv46_DUEZaniYGCe7D_V2wg@mail.gmail.com","threadId":"34042","inReplyTo":"7v1u8bouam.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Jun 2013, #03; Thu, 6)","fromName":"Ramkumar Ramachandra","fromEmail":"artagnon@gmail.com","sentAt":"2013-06-10T06:25:58Z","receivedAt":"2013-06-10T06:25:58Z","isPatch":false,"sender":{"key":"r@artagnon.com","avatar":"https://avatars.githubusercontent.com/u/37226?v=4"},"body":"Junio C Hamano wrote:\n>     Revert 77c1305 and 3c3b46b\n\nThe core of the argument seems to be that\n__git_complete_revlist_file() is a misleading name for the completion\ndone by archive and ls-tree, but __git_complete_file() is somehow a\nless misleading name?  Irrespective of what the valid completions of\nthe various commands are, I want to know which completion function\nwill be _used_ when I'm reading the script.  And that is\n__git_complete_revlist_file().\n\nTo me, it looks like mega-bikeshedding; a huge amount of time and\neffort going behind a non-functional variable rename (and the best\npart? the rename isn't getting us a \"better\" name; just a \"historical\"\nname).  But whatever.\n"},{"id":"220244","messageId":"7v1u8amovl.fsf@alter.siamese.dyndns.org","threadId":"34042","inReplyTo":"CALkWK0kvSvK=bFJo13=yw+2EZmGyv46_DUEZaniYGCe7D_V2wg@mail.gmail.com","subject":"Re: What's cooking in git.git (Jun 2013, #03; Thu, 6)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2013-06-10T07:00:30Z","receivedAt":"2013-06-10T07:00:30Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Ramkumar Ramachandra <artagnon@gmail.com> writes:\n\n> Junio C Hamano wrote:\n>>     Revert 77c1305 and 3c3b46b\n>\n> The core of the argument seems to be that\n> __git_complete_revlist_file() is a misleading name for the completion\n> done by archive and ls-tree, but __git_complete_file() is somehow a\n> less misleading name?  Irrespective of what the valid completions of\n> the various commands are, I want to know which completion function\n> will be _used_ when I'm reading the script.  And that is\n> __git_complete_revlist_file().\n>\n> To me, it looks like mega-bikeshedding; a huge amount of time and\n> effort going behind a non-functional variable rename (and the best\n> part? the rename isn't getting us a \"better\" name; just a \"historical\"\n> name).  But whatever.\n\nTo me the most important part is that we have two separate functions\nthat are used consistently by how the completion is to be done for\ntheir users.  The complete-file variant can then lose the A..B range\ncompletion, and then be given a better name than FILE to express\nwhat it does if somebody can find one.  When it happens, the same\nbetter name should be used to rename complete-revlist-FILE by\nreplacing the \"FILE\" part.\n\nI initially thought that FILE referred to the pathspecs (i.e. the\nlast part in \"log <rev> <file>\"), and felt it was strange to call it\nFILE.  Perhaps that (i.e. it not being pathspec) is what you find it\nmisnamed).\n\nBut it turns out that in the context of these functions it refers to\n\"what users consider paths in objects stored in the object database\"\n(as opposed to working tree paths).  That is what ls-tree would take\n(i.e. <tree-ish> and <tree-ish>:<path>).  And I do not offhand think\nof a better name myself to strongly oppose to using the word FILE to\nrefer to what it does.\n"},{"id":"220249","messageId":"CALkWK0nLa5tZfNvjYNAGx6zuA=49JSwZttCLhAE8+3ifBOA1FA@mail.gmail.com","threadId":"34042","inReplyTo":"7v1u8amovl.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Jun 2013, #03; Thu, 6)","fromName":"Ramkumar Ramachandra","fromEmail":"artagnon@gmail.com","sentAt":"2013-06-10T07:41:44Z","receivedAt":"2013-06-10T07:41:44Z","isPatch":false,"sender":{"key":"r@artagnon.com","avatar":"https://avatars.githubusercontent.com/u/37226?v=4"},"body":"Junio C Hamano wrote:\n> But it turns out that in the context of these functions it refers to\n> \"what users consider paths in objects stored in the object database\"\n> (as opposed to working tree paths).  That is what ls-tree would take\n> (i.e. <tree-ish> and <tree-ish>:<path>).  And I do not offhand think\n> of a better name myself to strongly oppose to using the word FILE to\n> refer to what it does.\n\n__git_complete_treeish().  Write a new patch with a proper comment\nsaying why it is aliased to __git_complete_revlist_file().\n"}]}