{"thread":{"id":"34112","subject":"What's cooking in git.git (Jun 2013, #04; Tue, 11)","startedAt":"2013-06-11T22:34:32Z","lastAt":"2013-06-12T22:02:43Z","messageCount":6,"participants":["Junio C Hamano","Felipe Contreras","Jakub Narebski","Jeff King"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"220567","messageId":"7vwqq05laf.fsf@alter.siamese.dyndns.org","threadId":"34112","inReplyTo":null,"subject":"What's cooking in git.git (Jun 2013, #04; Tue, 11)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2013-06-11T22:34:32Z","receivedAt":"2013-06-11T22:34:32Z","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[Graduated to \"master\"]\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\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\n* cm/gitweb-project-list-persistent-cgi-fix (2013-06-07) 1 commit\n  (merged to 'next' on 2013-06-07 at b16ca1f)\n + gitweb: fix problem causing erroneous project list\n\n \"gitweb\" forgot to clear a global variable $search_regexp upon each\n request, mistakenly carrying over the previous search to a new one\n when used as a persistent CGI.\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\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\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\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\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\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\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\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\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\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\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\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\n* rr/maint-fetch-tag-doc-asterisks (2013-06-07) 1 commit\n  (merged to 'next' on 2013-06-07 at bfa4e7b)\n + fetch-options.txt: prevent a wildcard refspec from getting misformatted\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\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\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\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\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--------------------------------------------------\n[New Topics]\n\n* jc/topo-author-date-sort (2013-06-11) 4 commits\n - log: --author-date-order\n - sort-in-topological-order: use prio-queue\n - prio-queue: priority queue of pointers to structs\n - toposort: rename \"lifo\" field\n (this branch uses jk/commit-info-slab; is tangled with jc/show-branch.)\n\n \"git log\" learned the \"--author-date-order\" option, with which the\n output is topologically sorted and commits in parallel histories\n are shown intermixed together based on the author timestamp.\n\n Will merge to 'next'.\n\n\n* fc/makefile (2013-06-09) 4 commits\n - Makefile: use $^ to avoid listing prerequisites on the command line\n - build: do not install git-remote-testgit\n - build: generate and clean test scripts\n - Merge branch 'js/transport-helper-error-reporting-fix' into fc/makefile\n\n Will merge to 'next'.\n\n\n* fc/show-non-empty-errors-in-test (2013-06-09) 1 commit\n - test: test_must_be_empty helper\n\n Will merge to 'next'.\n\n\n* nd/traces (2013-06-09) 2 commits\n - git.txt: document GIT_TRACE_PACKET\n - core: use env variable instead of config var to turn on logging pack access\n\n Will merge to 'next'.\n\n\n* rr/complete-difftool-fixup (2013-06-09) 2 commits\n  (merged to 'next' on 2013-06-11 at fe91170)\n + completion: show can take both revlist and paths\n + completion: difftool takes both revs and files\n (this branch is tangled with rr/complete-difftool.)\n\n Replaces rr/complete-difftool.\n\n Will merge to 'master'.\n\n\n* rr/triangle-push-fix (2013-06-09) 4 commits\n - t/push-default: test pushdefault with all modes\n - t/push-default: generalize test_push_{success, commit}\n - push: make upstream, simple work with pushdefault\n - t/push-default: remove redundant test_config lines\n\n Tries to apply the 'push.default = upstream' semantics to\n triangular workflow where it does not quite apply.\n\n Will be worked further.\n\n\n* rs/discard-index-discard-array (2013-06-09) 2 commits\n - read-cache: free cache in discard_index\n - read-cache: add simple performance test\n\n Will merge to 'next'.\n\n\n* cm/remote-mediawiki (2013-06-11) 1 commit\n - git-remote-mediawiki: display message when launched directly\n\n Will merge to 'next'.\n\n\n* jg/status-config (2013-06-11) 2 commits\n - status:introduce status.branch to enable --branch by default\n - status: introduce status.short to enable --short by default\n\n Will merge to 'next'.\n\n\n* mh/loose-refs-race-with-pack-ref (2013-06-11) 4 commits\n - resolve_ref_unsafe(): close race condition reading loose refs\n - resolve_ref_unsafe(): nest reference-reading code in an infinite loop\n - resolve_ref_unsafe(): handle the case of an SHA-1 within loop\n - resolve_ref_unsafe(): extract function handle_missing_loose_ref()\n\n--------------------------------------------------\n[Stalled]\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* 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* 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 Seems to break some tests in a trivial and obvious way.\n\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* jc/show-branch (2013-06-07) 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; is tangled with jc/topo-author-date-sort.)\n\n Waiting for the final step to lift the hard-limit before sending it out.\n\n--------------------------------------------------\n[Cooking]\n\n* jk/commit-info-slab (2013-06-07) 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 and jc/topo-author-date-sort.)\n\n Technology demonstration to show a way we could add custom\n information to represent unbound number of flag bits etc. to commit\n objects.\n\n Will be in 'next' with jc/topo-author-date-sort.\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 Will discard the top 3, merge the rest to 'next'.\n\n\n* js/test-ln-s-add (2013-06-07) 10 commits\n - t4011: remove SYMLINKS prerequisite\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 - 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_add\n - t3010: modernize style\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 Will merge to 'next'.\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-09) 4 commits\n  (merged to 'next' on 2013-06-09 at 2ee40cb)\n + Revert 77c1305 and 3c3b46b\n  (merged to 'next' on 2013-06-07 at 90e5f58)\n + completion: add deprecated __git_complete_file ()\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 (this branch is tangled with rr/complete-difftool-fixup.)\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 Reverted, to be replaced with rr/complete-difftool-fixup.\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-07) 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 merge to 'next'.\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 Will merge to 'master'.\n\n\n* ap/diff-ignore-blank-lines (2013-06-10) 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\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* 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-09) 5 commits\n - contrib: related: print the amount of involvement\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\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 Will merge to 'master'.\n\n\n* mm/color-auto-default (2013-06-10) 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.\n\n Will merge to 'next'.\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":"220572","messageId":"CAMP44s0MmiyWX95HGh52FiQ46n2BB_Onzt-71dYYJCyYZHoHFQ@mail.gmail.com","threadId":"34112","inReplyTo":"7vwqq05laf.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Jun 2013, #04; Tue, 11)","fromName":"Felipe Contreras","fromEmail":"felipe.contreras@gmail.com","sentAt":"2013-06-11T23:24:25Z","receivedAt":"2013-06-11T23:24:25Z","isPatch":false,"sender":{"key":"felipe.contreras@gmail.com","avatar":"https://avatars.githubusercontent.com/u/8358?v=4"},"body":"On Tue, Jun 11, 2013 at 5:34 PM, Junio C Hamano <gitster@pobox.com> wrote:\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\nWaiting for a reroll? This is the first time I hear you are not going\nto merge these.\n\nYou say actions have consequences... well, you are right, you can stop\nwaiting for a reroll.\n\n-- \nFelipe Contreras\n"},{"id":"220573","messageId":"7vli6g5i80.fsf@alter.siamese.dyndns.org","threadId":"34112","inReplyTo":"CAMP44s0MmiyWX95HGh52FiQ46n2BB_Onzt-71dYYJCyYZHoHFQ@mail.gmail.com","subject":"Re: What's cooking in git.git (Jun 2013, #04; Tue, 11)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2013-06-11T23:40:47Z","receivedAt":"2013-06-11T23:40:47Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Felipe Contreras <felipe.contreras@gmail.com> writes:\n\n> On Tue, Jun 11, 2013 at 5:34 PM, Junio C Hamano <gitster@pobox.com> wrote:\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> Waiting for a reroll? This is the first time I hear you are not going\n> to merge these.\n>\n> You say actions have consequences... well, you are right, you can stop\n> waiting for a reroll.\n\nIt has been listed in that state in the previous issue #03 as well.\nAnd if you do not want to reroll, that is fine.  We can discard it\nfor now and the next person who finds the need to can redo the\nchange.\n\nWill discard the topic, then.\n"},{"id":"220610","messageId":"loom.20130612T154959-145@post.gmane.org","threadId":"34112","inReplyTo":"7vwqq05laf.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Jun 2013, #04; Tue, 11)","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2013-06-12T13:56:20Z","receivedAt":"2013-06-12T13:56:20Z","isPatch":false,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"Junio C Hamano <gitster <at> pobox.com> writes:\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>  Will merge to 'master'.\n\nWhat about contrib/blameview by Aneesh Kumar K.V <aneesh.kumar@gmail.com>\nand Jeff King <peff@peff.net>?\n\nIt is also 6 years old, uses GTK 2.x (via Gtk2 Perl bindings), \"git gui \nblame\" also uses incremental mode moreover comparing blame with and without \ncode movement detection.\n\nThough this was intended more as a demo of using incremental blame... (c.f. \ncontrib/examples).\n\n-- \nJakub Narębski\n(via GMane)\n"},{"id":"220663","messageId":"20130612194956.GC4898@sigill.intra.peff.net","threadId":"34112","inReplyTo":"loom.20130612T154959-145@post.gmane.org","subject":"Re: What's cooking in git.git (Jun 2013, #04; Tue, 11)","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2013-06-12T19:49:56Z","receivedAt":"2013-06-12T19:49:56Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Wed, Jun 12, 2013 at 01:56:20PM +0000, Jakub Narebski wrote:\n\n> Junio C Hamano <gitster <at> pobox.com> writes:\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> >  Will merge to 'master'.\n> \n> What about contrib/blameview by Aneesh Kumar K.V <aneesh.kumar@gmail.com>\n> and Jeff King <peff@peff.net>?\n\nYeah, I mentioned it earlier in the thread as something that I consider\nclutter at this point (but somehow the thread drifted away from contrib/\nand into other topics, and I forgot).\n\nHere is a patch.\n\n-- >8 --\nSubject: [PATCH] contrib: drop blameview/ directory\n\nBlameview was a quick-and-dirty demonstration of how blame's\nincremental output could be used in an interface. These days\none can find much better (and less ugly!) demonstrations in\n\"git gui blame\" and \"tig blame\".\n\nThe only advantage blameview has is that its code is perhaps\nsimpler to read. However, that is balanced by the fact that\nit probably has bugs, as nobody uses it nor has touched the\ncode in 6 years. An implementor is probably better off just\nreading the \"incremental output\" section of \"man git-blame\".\n\nSigned-off-by: Jeff King <peff@peff.net>\n---\n contrib/blameview/README         |   9 ---\n contrib/blameview/blameview.perl | 155 ---------------------------------------\n 2 files changed, 164 deletions(-)\n delete mode 100644 contrib/blameview/README\n delete mode 100755 contrib/blameview/blameview.perl\n\ndiff --git a/contrib/blameview/README b/contrib/blameview/README\ndeleted file mode 100644\nindex fada5ce..0000000\n--- a/contrib/blameview/README\n+++ /dev/null\n@@ -1,9 +0,0 @@\n-This is a sample program to use 'git-blame --incremental', based\n-on this message.\n-\n-From: Jeff King <peff@peff.net>\n-Subject: Re: More precise tag following\n-To: Linus Torvalds <torvalds@linux-foundation.org>\n-Cc: git@vger.kernel.org\n-Date: Sat, 27 Jan 2007 18:52:38 -0500\n-Message-ID: <20070127235238.GA28706@coredump.intra.peff.net>\ndiff --git a/contrib/blameview/blameview.perl b/contrib/blameview/blameview.perl\ndeleted file mode 100755\nindex 1dec001..0000000\n--- a/contrib/blameview/blameview.perl\n+++ /dev/null\n@@ -1,155 +0,0 @@\n-#!/usr/bin/perl\n-\n-use Gtk2 -init;\n-use Gtk2::SimpleList;\n-\n-my $hash;\n-my $fn;\n-if ( @ARGV == 1 ) {\n-\t$hash = \"HEAD\";\n-\t$fn = shift;\n-} elsif ( @ARGV == 2 ) {\n-\t$hash = shift;\n-\t$fn = shift;\n-} else {\n-\tdie \"Usage blameview [<rev>] <filename>\";\n-}\n-\n-Gtk2::Rc->parse_string(<<'EOS');\n-style \"treeview_style\"\n-{\n-  GtkTreeView::vertical-separator = 0\n-}\n-class \"GtkTreeView\" style \"treeview_style\"\n-EOS\n-\n-my $window = Gtk2::Window->new('toplevel');\n-$window->signal_connect(destroy => sub { Gtk2->main_quit });\n-my $vpan = Gtk2::VPaned->new();\n-$window->add($vpan);\n-my $scrolled_window = Gtk2::ScrolledWindow->new;\n-$vpan->pack1($scrolled_window, 1, 1);\n-my $fileview = Gtk2::SimpleList->new(\n-    'Commit' => 'text',\n-    'FileLine' => 'text',\n-    'Data' => 'text'\n-);\n-$scrolled_window->add($fileview);\n-$fileview->get_column(0)->set_spacing(0);\n-$fileview->set_size_request(1024, 768);\n-$fileview->set_rules_hint(1);\n-$fileview->signal_connect (row_activated => sub {\n-\t\tmy ($sl, $path, $column) = @_;\n-\t\tmy $row_ref = $sl->get_row_data_from_path ($path);\n-\t\tsystem(\"blameview @$row_ref[0]~1 $fn &\");\n-\t\t});\n-\n-my $commitwindow = Gtk2::ScrolledWindow->new();\n-$commitwindow->set_policy ('GTK_POLICY_AUTOMATIC','GTK_POLICY_AUTOMATIC');\n-$vpan->pack2($commitwindow, 1, 1);\n-my $commit_text = Gtk2::TextView->new();\n-my $commit_buffer = Gtk2::TextBuffer->new();\n-$commit_text->set_buffer($commit_buffer);\n-$commitwindow->add($commit_text);\n-\n-$fileview->signal_connect (cursor_changed => sub {\n-\t\tmy ($sl) = @_;\n-\t\tmy ($path, $focus_column) = $sl->get_cursor();\n-\t\tmy $row_ref = $sl->get_row_data_from_path ($path);\n-\t\tmy $c_fh;\n-\t\topen($c_fh,  '-|', \"git cat-file commit @$row_ref[0]\")\n-\t\t\t\t\tor die \"unable to find commit @$row_ref[0]\";\n-\t\tmy @buffer = <$c_fh>;\n-\t\t$commit_buffer->set_text(\"@buffer\");\n-\t\tclose($c_fh);\n-\t\t});\n-\n-my $fh;\n-open($fh, '-|', \"git cat-file blob $hash:$fn\")\n-  or die \"unable to open $fn: $!\";\n-\n-while(<$fh>) {\n-  chomp;\n-  $fileview->{data}->[$.] = ['HEAD', \"$fn:$.\", $_];\n-}\n-\n-my $blame;\n-open($blame, '-|', qw(git blame --incremental --), $fn, $hash)\n-    or die \"cannot start git-blame $fn\";\n-\n-Glib::IO->add_watch(fileno($blame), 'in', \\&read_blame_line);\n-\n-$window->show_all;\n-Gtk2->main;\n-exit 0;\n-\n-my %commitinfo = ();\n-\n-sub flush_blame_line {\n-\tmy ($attr) = @_;\n-\n-\treturn unless defined $attr;\n-\n-\tmy ($commit, $s_lno, $lno, $cnt) =\n-\t    @{$attr}{qw(COMMIT S_LNO LNO CNT)};\n-\n-\tmy ($filename, $author, $author_time, $author_tz) =\n-\t    @{$commitinfo{$commit}}{qw(FILENAME AUTHOR AUTHOR-TIME AUTHOR-TZ)};\n-\tmy $info = $author . ' ' . format_time($author_time, $author_tz);\n-\n-\tfor(my $i = 0; $i < $cnt; $i++) {\n-\t\t@{$fileview->{data}->[$lno+$i-1]}[0,1,2] =\n-\t\t(substr($commit, 0, 8), $filename . ':' . ($s_lno+$i));\n-\t}\n-}\n-\n-my $buf;\n-my $current;\n-sub read_blame_line {\n-\n-\tmy $r = sysread($blame, $buf, 1024, length($buf));\n-\tdie \"I/O error\" unless defined $r;\n-\n-\tif ($r == 0) {\n-\t\tflush_blame_line($current);\n-\t\t$current = undef;\n-\t\treturn 0;\n-\t}\n-\n-\twhile ($buf =~ s/([^\\n]*)\\n//) {\n-\t\tmy $line = $1;\n-\n-\t\tif (($commit, $s_lno, $lno, $cnt) =\n-\t\t    ($line =~ /^([0-9a-f]{40}) (\\d+) (\\d+) (\\d+)$/)) {\n-\t\t\tflush_blame_line($current);\n-\t\t\t$current = +{\n-\t\t\t\tCOMMIT => $1,\n-\t\t\t\tS_LNO => $2,\n-\t\t\t\tLNO => $3,\n-\t\t\t\tCNT => $4,\n-\t\t\t};\n-\t\t\tnext;\n-\t\t}\n-\n-\t\t# extended attribute values\n-\t\tif ($line =~ /^(author|author-mail|author-time|author-tz|committer|committer-mail|committer-time|committer-tz|summary|filename) (.*)$/) {\n-\t\t\tmy $commit = $current->{COMMIT};\n-\t\t\t$commitinfo{$commit}{uc($1)} = $2;\n-\t\t\tnext;\n-\t\t}\n-\t}\n-\treturn 1;\n-}\n-\n-sub format_time {\n-  my $time = shift;\n-  my $tz = shift;\n-\n-  my $minutes = $tz < 0 ? 0-$tz : $tz;\n-  $minutes = ($minutes / 100)*60 + ($minutes % 100);\n-  $minutes = $tz < 0 ? 0-$minutes : $minutes;\n-  $time += $minutes * 60;\n-  my @t = gmtime($time);\n-  return sprintf('%04d-%02d-%02d %02d:%02d:%02d %s',\n-\t\t $t[5] + 1900, @t[4,3,2,1,0], $tz);\n-}\n-- \n1.8.3.rc2.14.g7eee6b3\n"},{"id":"220679","messageId":"7v8v2f0yyk.fsf@alter.siamese.dyndns.org","threadId":"34112","inReplyTo":"20130612194956.GC4898@sigill.intra.peff.net","subject":"Re: What's cooking in git.git (Jun 2013, #04; Tue, 11)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2013-06-12T22:02:43Z","receivedAt":"2013-06-12T22:02:43Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Jeff King <peff@peff.net> writes:\n\n> On Wed, Jun 12, 2013 at 01:56:20PM +0000, Jakub Narebski wrote:\n>\n>> Junio C Hamano <gitster <at> pobox.com> writes:\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>> >  Will merge to 'master'.\n>> \n>> What about contrib/blameview by Aneesh Kumar K.V <aneesh.kumar@gmail.com>\n>> and Jeff King <peff@peff.net>?\n>\n> Yeah, I mentioned it earlier in the thread as something that I consider\n> clutter at this point (but somehow the thread drifted away from contrib/\n> and into other topics, and I forgot).\n>\n> Here is a patch.\n\nThanks.\n"}]}