{"thread":{"id":"28169","subject":"What's cooking in git.git (Aug 2011, #05; Fri, 19)","startedAt":"2011-08-19T22:19:44Z","lastAt":"2011-08-20T12:11:14Z","messageCount":2,"participants":["Junio C Hamano","Nguyen Thai Ngoc Duy"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"173892","messageId":"7vsjox11tr.fsf@alter.siamese.dyndns.org","threadId":"28169","inReplyTo":null,"subject":"What's cooking in git.git (Aug 2011, #05; Fri, 19)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2011-08-19T22:19:44Z","receivedAt":"2011-08-19T22:19:44Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Here are the topics that have been cooking.  Commits prefixed with '-' are\nonly in 'pu' while commits prefixed with '+' are in 'next'.\n\nThere are a few 'fixup!' commits queued in topics still in 'pu', so that\nauthors have a choice to just say \"that fix looks good, squash it in!\"\ninstead of going through an extra round.\n\n--------------------------------------------------\n[New Topics]\n\n* jc/traverse-commit-list (2011-08-17) 3 commits\n - revision.c: update show_object_with_name() without using malloc()\n - revision.c: add show_object_with_name() helper function\n - rev-list: fix finish_object() call\n\n* rc/diff-cleanup-records (2011-08-17) 2 commits\n - Merge branch 'rc/histogram-diff' into HEAD\n - xdiff/xprepare: improve O(n*m) performance in xdl_cleanup_records()\n\n* fk/make-auto-header-dependencies (2011-08-18) 1 commit\n - Makefile: Use computed header dependencies if the compiler supports it\n\n* jk/color-and-pager (2011-08-18) 10 commits\n - want_color: automatically fallback to color.ui\n - diff: don't load color config in plumbing\n - config: refactor get_colorbool function\n - color: delay auto-color decision until point of use\n - git_config_colorbool: refactor stdout_is_tty handling\n - diff: refactor COLOR_DIFF from a flag into an int\n - setup_pager: set GIT_PAGER_IN_USE\n - t7006: use test_config helpers\n - test-lib: add helper functions for config\n - t7006: modernize calls to unset\n (this branch is used by jk/pager-with-alias.)\n\nLooked reasonable.\nWill merge to \"next\".\n\n* jk/pager-with-alias (2011-08-18) 2 commits\n - support pager.* for aliases\n - support pager.* for external commands\n (this branch uses jk/color-and-pager.)\n\n* nd/decorate-grafts (2011-08-19) 5 commits\n - log: decorate \"replaced\" on to replaced commits\n - log: decorate grafted commits with \"grafted\"\n - Move write_shallow_commits to fetch-pack.c\n - Add for_each_commit_graft() to iterate all grafts\n - decoration: do not mis-decorate refs with same prefix\n\nLooked reasonable.\nWill merge to \"next\".\n\n* va/p4-branch-import (2011-08-19) 4 commits\n - git-p4: Add simple test case for branch import\n - git-p4: Allow branch definition with git config\n - git-p4: Allow filtering Perforce branches by user\n - git-p4: Correct branch base depot path detection\n (this branch uses va/p4-rename-copy.)\n\n* va/p4-rename-copy (2011-08-18) 4 commits\n - git-p4: Add test case for copy detection.\n - git-p4: Add test case for rename detection.\n - git-p4: Add description of rename/copy detection options.\n - git-p4: Allow setting rename/copy detection threshold.\n (this branch is used by va/p4-branch-import.)\n\n* da/difftool-mergtool-refactor (2011-08-19) 4 commits\n - mergetools/meld: Use '--output' when available\n - mergetool--lib: Refactor tools into separate files\n - mergetool--lib: Make style consistent with git\n - difftool--helper: Make style consistent with git\n\n* mg/branch-set-upstream-previous (2011-08-19) 1 commit\n - branch.c: use the parsed branch name\n\n--------------------------------------------------\n[Graduated to \"master\"]\n\n* cb/maint-exec-error-report (2011-08-01) 2 commits\n  (merged to 'next' on 2011-08-05 at 2764424)\n + notice error exit from pager\n + error_routine: use parent's stderr if exec fails\n\n* cb/maint-quiet-push (2011-08-08) 2 commits\n  (merged to 'next' on 2011-08-08 at 917d73b)\n + receive-pack: do not overstep command line argument array\n  (merged to 'next' on 2011-08-01 at 87df938)\n + propagate --quiet to send-pack/receive-pack\n\n* db/am-skip-blank-at-the-beginning (2011-08-11) 1 commit\n  (merged to 'next' on 2011-08-11 at 3637843)\n + am: ignore leading whitespace before patch\n\n* jc/maint-combined-diff-work-tree (2011-08-04) 1 commit\n  (merged to 'next' on 2011-08-05 at 976a4d4)\n + diff -c/--cc: do not mistake \"resolved as deletion\" as \"use working tree\"\n\n* jc/maint-smart-http-race-upload-pack (2011-08-08) 1 commit\n  (merged to 'next' on 2011-08-11 at 3f24b64)\n + helping smart-http/stateless-rpc fetch race\n\n* js/bisect-no-checkout (2011-08-09) 11 commits\n  (merged to 'next' on 2011-08-11 at 6c94a45)\n + bisect: add support for bisecting bare repositories\n + bisect: further style nitpicks\n + bisect: replace \"; then\" with \"\\n<tab>*then\"\n + bisect: cleanup whitespace errors in git-bisect.sh.\n + bisect: add documentation for --no-checkout option.\n + bisect: add tests for the --no-checkout option.\n + bisect: introduce --no-checkout support into porcelain.\n + bisect: introduce support for --no-checkout option.\n + bisect: add tests to document expected behaviour in presence of broken trees.\n + bisect: use && to connect statements that are deferred with eval.\n + bisect: move argument parsing before state modification.\n\n* js/ref-namespaces (2011-07-21) 5 commits\n  (merged to 'next' on 2011-07-25 at 5b7dcfe)\n + ref namespaces: tests\n + ref namespaces: documentation\n + ref namespaces: Support remote repositories via upload-pack and receive-pack\n + ref namespaces: infrastructure\n + Fix prefix handling in ref iteration functions\n\n* js/sh-style (2011-08-05) 2 commits\n  (merged to 'next' on 2011-08-11 at 4a4c22c)\n + filter-branch.sh: de-dent usage string\n + misc-sh: fix up whitespace in some other .sh files.\n\n* ma/am-exclude (2011-08-09) 2 commits\n  (merged to 'next' on 2011-08-11 at cf0ba4d)\n + am: Document new --exclude=<path> option\n  (merged to 'next' on 2011-08-05 at 658e57c)\n + am: pass exclude down to apply\n\n* mh/check-attr-listing (2011-08-04) 23 commits\n  (merged to 'next' on 2011-08-11 at f73ad50)\n + Rename git_checkattr() to git_check_attr()\n + git-check-attr: Fix command-line handling to match docs\n + git-check-attr: Drive two tests using the same raw data\n + git-check-attr: Add an --all option to show all attributes\n + git-check-attr: Error out if no pathnames are specified\n + git-check-attr: Process command-line args more systematically\n + git-check-attr: Handle each error separately\n + git-check-attr: Extract a function error_with_usage()\n + git-check-attr: Introduce a new variable\n + git-check-attr: Extract a function output_attr()\n + Allow querying all attributes on a file\n + Remove redundant check\n + Remove redundant call to bootstrap_attr_stack()\n + Extract a function collect_all_attrs()\n + Teach prepare_attr_stack() to figure out dirlen itself\n + git-check-attr: Use git_attr_name()\n + Provide access to the name attribute of git_attr\n + git-check-attr: Add tests of command-line parsing\n + git-check-attr: Add missing \"&&\"\n + Disallow the empty string as an attribute name\n + Remove anachronism from comment\n + doc: Correct git_attr() calls in example code\n + doc: Add a link from gitattributes(5) to git-check-attr(1)\n (this branch is used by mh/check-attr-relative.)\n\n* mh/check-attr-relative (2011-08-04) 6 commits\n  (merged to 'next' on 2011-08-11 at f94550c)\n + test-path-utils: Add subcommand \"prefix_path\"\n + test-path-utils: Add subcommand \"absolute_path\"\n + git-check-attr: Normalize paths\n + git-check-attr: Demonstrate problems with relative paths\n + git-check-attr: Demonstrate problems with unnormalized paths\n + git-check-attr: test that no output is written to stderr\n (this branch uses mh/check-attr-listing.)\n\n* rc/histogram-diff (2011-08-08) 12 commits\n  (merged to 'next' on 2011-08-11 at 684dfd1)\n + xdiff/xhistogram: drop need for additional variable\n + xdiff/xhistogram: rely on xdl_trim_ends()\n + xdiff/xhistogram: rework handling of recursed results\n + xdiff: do away with xdl_mmfile_next()\n  (merged to 'next' on 2011-08-03 at f9e2328)\n + Make test number unique\n  (merged to 'next' on 2011-07-25 at 3351028)\n + xdiff/xprepare: use a smaller sample size for histogram diff\n + xdiff/xprepare: skip classification\n + teach --histogram to diff\n + t4033-diff-patience: factor out tests\n + xdiff/xpatience: factor out fall-back-diff function\n + xdiff/xprepare: refactor abort cleanups\n + xdiff/xprepare: use memset()\n\n--------------------------------------------------\n[Stalled]\n\n* jc/merge-reword (2011-05-25) 2 commits\n - merge: mark the final \"Merge made by...\" message for l10n\n - merge: reword the final message\n\nProbably the topmost commit should be dropped.\n\n* nk/branch-v-abbrev (2011-07-01) 1 commit\n - branch -v: honor core.abbrev\n\nPerhaps needs an updated commit log message?\n\n* jh/receive-count-limit (2011-05-23) 10 commits\n - receive-pack: Allow server to refuse pushes with too many objects\n - pack-objects: Estimate pack size; abort early if pack size limit is exceeded\n - send-pack/receive-pack: Allow server to refuse pushing too large packs\n - pack-objects: Allow --max-pack-size to be used together with --stdout\n - send-pack/receive-pack: Allow server to refuse pushes with too many commits\n - pack-objects: Teach new option --max-commit-count, limiting #commits in pack\n - receive-pack: Prepare for addition of the new 'limit-*' family of capabilities\n - Tighten rules for matching server capabilities in server_supports()\n - send-pack: Attempt to retrieve remote status even if pack-objects fails\n - Update technical docs to reflect side-band-64k capability in receive-pack\n\nWould need another round to separate per-pack and per-session limits.\n\n* jm/mergetool-pathspec (2011-06-22) 2 commits\n - mergetool: Don't assume paths are unmerged\n - mergetool: Add tests for filename with whitespace\n\nI think this is a good idea, but it probably needs a re-roll.\nCf. $gmane/176254, 176255, 166256\n\n* jk/generation-numbers (2011-07-14) 7 commits\n - limit \"contains\" traversals based on commit generation\n - check commit generation cache validity against grafts\n - pretty: support %G to show the generation number of a commit\n - commit: add commit_generation function\n - add metadata-cache infrastructure\n - decorate: allow storing values instead of pointers\n - Merge branch 'jk/tag-contains-ab' (early part) into HEAD\n\nThe initial \"tag --contains\" de-pessimization without need for generation\nnumbers is already in; backburnered.\n\n* sr/transport-helper-fix-rfc (2011-07-19) 2 commits\n - t5800: point out that deleting branches does not work\n - t5800: document inability to push new branch with old content\n\n* po/cygwin-backslash (2011-08-05) 2 commits\n - On Cygwin support both UNIX and DOS style path-names\n - git-compat-util: add generic find_last_dir_sep that respects is_dir_sep\n\nI think a further refactoring (no, not my suggestion) was offered?\n\n--------------------------------------------------\n[Cooking]\n\n* di/fast-import-doc (2011-08-17) 1 commit\n - doc/fast-import: document feature import-marks-if-exists\n\nComments from fast-import folks?\n\n* di/fast-import-deltified-tree (2011-08-14) 2 commits\n - fast-import: prevent producing bad delta\n - fast-import: add a test for tree delta base corruption\n\nComments from fast-import folks?\n\n* di/fast-import-ident (2011-08-11) 5 commits\n - fsck: improve committer/author check\n - fsck: add a few committer name tests\n - fast-import: check committer name more strictly\n - fast-import: don't fail on omitted committer name\n - fast-import: add input format tests\n\nComments from fast-import folks?\n\n* di/parse-options-split (2011-08-11) 2 commits\n - Reduce parse-options.o dependencies\n - parse-options: export opterr, optbug\n\nLooked reasonable.\nWill merge to \"next\".\n\n* mh/attr (2011-08-14) 7 commits\n - Unroll the loop over passes\n - Change while loop into for loop\n - Determine the start of the states outside of the pass loop\n - Change parse_attr() to take a pointer to struct attr_state\n - Increment num_attr in parse_attr_line(), not parse_attr()\n - Document struct match_attr\n - Add a file comment\n\nAll looked reasonable.\nWill merge to \"next\".\n\n* mh/iterate-refs (2011-08-14) 6 commits\n - Retain caches of submodule refs\n - Store the submodule name in struct cached_refs\n - Allocate cached_refs objects dynamically\n - Change the signature of read_packed_refs()\n - Access reference caches only through new function get_cached_refs()\n - Extract a function clear_cached_refs()\n\nI did not see anything wrong per-se, but it was unclear what the benefit\nof these changes are. I probably need to read it once again.\n\n* jn/plug-empty-tree-leak (2011-08-16) 2 commits\n - merge-recursive: take advantage of hardcoded empty tree\n - revert: plug memory leak in \"cherry-pick root commit\" codepath\n\nBoth looked reasonable.\nWill merge to \"next\".\n\n* ac/describe-dirty-refresh (2011-08-11) 1 commit\n - describe: Refresh the index when run with --dirty\n\nWill merge to \"next\", but needs Sign-off.\n\n* en/merge-recursive-2 (2011-08-14) 57 commits\n - merge-recursive: Don't re-sort a list whose order we depend upon\n - merge-recursive: Fix virtual merge base for rename/rename(1to2)/add-dest\n - t6036: criss-cross + rename/rename(1to2)/add-dest + simple modify\n - merge-recursive: Avoid unnecessary file rewrites\n - t6022: Additional tests checking for unnecessary updates of files\n - merge-recursive: Fix spurious 'refusing to lose untracked file...' messages\n - t6022: Add testcase for spurious \"refusing to lose untracked\" messages\n - t3030: fix accidental success in symlink rename\n - merge-recursive: Fix working copy handling for rename/rename/add/add\n - merge-recursive: add handling for rename/rename/add-dest/add-dest\n - merge-recursive: Have conflict_rename_delete reuse modify/delete code\n - merge-recursive: Make modify/delete handling code reusable\n - merge-recursive: Consider modifications in rename/rename(2to1) conflicts\n - merge-recursive: Create function for merging with branchname:file markers\n - merge-recursive: Record more data needed for merging with dual renames\n - merge-recursive: Defer rename/rename(2to1) handling until process_entry\n - merge-recursive: Small cleanups for conflict_rename_rename_1to2\n - merge-recursive: Fix rename/rename(1to2) resolution for virtual merge base\n - merge-recursive: Introduce a merge_file convenience function\n - merge-recursive: Fix modify/delete resolution in the recursive case\n - merge-recursive: When we detect we can skip an update, actually skip it\n - merge-recursive: Provide more info in conflict markers with file renames\n - merge-recursive: Cleanup and consolidation of rename_conflict_info\n - merge-recursive: Consolidate process_entry() and process_df_entry()\n - merge-recursive: Improve handling of rename target vs. directory addition\n - merge-recursive: Add comments about handling rename/add-source cases\n - merge-recursive: Make dead code for rename/rename(2to1) conflicts undead\n - merge-recursive: Fix deletion of untracked file in rename/delete conflicts\n - merge-recursive: Split update_stages_and_entry; only update stages at end\n - merge-recursive: Allow make_room_for_path() to remove D/F entries\n - string-list: Add API to remove an item from an unsorted list\n - merge-recursive: Split was_tracked() out of would_lose_untracked()\n - merge-recursive: Save D/F conflict filenames instead of unlinking them\n - merge-recursive: Fix code checking for D/F conflicts still being present\n - merge-recursive: Fix sorting order and directory change assumptions\n - merge-recursive: Fix recursive case with D/F conflict via add/add conflict\n - merge-recursive: Avoid working directory changes during recursive case\n - merge-recursive: Remember to free generated unique path names\n - merge-recursive: Consolidate different update_stages functions\n - merge-recursive: Mark some diff_filespec struct arguments const\n - merge-recursive: Correct a comment\n - merge-recursive: Make BUG message more legible by adding a newline\n - t6022: Add testcase for merging a renamed file with a simple change\n - t6022: New tests checking for unnecessary updates of files\n - t6022: Remove unnecessary untracked files to make test cleaner\n - t6036: criss-cross + rename/rename(1to2)/add-source + modify/modify\n - t6036: criss-cross w/ rename/rename(1to2)/modify+rename/rename(2to1)/modify\n - t6036: tests for criss-cross merges with various directory/file conflicts\n - t6036: criss-cross with weird content can fool git into clean merge\n - t6036: Add differently resolved modify/delete conflict in criss-cross test\n - t6042: Add failing testcases for rename/rename/add-{source,dest} conflicts\n - t6042: Ensure rename/rename conflicts leave index and workdir in sane state\n - t6042: Add tests for content issues with modify/rename/directory conflicts\n - t6042: Add a testcase where undetected rename causes silent file deletion\n - t6042: Add a pair of cases where undetected renames cause issues\n - t6042: Add failing testcase for rename/modify/add-source conflict\n - t6042: Add a testcase where git deletes an untracked file\n\nRerolled.\nWill merge to \"next\".\n\n* fg/submodule-ff-check-before-push (2011-08-09) 1 commit\n - push: Don't push a repository with unpushed submodules\n\n* hv/submodule-update-none (2011-08-11) 2 commits\n - add update 'none' flag to disable update of submodule by default\n - submodule: move update configuration variable further up\n\nWill merge to \"next\".\n\n* jc/lookup-object-hash (2011-08-11) 6 commits\n - object hash: replace linear probing with 4-way cuckoo hashing\n - object hash: we know the table size is a power of two\n - object hash: next_size() helper for readability\n - pack-objects --count-only\n - object.c: remove duplicated code for object hashing\n - object.c: code movement for readability\n\n* js/i18n-scripts (2011-08-08) 5 commits\n - submodule: take advantage of gettextln and eval_gettextln.\n - stash: take advantage of eval_gettextln\n - pull: take advantage of eval_gettextln\n - git-am: take advantage of gettextln and eval_gettextln.\n - gettext: add gettextln, eval_gettextln to encode common idiom\n\nWill merge to \"next\".\n\n* cb/maint-ls-files-error-report (2011-08-11) 1 commit\n  (merged to 'next' on 2011-08-15 at 69f41cf)\n + ls-files: fix pathspec display on error\n\nWill merge to \"master\".\n\n* jn/maint-test-return (2011-08-11) 3 commits\n  (merged to 'next' on 2011-08-15 at 5a42301)\n + t3900: do not reference numbered arguments from the test script\n + test: cope better with use of return for errors\n + test: simplify return value of test_run_\n\nWill merge to \"master\".\n\n* rt/zlib-smaller-window (2011-08-11) 2 commits\n  (merged to 'next' on 2011-08-15 at e05b26b)\n + test: consolidate definition of $LF\n + Tolerate zlib deflation with window size < 32Kb\n\nWill merge to \"master\".\n\n* fg/submodule-git-file-git-dir (2011-08-16) 3 commits\n - fixup! Move git-dir for submodules\n - Move git-dir for submodules\n - rev-parse: add option --resolve-git-dir <path>\n\nWill merge to \"next\", after squashing the top one.\n\n* jk/add-i-hunk-filter (2011-07-27) 5 commits\n  (merged to 'next' on 2011-08-11 at 8ff9a56)\n + add--interactive: add option to autosplit hunks\n + add--interactive: allow negatation of hunk filters\n + add--interactive: allow hunk filtering on command line\n + add--interactive: factor out regex error handling\n + add--interactive: refactor patch mode argument processing\n\nNeeds documentation updates.\n\n* jk/http-auth-keyring (2011-08-03) 13 commits\n  (merged to 'next' on 2011-08-03 at b06e80e)\n + credentials: add \"getpass\" helper\n + credentials: add \"store\" helper\n + credentials: add \"cache\" helper\n + docs: end-user documentation for the credential subsystem\n + http: use hostname in credential description\n + allow the user to configure credential helpers\n + look for credentials in config before prompting\n + http: use credential API to get passwords\n + introduce credentials API\n + http: retry authentication failures for all http requests\n + remote-curl: don't retry auth failures with dumb protocol\n + improve httpd auth tests\n + url: decode buffers that are not NUL-terminated\n\nLooked mostly reasonable except for the limitation that it is not clear\nhow to deal with a site at which a user needs to use different passwords \nfor different repositories.\n\n* rr/revert-cherry-pick-continue (2011-08-08) 18 commits\n - revert: Propagate errors upwards from do_pick_commit\n - revert: Introduce --continue to continue the operation\n - revert: Don't implicitly stomp pending sequencer operation\n - revert: Remove sequencer state when no commits are pending\n - reset: Make reset remove the sequencer state\n - revert: Introduce --reset to remove sequencer state\n - revert: Make pick_commits functionally act on a commit list\n - revert: Save command-line options for continuing operation\n - revert: Save data for continuing after conflict resolution\n - revert: Don't create invalid replay_opts in parse_args\n - revert: Separate cmdline parsing from functional code\n - revert: Introduce struct to keep command-line options\n - revert: Eliminate global \"commit\" variable\n - revert: Rename no_replay to record_origin\n - revert: Don't check lone argument in get_encoding\n - revert: Simplify and inline add_message_to_msg\n - config: Introduce functions to write non-standard file\n - advice: Introduce error_resolve_conflict\n\nWill merge to \"next\".\n"},{"id":"173915","messageId":"CACsJy8Ch2b-8trK44JaeegVyYAHq-ocez+_TAUChNb3EX3F3MA@mail.gmail.com","threadId":"28169","inReplyTo":"7vsjox11tr.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Aug 2011, #05; Fri, 19)","fromName":"Nguyen Thai Ngoc Duy","fromEmail":"pclouds@gmail.com","sentAt":"2011-08-20T12:11:14Z","receivedAt":"2011-08-20T12:11:14Z","isPatch":false,"sender":{"key":"pclouds@gmail.com","avatar":"https://avatars.githubusercontent.com/u/720?v=4"},"body":"On Sat, Aug 20, 2011 at 5:19 AM, Junio C Hamano <gitster@pobox.com> wrote:\n> * jk/add-i-hunk-filter (2011-07-27) 5 commits\n>  (merged to 'next' on 2011-08-11 at 8ff9a56)\n>  + add--interactive: add option to autosplit hunks\n>  + add--interactive: allow negatation of hunk filters\n>  + add--interactive: allow hunk filtering on command line\n>  + add--interactive: factor out regex error handling\n>  + add--interactive: refactor patch mode argument processing\n>\n> Needs documentation updates.\n\nAnd tests, and its user \"git add\". Yeah, I'm getting to that.\n\nSorry it takes long time because I wanted to bring this feature to\ndiff machinery so that I could filter hunks with \"git diff\n--pickaxe-hunks -Gregex\" and reuse option names for \"git add -p\". It\nturns out very intrusive changes to split/merge hunks, so I dropped it\nand will go back to simple \"git add -p\" changes.\n-- \nDuy\n"}]}