{"thread":{"id":"28375","subject":"What's cooking in git.git (Sep 2011, #04; Mon, 12)","startedAt":"2011-09-12T20:16:58Z","lastAt":"2011-09-29T12:03:55Z","messageCount":36,"participants":["Junio C Hamano","Eric Sunshine","Sverre Rabbelier","Jeff King","Thomas Rast","John Szakmeister","Nguyen Thai Ngoc Duy","Erik Faye-Lund","Michael J Gruber","Brandon Casey","Jonathon Mah","David Aguilar","Pascal Obry"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"175355","messageId":"7v4o0h7byd.fsf@alter.siamese.dyndns.org","threadId":"28375","inReplyTo":null,"subject":"What's cooking in git.git (Sep 2011, #04; Mon, 12)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2011-09-12T20:16:58Z","receivedAt":"2011-09-12T20:16:58Z","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\nThe tip of 'master' is tagged as 1.7.7-rc1. Unfortunately k.org seems to\nbe still down, so there will be no pre-built rpms nor pre-formatted manual\nor documentation pages.\n\nI've tentatively uploaded a release candidate tarball at:\n\n    http://code.google.com/p/git-core/downloads/list\n  \nand its SHA-1 checksum is:\n\n80dfcce410d2f36ffed4c8b48c8c896a45159e41  git-1.7.7.rc1.tar.gz\n\nHere are the repositories that have my integration branches:\n\nWith maint, master, next, pu and todo:\n\n\turl = git://repo.or.cz/alt-git.git\n\turl = https://code.google.com/p/git-core/\n\nWith only maint and master:\n\n\turl = git://git.sourceforge.jp/gitroot/git-core/git.git\n\turl = git://git-core.git.sourceforge.net/gitroot/git-core/git-core\n\nWith all the topics and integration branches:\n\n\turl = https://github.com/gitster/git\n\n--------------------------------------------------\n[New Topics]\n\n* ph/format-patch-no-color (2011-09-12) 1 commit\n - format-patch: ignore ui.color\n\nThis fix for the recent regression probably should be in 1.7.7 final.\nWill merge to \"master\" soonish.\n\n--------------------------------------------------\n[Graduated to \"master\"]\n\n* jl/maint-fetch-submodule-check-fix (2011-09-09) 1 commit\n + fetch: skip on-demand checking when no submodules are configured\n\n* jn/remote-helpers-doc (2011-09-01) 3 commits\n + (short) documentation for the testgit remote helper\n + Documentation/git-remote-helpers: explain how import works with multiple refs\n + Documentation/remote-helpers: explain capabilities first\n\n--------------------------------------------------\n[Stalled]\n\n* jk/default-attr (2011-08-26) 1 commit\n - attr: map builtin userdiff drivers to well-known extensions\n\nNot urgent; I fixed up the test breakage just for fun.\n\n* nd/maint-autofix-tag-in-head (2011-08-26) 3 commits\n - Accept tags in HEAD or MERGE_HEAD\n - merge: remove global variable head[]\n - merge: keep stash[] a local variable\n\nProbably needs a re-roll to aim a bit higher.\nNot urgent; will not be in 1.7.7.\n\n* tr/doc-note-rewrite (2011-09-05) 1 commit\n - Documentation: \"on for all\" configuration of notes.rewriteRef\n\nIt was questioned if the new text suggests a sane and safe thing to do.\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, tests, and integration with the higher level\ncallers, e.g. \"git add -p\".\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-09-11) 8 commits\n - metadata-cache.c: make two functions static\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\n--------------------------------------------------\n[Cooking]\n\n* hl/iso8601-more-zone-formats (2011-09-09) 2 commits\n - fixup? simplification and tightening\n - date.c: Support iso8601 timezone formats\n\nNot urgent.\nWill squash them into one and push them forward to \"next\", though.\n\n* jc/signed-push (2011-09-09) 7 commits\n . push -s: support pre-receive-signature hook\n . push -s: receiving end\n . push -s: send signed push certificate\n . push -s: skeleton\n . refactor run_receive_hook()\n - Split GPG interface into its own helper library\n - send-pack: typofix error message\n (this branch is tangled with jc/signed-push-3.)\n\nThis was the v2 that updated notes tree on the receiving end.\n\n* jc/signed-push-3 (2011-09-09) 4 commits\n - push -s: signed push\n - rename \"match_refs()\" to \"match_push_refs()\"\n - Split GPG interface into its own helper library\n - send-pack: typofix error message\n (this branch is tangled with jc/signed-push.)\n\nThis is the third edition, that moves the preparation of the notes tree to\nthe sending end.\n\n* jc/run-receive-hook-cleanup (2011-09-09) 1 commit\n - refactor run_receive_hook()\n\nThis is a remnant in the jc/signed-push topic that has become unnecessary\nfor the purpose of jc/signed-push-3, but is retained for its clean-up\nvalue.\n\nThe corresponding one will be dropped when rebuilding the jc/signed-push\ntopic on top of this topic later.\n\n* jk/for-each-ref (2011-09-08) 5 commits\n - for-each-ref: add split message parts to %(contents:*).\n - for-each-ref: handle multiline subjects like --pretty\n - for-each-ref: refactor subject and body placeholder parsing\n - t6300: add more body-parsing tests\n - t7004: factor out gpg setup\n\nNot urgent.\nLooked more or less reasonable, though.\n\n* wh/normalize-alt-odb-path (2011-09-07) 1 commit\n - sha1_file: normalize alt_odb path before comparing and storing\n\nNot urgent.\nLooked more or less reasonable, though.\n\n* fk/use-kwset-pickaxe-grep-f (2011-09-11) 2 commits\n - obstack.c: Fix some sparse warnings\n - sparse: Fix an \"Using plain integer as NULL pointer\" warning\n\nIn general we would prefer to see these fixed at the upstream first, but\nwe have essentially forked from them at their last GPLv2 versions...\n\n* jc/make-static (2011-09-11) 2 commits\n  (merged to 'next' on 2011-09-11 at 2acb0af)\n + vcs-svn: remove unused functions and make some static\n + make-static: master\n\nI am not sure about the droppage of a few unused functions in the topmost\npatch.\n\n* rj/quietly-create-dep-dir (2011-09-11) 1 commit\n - Makefile: Make dependency directory creation less noisy\n\nNot urgent.\nWill merge to \"next\", though.\n\n* js/cred-macos-x-keychain (2011-09-11) 1 commit\n - contrib: add a credential helper for Mac OS X's keychain\n (this branch uses jk/http-auth-keyring.)\n\nWelcome addition to build our confidence in the jk/http-auth-keyring topic.\nWill merge to \"next\".\n\n* mh/check-ref-format (2011-09-11) 8 commits\n - Add tools to avoid the use of unnormalized refnames.\n - Do not allow \".lock\" at the end of any refname component\n - Add a library function normalize_refname()\n - Change check_ref_format() to take a flags argument\n - fixup asciidoc formatting\n - git check-ref-format: add options --allow-onelevel and --refspec-pattern\n - Change bad_ref_char() to return a boolean value\n - t1402: add some more tests\n\nAnother reroll coming.\n\n* mz/remote-rename (2011-09-11) 4 commits\n - remote: only update remote-tracking branch if updating refspec\n - remote rename: warn when refspec was not updated\n - remote: \"rename o foo\" should not rename ref \"origin/bar\"\n - remote: write correct fetch spec when renaming remote 'remote'\n\n* rj/maint-t9159-svn-rev-notation (2011-09-11) 1 commit\n - t9159-*.sh: Add an svn version check\n\nAck/Nack from people involved in git-svn?\n\n* cb/common-prefix-unification (2011-09-11) 4 commits\n - dir.c: make common_prefix_len() static\n - rename pathspec_prefix() to common_prefix() and move to dir.[ch]\n - consolidate pathspec_prefix and common_prefix\n - remove prefix argument from pathspec_prefix\n\nWill merge to \"next\" after squashing the tip one into \"consolidate\" patch.\n\n* cb/send-email-help (2011-09-05) 1 commit\n - send-email: add option -h\n\nI think we should further amend to drop the fully-spelled \"help\" that will\nbe intercepted by \"git\" wrapper before moving this forward.\n\nA separate set of patches to remove the hidden fully-spelled \"help\" from\nother commands would be nice to have as companion patches as well.\n\n* jc/fetch-pack-fsck-objects (2011-09-04) 3 commits\n - test: fetch/receive with fsckobjects\n - transfer.fsckobjects: unify fetch/receive.fsckobjects\n - fetch.fsckobjects: verify downloaded objects\n\nWe had an option to verify the sent objects before accepting a push but\nlacked the corresponding option when fetching. In the light of the recent\nk.org incident, a change like this would be a good addition.\n\nWill merge to \"next\" to cook for more.\n\n* jc/fetch-verify (2011-09-01) 3 commits\n - fetch: verify we have everything we need before updating our ref\n - rev-list --verify-object\n - list-objects: pass callback data to show_objects()\n (this branch uses jc/traverse-commit-list; is tangled with jc/receive-verify.)\n\nDuring a fetch, we verify that the pack stream is self consistent,\nbut did not verify that the refs that are updated are consistent with\nobjects contained in the packstream, and this adds such a check.\n\nWill merge to \"next\" to cook for more.\n\n* jc/receive-verify (2011-09-09) 6 commits\n - receive-pack: check connectivity before concluding \"git push\"\n - check_everything_connected(): libify\n - check_everything_connected(): refactor to use an iterator\n - fetch: verify we have everything we need before updating our ref\n - rev-list --verify-object\n - list-objects: pass callback data to show_objects()\n (this branch uses jc/traverse-commit-list; is tangled with jc/fetch-verify.)\n\nWhile accepting a push, we verify that the pack stream is self consistent,\nbut did not verify that the refs the push updates are consistent with\nobjects contained in the packstream, and this adds such a check.\n\nWill merge to \"next\" to cook for more.\n\n* jc/request-pull-show-head (2011-09-06) 1 commit\n - State what commit to expect in request-pull\n\nWill merge to \"next\".\n\n* jn/maint-http-error-message (2011-09-06) 2 commits\n - http: avoid empty error messages for some curl errors\n - http: remove extra newline in error message\n\nWill merge to \"next\".\n\n* bk/ancestry-path (2011-08-25) 3 commits\n  (merged to 'next' on 2011-09-02 at d05ba5d)\n + revision: do not include sibling history in --ancestry-path output\n + revision: keep track of the end-user input from the command line\n + rev-list: Demonstrate breakage with --ancestry-path --all\n\nThe topic came up a bit too late in the cycle.\nWill cook for a while.\n\n* mg/branch-list (2011-09-08) 6 commits\n  (merged to 'next' on 2011-09-11 at 20a9cdb)\n + branch: -v does not automatically imply --list\n  (merged to 'next' on 2011-09-02 at b818eae)\n + branch: allow pattern arguments\n + branch: introduce --list option\n + git-branch: introduce missing long forms for the options\n + git-tag: introduce long forms for the options\n + t6040: test branch -vv\n\nNot urgent; the topic came up a bit too late in the cycle.\n\n* mm/rebase-i-exec-edit (2011-08-26) 2 commits\n  (merged to 'next' on 2011-09-02 at e75b1b9)\n + rebase -i: notice and warn if \"exec $cmd\" modifies the index or the working tree\n + rebase -i: clean error message for --continue after failed exec\n\nNot urgent; the topic came up a bit too late in the cycle.\n\n* hv/submodule-merge-search (2011-08-26) 5 commits\n - submodule: Search for merges only at end of recursive merge\n - allow multiple calls to submodule merge search for the same path\n - submodule: Demonstrate known breakage during recursive merge\n - push: Don't push a repository with unpushed submodules\n  (merged to 'next' on 2011-08-24 at 398e764)\n + push: teach --recurse-submodules the on-demand option\n (this branch is tangled with fg/submodule-auto-push.)\n\nNot urgent; the topic came up a bit too late in the cycle.  The second\nfrom the bottom one needs to be replaced with a properly written commit\nlog message.\n\n* mm/mediawiki-as-a-remote (2011-09-01) 2 commits\n - git-remote-mediawiki: allow push to set MediaWiki metadata\n - Add a remote helper to interact with mediawiki (fetch & push)\n\nFun.\nNot urgent; the topic came up a bit too late in the cycle.\n\n* bc/unstash-clean-crufts (2011-08-27) 4 commits\n  (merged to 'next' on 2011-09-02 at 7bfd66f)\n + git-stash: remove untracked/ignored directories when stashed\n + t/t3905: add missing '&&' linkage\n + git-stash.sh: fix typo in error message\n + t/t3905: use the name 'actual' for test output, swap arguments to test_cmp\n\nNot urgent; the topic came up a bit too late in the cycle.\n\n* da/make-auto-header-dependencies (2011-08-30) 1 commit\n  (merged to 'next' on 2011-09-02 at e04a4af)\n + Makefile: Improve compiler header dependency check\n (this branch uses fk/make-auto-header-dependencies.)\n\nNot urgent; will not be in 1.7.7.\n\n* gb/am-hg-patch (2011-08-29) 1 commit\n  (merged to 'next' on 2011-09-02 at 3edfe4c)\n + am: preliminary support for hg patches\n\nNot urgent; the topic came up a bit too late in the cycle.\n\n* jc/diff-index-unpack (2011-08-29) 3 commits\n  (merged to 'next' on 2011-09-02 at 4206bd9)\n + diff-index: pass pathspec down to unpack-trees machinery\n + unpack-trees: allow pruning with pathspec\n + traverse_trees(): allow pruning with pathspec\n\nWill cook for a while.\n\n* nm/grep-object-sha1-lock (2011-08-30) 1 commit\n  (merged to 'next' on 2011-09-02 at 336f57d)\n + grep: Fix race condition in delta_base_cache\n\nNot urgent; the topic came up a bit too late in the cycle.\n\n* tr/mergetool-valgrind (2011-08-30) 1 commit\n  (merged to 'next' on 2011-09-02 at f5f2c61)\n + Symlink mergetools scriptlets into valgrind wrappers\n\nNot urgent; the topic came up a bit too late in the cycle.\n\n* fg/submodule-auto-push (2011-09-11) 2 commits\n  (merged to 'next' on 2011-09-11 at 3fc86f7)\n + submodule.c: make two functions static\n  (merged to 'next' on 2011-08-24 at 398e764)\n + push: teach --recurse-submodules the on-demand option\n (this branch is tangled with hv/submodule-merge-search.)\n\nWhat the topic aims to achieve may make sense, but the implementation\nlooked somewhat suboptimal.\n\n* jc/traverse-commit-list (2011-08-22) 3 commits\n  (merged to 'next' on 2011-08-24 at df50dd7)\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 (this branch is used by jc/fetch-verify and jc/receive-verify.)\n\nNot urgent; will not be in 1.7.7.\n\n* fk/make-auto-header-dependencies (2011-08-18) 1 commit\n  (merged to 'next' on 2011-08-24 at 3da2c25)\n + Makefile: Use computed header dependencies if the compiler supports it\n (this branch is used by da/make-auto-header-dependencies.)\n\nNot urgent; will not be in 1.7.7.\n\n* mh/iterate-refs (2011-09-11) 7 commits\n - refs.c: make create_cached_refs() static\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 fundamentally wrong with this series, but it was\nunclear what the benefit of these changes are.  If the series were to read\nparts of the ref hierarchy (like refs/heads/) lazily, the story would\nhave been different, though.\n\nNot urgent; will not be in 1.7.7.\n\n* hv/submodule-update-none (2011-08-11) 2 commits\n  (merged to 'next' on 2011-08-24 at 5302fc1)\n + add update 'none' flag to disable update of submodule by default\n + submodule: move update configuration variable further up\n\nNot urgent; will not be in 1.7.7.\n\n* jc/lookup-object-hash (2011-08-11) 6 commits\n  (merged to 'next' on 2011-08-24 at 5825411)\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\nI do not think there is anything fundamentally wrong with this series, but\nthe risk of breakage far outweighs observed performance gain in one\nparticular workload. Will keep it in 'next' at least for one cycle.\n\nNot urgent; will not be in 1.7.7.\n\n* fg/submodule-git-file-git-dir (2011-08-22) 2 commits\n  (merged to 'next' on 2011-08-23 at 762194e)\n + Move git-dir for submodules\n + rev-parse: add option --resolve-git-dir <path>\n\nI do not think there is anything fundamentally wrong with this series, but\nthe risk of breakage outweighs any benefit for having this new\nfeature. Will keep it in 'next' at least for one cycle.\n\nNot urgent; will not be in 1.7.7.\n\n* jk/http-auth-keyring (2011-09-11) 14 commits\n  (merged to 'next' on 2011-09-11 at 491ce6a)\n + credentials: make credential_fill_gently() static\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 (this branch is used by js/cred-macos-x-keychain.)\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. Will keep it in \"next\" at least for one cycle,\nuntil we start hearing real-world success reports on the list.\n\nNot urgent; will not be in 1.7.7.\n\n* rr/revert-cherry-pick-continue (2011-09-11) 19 commits\n  (merged to 'next' on 2011-09-11 at 7d78054)\n + builtin/revert.c: make commit_list_append() static\n  (merged to 'next' on 2011-08-24 at 712c115)\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 keep it in 'next' at least for one cycle.\nNot urgent; will not be in 1.7.7.\n\n--------------------------------------------------\n[Discarded]\n\n* jk/pager-with-alias (2011-08-19) 1 commit\n . support pager.* for aliases\n\n* cb/maint-quiet-push (2011-09-05) 4 commits\n . t5541: avoid TAP test miscounting\n . push: old receive-pack does not understand --quiet\n . fix push --quiet via http\n . tests for push --quiet\n\nDropped for rerolling after 1.7.7 cycle.\n"},{"id":"175362","messageId":"7v62kx4axu.fsf@alter.siamese.dyndns.org","threadId":"28375","inReplyTo":"7v4o0h7byd.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Sep 2011, #04; Mon, 12)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2011-09-12T21:48:02Z","receivedAt":"2011-09-12T21:48:02Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Junio C Hamano <gitster@pobox.com> writes:\n\n> [Stalled]\n>\n> * nd/maint-autofix-tag-in-head (2011-08-26) 3 commits\n>  - Accept tags in HEAD or MERGE_HEAD\n>  - merge: remove global variable head[]\n>  - merge: keep stash[] a local variable\n\nCould you start thinking about re-rolling this for post 1.7.7 release?\n\nThanks.\n"},{"id":"175363","messageId":"7vty8h2wda.fsf@alter.siamese.dyndns.org","threadId":"28375","inReplyTo":"7v4o0h7byd.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Sep 2011, #04; Mon, 12)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2011-09-12T21:51:48Z","receivedAt":"2011-09-12T21:51:48Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Junio C Hamano <gitster@pobox.com> writes:\n\n> [Stalled]\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\nCould you start thinking about completing this series, or posting a \"where\nto go next\" summary to guide others with lessor git clout to finish with\nhelp from people who know \"add -i\" codepath better (I could help), once\n1.7.7 ships?\n\nThanks.\n"},{"id":"175364","messageId":"7vzki92wdc.fsf@alter.siamese.dyndns.org","threadId":"28375","inReplyTo":"7v4o0h7byd.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Sep 2011, #04; Mon, 12)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2011-09-12T21:53:11Z","receivedAt":"2011-09-12T21:53:11Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Junio C Hamano <gitster@pobox.com> writes:\n\n> [Stalled]\n>\n> * tr/doc-note-rewrite (2011-09-05) 1 commit\n>  - Documentation: \"on for all\" configuration of notes.rewriteRef\n>\n> It was questioned if the new text suggests a sane and safe thing to do.\n\nShould we drop this post 1.7.7, or (preferrably) replace it with better\ninstructions?\n"},{"id":"175366","messageId":"7vobyp2wd8.fsf@alter.siamese.dyndns.org","threadId":"28375","inReplyTo":"7v4o0h7byd.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Sep 2011, #04; Mon, 12)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2011-09-12T21:55:08Z","receivedAt":"2011-09-12T21:55:08Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Junio C Hamano <gitster@pobox.com> writes:\n\n> [Stalled]\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>\n> Would need another round to separate per-pack and per-session limits.\n\nWhat's the plan for this topic?  I could keep it and list it among the 1.7.8\nshort-term goals once 1.7.7 ships, or I could drop it.\n\nIt is not urgent as we just went into feature freeze for 1.7.7 but please\nstart thinking about it.\n\nThanks.\n"},{"id":"175365","messageId":"7vipox2wd6.fsf@alter.siamese.dyndns.org","threadId":"28375","inReplyTo":"7v4o0h7byd.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Sep 2011, #04; Mon, 12)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2011-09-12T21:59:49Z","receivedAt":"2011-09-12T21:59:49Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Junio C Hamano <gitster@pobox.com> writes:\n\n> [Stalled]\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>\n> I think this is a good idea, but it probably needs a re-roll.\n> Cf. $gmane/176254, 176255, 166256\n\nWhat's the plan for this series? Do we still want to pursue it within the\ntimeframe for the next round?\n\nIs there any mergetool/difftool expert who volunteers to help moving this\ntopic forward?\n"},{"id":"175367","messageId":"7vd3f52wd5.fsf@alter.siamese.dyndns.org","threadId":"28375","inReplyTo":"7v4o0h7byd.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Sep 2011, #04; Mon, 12)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2011-09-12T22:02:38Z","receivedAt":"2011-09-12T22:02:38Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Junio C Hamano <gitster@pobox.com> writes:\n\n> [Stalled]\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\nI vaguely recall that one of my unrelated topics fixed the issue you were\ntrying to work around with this topic, or something? Can we see a re-roll\nafter 1.7.7 ships?\n\nThanks.\n"},{"id":"175369","messageId":"7v7h5d2wd3.fsf@alter.siamese.dyndns.org","threadId":"28375","inReplyTo":"7v4o0h7byd.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Sep 2011, #04; Mon, 12)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2011-09-12T22:56:21Z","receivedAt":"2011-09-12T22:56:21Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Junio C Hamano <gitster@pobox.com> writes:\n\n> [Stalled]\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\nHonestly I lost track of this one. How would we want to proceed on this\ntopic after 1.7.7?\n\nAsking help from Windows folks.\n"},{"id":"175368","messageId":"7v1uvl2wd1.fsf@alter.siamese.dyndns.org","threadId":"28375","inReplyTo":"7v4o0h7byd.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Sep 2011, #04; Mon, 12)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2011-09-12T22:58:51Z","receivedAt":"2011-09-12T22:58:51Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Junio C Hamano <gitster@pobox.com> writes:\n\n> * rj/maint-t9159-svn-rev-notation (2011-09-11) 1 commit\n>  - t9159-*.sh: Add an svn version check\n\nAck/Nack from people involved in git-svn and/or the patch, please?\n"},{"id":"175370","messageId":"4E6E928A.6080003@sunshineco.com","threadId":"28375","inReplyTo":"7vk49d5t8u.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Sep 2011, #04; Mon, 12)","fromName":"Eric Sunshine","fromEmail":"sunshine@sunshineco.com","sentAt":"2011-09-12T23:15:22Z","receivedAt":"2011-09-12T23:15:22Z","isPatch":false,"sender":{"key":"sunshine@sunshineco.com","avatar":"https://avatars.githubusercontent.com/u/163641?v=4"},"body":"On 9/12/2011 5:46 PM, Junio C Hamano wrote:\n> Junio C Hamano<gitster@pobox.com>  writes:\n>\n>> [Stalled]\n>>\n>> * jk/default-attr (2011-08-26) 1 commit\n>>   - attr: map builtin userdiff drivers to well-known extensions\n>>\n>> Not urgent; I fixed up the test breakage just for fun.\n>\n> Could people who participated in the discussion make sure what is queued\n> includes their favorite extensions they proposed?\n\nThe following extensions I mentioned are missing from jk/default-attr:\n\n\t\"*.htm diff=html\",\n\t\"*.cpp diff=cpp\",\n\t\"*.mm diff=objc\",\n\nOn Windows, .htm is common, and .cpp is required by several Windows C++ \ncompilers. On Mac OS X, .mm is used for Objective-C++. The other \nextensions I mentioned (.cs, .hpp, .m) are present in jk/default-attr.\n\nPeff also asked if uppercase extensions are common on Windows. They are, \nso one often sees .HTM, .HTML, etc. Should this issue be handled by \njk/default-attr?\n\nBy the way, there appears to be an error in 1ff2bcf79b (attr: map \nbuiltin userdiff drivers to well-known extensions, 2011-08-25):\n\n> static const char *builtin_attr[] = {\n>  \t\"[attr]binary -diff -text\",\n> +\t\"*.html diff=html\",\n> \t...omitted...\n> +\t\"*.f[0-9][0-9] diff=fortran\",\n> +\t\"*.m objc\",\n>  \tNULL,\n\nShouldn't the last entry be?\n\n\t\"*.m diff=objc\",\n\n(note the missing 'diff=')\n\n-- ES\n"},{"id":"175371","messageId":"CAGdFq_jSjDsEZnUWUBUDxvLk1jZUb_c2Rh8ybK13x4TZHyOQRA@mail.gmail.com","threadId":"28375","inReplyTo":"7vd3f52wd5.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Sep 2011, #04; Mon, 12)","fromName":"Sverre Rabbelier","fromEmail":"srabbelier@gmail.com","sentAt":"2011-09-12T23:15:56Z","receivedAt":"2011-09-12T23:15:56Z","isPatch":false,"sender":{"key":"srabbelier@gmail.com","avatar":"https://avatars.githubusercontent.com/u/3098?v=4"},"body":"Heya,\n\nOn Tue, Sep 13, 2011 at 00:02, Junio C Hamano <gitster@pobox.com> wrote:\n> I vaguely recall that one of my unrelated topics fixed the issue you were\n> trying to work around with this topic, or something? Can we see a re-roll\n> after 1.7.7 ships?\n\nCorrect, one of your topics added a framework that would fix part of\nwhat I was trying to fix, IIRC. I'm not sure if I'm quite up to the\ntask of doing that reroll, but I'll give it a shot at least :).\n\n-- \nCheers,\n\nSverre Rabbelier\n"},{"id":"175373","messageId":"7vwrdd1gyc.fsf@alter.siamese.dyndns.org","threadId":"28375","inReplyTo":"4E6E928A.6080003@sunshineco.com","subject":"Re: What's cooking in git.git (Sep 2011, #04; Mon, 12)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2011-09-12T23:25:31Z","receivedAt":"2011-09-12T23:25:31Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Eric Sunshine <sunshine@sunshineco.com> writes:\n\n> The following extensions I mentioned are missing from jk/default-attr:\n>\n> \t\"*.htm diff=html\",\n> \t\"*.cpp diff=cpp\",\n> \t\"*.mm diff=objc\",\n>\n> On Windows, .htm is common, and .cpp is required by several Windows\n> C++ compilers. On Mac OS X, .mm is used for Objective-C++. The other\n> extensions I mentioned (.cs, .hpp, .m) are present in jk/default-attr.\n>\n> Peff also asked if uppercase extensions are common on Windows. They\n> are, so one often sees .HTM, .HTML, etc. Should this issue be handled\n> by jk/default-attr?\n\nI do not think we would mind adding .HTM but would people limit themselves\nto uppercase while not limiting themselves to three letters and use .HTML?\n\n> By the way, there appears to be an error in 1ff2bcf79b (attr: map\n> builtin userdiff drivers to well-known extensions, 2011-08-25):\n>\n>> static const char *builtin_attr[] = {\n>>  \t\"[attr]binary -diff -text\",\n>> +\t\"*.html diff=html\",\n>> \t...omitted...\n>> +\t\"*.f[0-9][0-9] diff=fortran\",\n>> +\t\"*.m objc\",\n>>  \tNULL,\n>\n> Shouldn't the last entry be?\n>\n> \t\"*.m diff=objc\",\n\nThanks for spotting. I'll locally amend only this part and hope somebody\nwould volunteer to submit an agreed version as the final one ;-)\n"},{"id":"175374","messageId":"20110912232756.GD28994@sigill.intra.peff.net","threadId":"28375","inReplyTo":"7vty8h2wda.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Sep 2011, #04; Mon, 12)","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2011-09-12T23:27:56Z","receivedAt":"2011-09-12T23:27:56Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Mon, Sep 12, 2011 at 02:51:48PM -0700, Junio C Hamano wrote:\n\n> Junio C Hamano <gitster@pobox.com> writes:\n> \n> > [Stalled]\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\nHmph. After seeing this in WC for weeks, I just now noticed the typo\nin the patch subject.\n\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> Could you start thinking about completing this series, or posting a \"where\n> to go next\" summary to guide others with lessor git clout to finish with\n> help from people who know \"add -i\" codepath better (I could help), once\n> 1.7.7 ships?\n\nI was really just doing this to help scratch Duy's itch. Do other people\nactually find it useful? I sort of imagined he would pick up the patches\nand post them as part of a series once he had something working. I\nsuspect until then, you could just drop them.\n\n-Peff\n"},{"id":"175376","messageId":"20110912233348.GE28994@sigill.intra.peff.net","threadId":"28375","inReplyTo":"7vwrdd1gyc.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Sep 2011, #04; Mon, 12)","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2011-09-12T23:33:48Z","receivedAt":"2011-09-12T23:33:48Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Mon, Sep 12, 2011 at 04:25:31PM -0700, Junio C Hamano wrote:\n\n> > Peff also asked if uppercase extensions are common on Windows. They\n> > are, so one often sees .HTM, .HTML, etc. Should this issue be handled\n> > by jk/default-attr?\n> \n> I do not think we would mind adding .HTM but would people limit themselves\n> to uppercase while not limiting themselves to three letters and use .HTML?\n\nI wonder if they should all be in the style of:\n\n  [Hh][Tt][Mm][Ll]\n  [Jj][Aa][Vv][Aa]\n\nfor case-challenged systems. That feels like the wrong solution, though.\nIf you're on a case-insensitive system, shouldn't we perhaps be\ncomparing some kind of canonical version of the filename that is\nlowercased? That would help these built-in attributes, as well as ones\nthat people write.\n\nOr maybe that is too large a can of worms to open. I sort of assume we\nhave those canonicalization routines somewhere already, though.\n\n> > Shouldn't the last entry be?\n> >\n> > \t\"*.m diff=objc\",\n> \n> Thanks for spotting. I'll locally amend only this part and hope somebody\n> would volunteer to submit an agreed version as the final one ;-)\n\nI think we're missing Brandon's note that \".F\" is used (as distinct from\n\".f\", even on case-sensitive filesystems, as it has some magic meaning).\nAnd the pascal ones somebody mentioned.\n\n-Peff\n"},{"id":"175377","messageId":"7vlitt1gi1.fsf@alter.siamese.dyndns.org","threadId":"28375","inReplyTo":"7vk49d5t8u.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Sep 2011, #04; Mon, 12)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2011-09-12T23:35:18Z","receivedAt":"2011-09-12T23:35:18Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"[resending to the list as I screwed-up the To/Cc: header in the original]\n\nJunio C Hamano <gitster@pobox.com> writes:\n\n> [Stalled]\n>\n> * jk/default-attr (2011-08-26) 1 commit\n>  - attr: map builtin userdiff drivers to well-known extensions\n>\n> Not urgent; I fixed up the test breakage just for fun.\n\nCould people who participated in the discussion make sure what is queued\nincludes their favorite extensions they proposed?\n\nThanks.\n"},{"id":"175378","messageId":"20110912235327.GA29752@sigill.intra.peff.net","threadId":"28375","inReplyTo":"20110912233348.GE28994@sigill.intra.peff.net","subject":"Re: What's cooking in git.git (Sep 2011, #04; Mon, 12)","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2011-09-12T23:53:27Z","receivedAt":"2011-09-12T23:53:27Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Mon, Sep 12, 2011 at 07:33:48PM -0400, Jeff King wrote:\n\n> > Thanks for spotting. I'll locally amend only this part and hope somebody\n> > would volunteer to submit an agreed version as the final one ;-)\n> \n> I think we're missing Brandon's note that \".F\" is used (as distinct from\n> \".f\", even on case-sensitive filesystems, as it has some magic meaning).\n> And the pascal ones somebody mentioned.\n\nI'm keeping my local version of the topic up-to-date. I'll collect any\nmore comments, and send the final version in a day or two.\n\n-Peff\n"},{"id":"175379","messageId":"7vhb4h1ewc.fsf@alter.siamese.dyndns.org","threadId":"28375","inReplyTo":"20110912232756.GD28994@sigill.intra.peff.net","subject":"Re: What's cooking in git.git (Sep 2011, #04; Mon, 12)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2011-09-13T00:09:55Z","receivedAt":"2011-09-13T00:09:55Z","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> ... I\n> suspect until then, you could just drop them.\n\nThat's a lot simpler than having to worry about it. Thanks.\n"},{"id":"175386","messageId":"95a35723c2ac7e3accfceec2cdededcd213fb59b.1315899036.git.trast@student.ethz.ch","threadId":"28375","inReplyTo":"7vzki92wdc.fsf@alter.siamese.dyndns.org","subject":"[PATCH v2] Documentation: basic configuration of notes.rewriteRef","fromName":"Thomas Rast","fromEmail":"trast@student.ethz.ch","sentAt":"2011-09-13T07:32:42Z","receivedAt":"2011-09-13T07:32:42Z","isPatch":true,"sender":{"key":"tr@thomasrast.ch","avatar":"https://avatars.githubusercontent.com/u/153510?v=4"},"body":"Users had problems finding a working setting for notes.rewriteRef.\nDocument how to enable rewriting for notes/commits, which should be a\nsafe setting.\n\nSigned-off-by: Thomas Rast <trast@student.ethz.ch>\n---\n\nJunio C Hamano wrote:\n> Should we drop this post 1.7.7, or (preferrably) replace it with better\n> instructions?\n\nI'd replace it with this bit.  Users who have trouble setting the\nvariable to something useful will likely not know how to edit\nnon-default notes trees, either.\n\n\n Documentation/config.txt |    3 ++-\n 1 files changed, 2 insertions(+), 1 deletions(-)\n\ndiff --git a/Documentation/config.txt b/Documentation/config.txt\nindex 0ecef9d..0813812 100644\n--- a/Documentation/config.txt\n+++ b/Documentation/config.txt\n@@ -1464,7 +1464,8 @@ notes.rewriteRef::\n \tYou may also specify this configuration several times.\n +\n Does not have a default value; you must configure this variable to\n-enable note rewriting.\n+enable note rewriting.  Set it to `refs/notes/commits` to enable\n+rewriting for the default commit notes.\n +\n This setting can be overridden with the `GIT_NOTES_REWRITE_REF`\n environment variable, which must be a colon separated list of refs or\n-- \n1.7.7.rc0.487.g1b75\n"},{"id":"175390","messageId":"CAEBDL5VDsc49wj6GiQ0ZaSZ0eBy_iTd73zhgqhLfOLFhnqC-5A@mail.gmail.com","threadId":"28375","inReplyTo":"4E6E928A.6080003@sunshineco.com","subject":"Re: What's cooking in git.git (Sep 2011, #04; Mon, 12)","fromName":"John Szakmeister","fromEmail":"john@szakmeister.net","sentAt":"2011-09-13T07:51:53Z","receivedAt":"2011-09-13T07:51:53Z","isPatch":false,"sender":{"key":"john@szakmeister.net","avatar":"https://avatars.githubusercontent.com/u/448087?v=4"},"body":"On Mon, Sep 12, 2011 at 7:15 PM, Eric Sunshine <sunshine@sunshineco.com> wrote:\n[snip]\n> Shouldn't the last entry be?\n>\n>        \"*.m diff=objc\",\n\nOr maybe not there at all?  We tend to do quite a bit with Matlab, and\nMatlab scripts also end in \".m\".  Unfortunately, it bears little\nresemblance to Objective-C.\n\n-John\n"},{"id":"175394","messageId":"CACsJy8AkRiZjO1c4hRh-SSe8rKhAwaf5JF_h79E+Sqe=4txVSg@mail.gmail.com","threadId":"28375","inReplyTo":"7vhb4h1ewc.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Sep 2011, #04; Mon, 12)","fromName":"Nguyen Thai Ngoc Duy","fromEmail":"pclouds@gmail.com","sentAt":"2011-09-13T09:24:57Z","receivedAt":"2011-09-13T09:24:57Z","isPatch":false,"sender":{"key":"pclouds@gmail.com","avatar":"https://avatars.githubusercontent.com/u/720?v=4"},"body":"On Tue, Sep 13, 2011 at 10:09 AM, Junio C Hamano <gitster@pobox.com> wrote:\n> Jeff King <peff@peff.net> writes:\n>\n>> ... I\n>> suspect until then, you could just drop them.\n>\n> That's a lot simpler than having to worry about it. Thanks.\n\nYeah. I've been moving and having less time for open source. Plus\ngnome is approaching the release date and translation work's coming\nup. I'll resubmit when I get around to it.\n-- \nDuy\n"},{"id":"175395","messageId":"CABPQNSae3MU34pRw87CNkEUBbTpE5h9UVT3cqv3iFnWs1wQ5FQ@mail.gmail.com","threadId":"28375","inReplyTo":"7v7h5d2wd3.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Sep 2011, #04; Mon, 12)","fromName":"Erik Faye-Lund","fromEmail":"kusmabite@gmail.com","sentAt":"2011-09-13T09:46:55Z","receivedAt":"2011-09-13T09:46:55Z","isPatch":false,"sender":{"key":"kusmabite@gmail.com","avatar":"https://avatars.githubusercontent.com/u/47073?v=4"},"body":"On Tue, Sep 13, 2011 at 12:56 AM, Junio C Hamano <gitster@pobox.com> wrote:\n> Junio C Hamano <gitster@pobox.com> writes:\n>\n>> [Stalled]\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>\n> Honestly I lost track of this one. How would we want to proceed on this\n> topic after 1.7.7?\n>\n> Asking help from Windows folks.\n\nI believe Hannes pointed out that there were some work left to be done\non it (\"enable backslash processing in setup.c:prefix_filename()\"),\nand I didn't spot a new version after that. He also pointed out that\nenabling backslash processing would cause you to lose the ability to\nescape special characters, but it sounds to me like this is something\nthat simply \"comes with the territory\" of supporting win32-paths in a\nPOSIX-ish environment, and is already the governing convention in\nCygwin. But I'm not an expert on this topic; Cygwin is not something I\nusually care much about.\n"},{"id":"175398","messageId":"4E6F46FA.90400@drmicha.warpmail.net","threadId":"28375","inReplyTo":"7v1uvl2wd1.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Sep 2011, #04; Mon, 12)","fromName":"Michael J Gruber","fromEmail":"git@drmicha.warpmail.net","sentAt":"2011-09-13T12:05:14Z","receivedAt":"2011-09-13T12:05:14Z","isPatch":false,"sender":{"key":"git@grubix.eu","avatar":"https://avatars.githubusercontent.com/u/233215?v=4"},"body":"Junio C Hamano venit, vidit, dixit 13.09.2011 00:58:\n> Junio C Hamano <gitster@pobox.com> writes:\n> \n>> * rj/maint-t9159-svn-rev-notation (2011-09-11) 1 commit\n>>  - t9159-*.sh: Add an svn version check\n> \n> Ack/Nack from people involved in git-svn and/or the patch, please?\n\nNot much time due to conference this week. Don't we have a version check\nsomewhere else in the tests already? (I may be mixing it up with git-svn\nproper.) We should not dupe that and anyways libify or define a\nprerequisite.\n\nMichael\n"},{"id":"175400","messageId":"4E6F70E6.2070602@sunshineco.com","threadId":"28375","inReplyTo":"CAEBDL5VDsc49wj6GiQ0ZaSZ0eBy_iTd73zhgqhLfOLFhnqC-5A@mail.gmail.com","subject":"Re: What's cooking in git.git (Sep 2011, #04; Mon, 12)","fromName":"Eric Sunshine","fromEmail":"sunshine@sunshineco.com","sentAt":"2011-09-13T15:04:06Z","receivedAt":"2011-09-13T15:04:06Z","isPatch":false,"sender":{"key":"sunshine@sunshineco.com","avatar":"https://avatars.githubusercontent.com/u/163641?v=4"},"body":"On 9/13/2011 3:51 AM, John Szakmeister wrote:\n> On Mon, Sep 12, 2011 at 7:15 PM, Eric Sunshine<sunshine@sunshineco.com>  wrote:\n> [snip]\n>> Shouldn't the last entry be?\n>>\n>>         \"*.m diff=objc\",\n>\n> Or maybe not there at all?  We tend to do quite a bit with Matlab, and\n> Matlab scripts also end in \".m\".  Unfortunately, it bears little\n> resemblance to Objective-C.\n\nThis default mapping is provided as a convenience only. Users can edit \n.gitattributes as needed. If we assume that the number of Macintosh and \niOS (iPhone, iPad, iPod Touch) programmers heavily outweighs the number \nof Matlab users, then the convenience of having .m in the default list \nmay be justified.\n\nIt also is reasonable to ask if the \"*.m diff=objc\" mapping actually \nproduces an inferior diff hunk-header[1] for Matlab files than when \n\"diff=objc\" is not present.\n\n[1]: http://thread.gmane.org/gmane.comp.version-control.git/180103/\n\n-- ES\n"},{"id":"175401","messageId":"DJ8J88If0KG_BPR1BK-feQRQ5yjv1AIYHW3sMosJzbrjCLKCIJABAFuSAH9IrkEl-y3-8mIKsysdqADcV6A7C7f4UuM9aZNpztbz_L9pXXw@cipher.nrlssc.navy.mil","threadId":"28375","inReplyTo":"20110912233348.GE28994@sigill.intra.peff.net","subject":"Re: What's cooking in git.git (Sep 2011, #04; Mon, 12)","fromName":"Brandon Casey","fromEmail":"brandon.casey.ctr@nrlssc.navy.mil","sentAt":"2011-09-13T15:15:15Z","receivedAt":"2011-09-13T15:15:15Z","isPatch":false,"sender":{"key":"brandon.casey.ctr@nrlssc.navy.mil","avatar":null},"body":"On 09/12/2011 06:33 PM, Jeff King wrote:\n> On Mon, Sep 12, 2011 at 04:25:31PM -0700, Junio C Hamano wrote:\n> \n>>> Peff also asked if uppercase extensions are common on Windows. They\n>>> are, so one often sees .HTM, .HTML, etc. Should this issue be handled\n>>> by jk/default-attr?\n>>\n>> I do not think we would mind adding .HTM but would people limit themselves\n>> to uppercase while not limiting themselves to three letters and use .HTML?\n> \n> I wonder if they should all be in the style of:\n> \n>   [Hh][Tt][Mm][Ll]\n>   [Jj][Aa][Vv][Aa]\n> \n> for case-challenged systems. That feels like the wrong solution, though.\n> If you're on a case-insensitive system, shouldn't we perhaps be\n> comparing some kind of canonical version of the filename that is\n> lowercased? That would help these built-in attributes, as well as ones\n> that people write.\n\nPerhaps fnmatch should be using FNM_CASEFOLD when core.ignorecase is\nset. We already provide compat/fnmatch/ and have NO_FNMATCH_CASEFOLD in\nMakefile, so it should be safe to use.\n\n...and I see there is already an fnmatch_icase() in dir.c which adds\nFNM_CASEFOLD when the global var ignore_case is set.  So, maybe it's as\neasy as:\n\ndiff --git a/attr.c b/attr.c\nindex 09cb4fc..b482262 100644\n--- a/attr.c\n+++ b/attr.c\n@@ -2,6 +2,7 @@\n #include \"cache.h\"\n #include \"exec_cmd.h\"\n #include \"attr.h\"\n+#include \"dir.h\"\n \n const char git_attr__true[] = \"(builtin)true\";\n const char git_attr__false[] = \"\\0(builtin)false\";\n@@ -649,7 +650,7 @@ static int path_matches(const char *pathname, int pathlen,\n                /* match basename */\n                const char *basename = strrchr(pathname, '/');\n                basename = basename ? basename + 1 : pathname;\n-               return (fnmatch(pattern, basename, 0) == 0);\n+               return (fnmatch_icase(pattern, basename, 0) == 0);\n        }\n        /*\n         * match with FNM_PATHNAME; the pattern has base implicitly\n@@ -663,7 +664,7 @@ static int path_matches(const char *pathname, int pathlen,\n                return 0;\n        if (baselen != 0)\n                baselen++;\n-       return fnmatch(pattern, pathname + baselen, FNM_PATHNAME) == 0;\n+       return fnmatch_icase(pattern, pathname + baselen, FNM_PATHNAME) == 0;\n }\n \n static int macroexpand_one(int attr_nr, int rem);\n\n\n> Or maybe that is too large a can of worms to open. I sort of assume we\n> have those canonicalization routines somewhere already, though.\n\n> \n> I think we're missing Brandon's note that \".F\" is used (as distinct from\n> \".f\", even on case-sensitive filesystems, as it has some magic meaning).\n> And the pascal ones somebody mentioned.\n\nYep, that's all that is missing from my perspective.\n\n-Brandon\n"},{"id":"175402","messageId":"20110913160520.GA28634@sigill.intra.peff.net","threadId":"28375","inReplyTo":"DJ8J88If0KG_BPR1BK-feQRQ5yjv1AIYHW3sMosJzbrjCLKCIJABAFuSAH9IrkEl-y3-8mIKsysdqADcV6A7C7f4UuM9aZNpztbz_L9pXXw@cipher.nrlssc.navy.mil","subject":"Re: What's cooking in git.git (Sep 2011, #04; Mon, 12)","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2011-09-13T16:05:20Z","receivedAt":"2011-09-13T16:05:20Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Tue, Sep 13, 2011 at 10:15:15AM -0500, Brandon Casey wrote:\n\n> ...and I see there is already an fnmatch_icase() in dir.c which adds\n> FNM_CASEFOLD when the global var ignore_case is set.  So, maybe it's as\n> easy as:\n> [...]\n> -               return (fnmatch(pattern, basename, 0) == 0);\n> +               return (fnmatch_icase(pattern, basename, 0) == 0);\n\nOK, wow. That's exactly the level of easy I was hoping for. Do you want\nto roll that up into a patch with some tests?\n\n-Peff\n"},{"id":"175404","messageId":"5XXEFw0WjtXKd9dpXSxpkskCcgVyG9Db1_zzVSEBNey-kpXSBbmQfYaxZ2Szg6Pbck6hZZTQ5hHzBwG4rhKYXshrd-mveEFLPZ9W0V8P_lw@cipher.nrlssc.navy.mil","threadId":"28375","inReplyTo":"20110913160520.GA28634@sigill.intra.peff.net","subject":"Re: What's cooking in git.git (Sep 2011, #04; Mon, 12)","fromName":"Brandon Casey","fromEmail":"brandon.casey.ctr@nrlssc.navy.mil","sentAt":"2011-09-13T16:22:17Z","receivedAt":"2011-09-13T16:22:17Z","isPatch":false,"sender":{"key":"brandon.casey.ctr@nrlssc.navy.mil","avatar":null},"body":"On 09/13/2011 11:05 AM, Jeff King wrote:\n> On Tue, Sep 13, 2011 at 10:15:15AM -0500, Brandon Casey wrote:\n> \n>> ...and I see there is already an fnmatch_icase() in dir.c which adds\n>> FNM_CASEFOLD when the global var ignore_case is set.  So, maybe it's as\n>> easy as:\n>> [...]\n>> -               return (fnmatch(pattern, basename, 0) == 0);\n>> +               return (fnmatch_icase(pattern, basename, 0) == 0);\n> \n> OK, wow. That's exactly the level of easy I was hoping for. Do you want\n> to roll that up into a patch with some tests?\n\nI haven't even tested that it runs. :)  No, I was hoping someone \nwho was more interested would finish it, and maybe even test on\nan affected system.\n\n-Brandon\n"},{"id":"175411","messageId":"7vty8gwefy.fsf@alter.siamese.dyndns.org","threadId":"28375","inReplyTo":"95a35723c2ac7e3accfceec2cdededcd213fb59b.1315899036.git.trast@student.ethz.ch","subject":"Re: [PATCH v2] Documentation: basic configuration of notes.rewriteRef","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2011-09-13T17:16:17Z","receivedAt":"2011-09-13T17:16:17Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Thomas Rast <trast@student.ethz.ch> writes:\n\n> Users had problems finding a working setting for notes.rewriteRef.\n> Document how to enable rewriting for notes/commits, which should be a\n> safe setting.\n>\n> Signed-off-by: Thomas Rast <trast@student.ethz.ch>\n> ---\n>\n> Junio C Hamano wrote:\n>> Should we drop this post 1.7.7, or (preferrably) replace it with better\n>> instructions?\n>\n> I'd replace it with this bit.  Users who have trouble setting the\n> variable to something useful will likely not know how to edit\n> non-default notes trees, either.\n\nOk. Thanks.\n\n> +enable note rewriting.  Set it to `refs/notes/commits` to enable\n> +rewriting for the default commit notes.\n"},{"id":"175412","messageId":"20110913171850.GC32251@sigill.intra.peff.net","threadId":"28375","inReplyTo":"95a35723c2ac7e3accfceec2cdededcd213fb59b.1315899036.git.trast@student.ethz.ch","subject":"Re: [PATCH v2] Documentation: basic configuration of notes.rewriteRef","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2011-09-13T17:18:50Z","receivedAt":"2011-09-13T17:18:50Z","isPatch":true,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Tue, Sep 13, 2011 at 09:32:42AM +0200, Thomas Rast wrote:\n\n> Users had problems finding a working setting for notes.rewriteRef.\n> Document how to enable rewriting for notes/commits, which should be a\n> safe setting.\n\nThanks. After our discussion, I am left with the feeling that it is\nprobably going to be the problem of the individual notes-refs to say \"I\nam immutable; don't rewrite me\" (probably by putting them in some\nspecial part of the ref namespace). But until we figure out exactly how\nthat will work, this is a safe and sane step forward.\n\n-Peff\n"},{"id":"175413","messageId":"20110913172055.GD32251@sigill.intra.peff.net","threadId":"28375","inReplyTo":"4E6F70E6.2070602@sunshineco.com","subject":"Re: What's cooking in git.git (Sep 2011, #04; Mon, 12)","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2011-09-13T17:20:55Z","receivedAt":"2011-09-13T17:20:55Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Tue, Sep 13, 2011 at 11:04:06AM -0400, Eric Sunshine wrote:\n\n> >Or maybe not there at all?  We tend to do quite a bit with Matlab, and\n> >Matlab scripts also end in \".m\".  Unfortunately, it bears little\n> >resemblance to Objective-C.\n> \n> This default mapping is provided as a convenience only. Users can\n> edit .gitattributes as needed. If we assume that the number of\n> Macintosh and iOS (iPhone, iPad, iPod Touch) programmers heavily\n> outweighs the number of Matlab users, then the convenience of having\n> .m in the default list may be justified.\n\nYeah, but the cost of being wrong may be much higher than the cost of\njust using the default.\n\n> It also is reasonable to ask if the \"*.m diff=objc\" mapping actually\n> produces an inferior diff hunk-header[1] for Matlab files than when\n> \"diff=objc\" is not present.\n\nI think this is the important question. Is it inferior, and how bad does\nit look? And then we can weigh that against the convenience of not\nhaving to specify objc files in gitattributes.\n\n-Peff\n"},{"id":"175448","messageId":"D3CA81F2-647B-4AD0-A4FC-4C22772FD791@JonathonMah.com","threadId":"28375","inReplyTo":"7vipox2wd6.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Sep 2011, #04; Mon, 12)","fromName":"Jonathon Mah","fromEmail":"me@jonathonmah.com","sentAt":"2011-09-14T02:34:18Z","receivedAt":"2011-09-14T02:34:18Z","isPatch":false,"sender":{"key":"me@jonathonmah.com","avatar":"https://avatars.githubusercontent.com/u/2748?v=4"},"body":"On 2011-09-12, at 14:59, Junio C Hamano wrote:\n\n>> [Stalled]\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>> \n>> I think this is a good idea, but it probably needs a re-roll.\n>> Cf. $gmane/176254, 176255, 166256\n> \n> What's the plan for this series? Do we still want to pursue it within the\n> timeframe for the next round?\n> \n> Is there any mergetool/difftool expert who volunteers to help moving this\n> topic forward?\n\n\nI'd love this to stay alive. As I've mentioned before, my relationship with shell is tenuous. My biggest problem is I don't have a mental model of how quoting works, so I end up writing tests and performing trial-and-error until it works.\n\n\nOn 2011-06-22, at 14:33, Junio C Hamano wrote:\n\n> Why do you need a loop here in the else clause, instead of just a single:\n> \n> \tfiles=$(git ls-files -u -- \"$@\" |...)\n\nSee above (the dumb loop isn't necessary; your suggestion is much better). Should I bother re-submitting with just this change?\n\n\n\nJonathon Mah\nme@JonathonMah.com\n"},{"id":"175513","messageId":"7vsjnysuyl.fsf@alter.siamese.dyndns.org","threadId":"28375","inReplyTo":"D3CA81F2-647B-4AD0-A4FC-4C22772FD791@JonathonMah.com","subject":"Re: What's cooking in git.git (Sep 2011, #04; Mon, 12)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2011-09-14T20:57:38Z","receivedAt":"2011-09-14T20:57:38Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Jonathon Mah <me@JonathonMah.com> writes:\n\n> On 2011-09-12, at 14:59, Junio C Hamano wrote:\n>\n>>> [Stalled]\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>> \n>> What's the plan for this series? Do we still want to pursue it within the\n>> timeframe for the next round?\n>> \n>> Is there any mergetool/difftool expert who volunteers to help moving this\n>> topic forward?\n>\n> I'd love this to stay alive. As I've mentioned before, my relationship\n> with shell is tenuous. My biggest problem is...\n\nHopefully volunteers can help moving this forward with \"coding\".\n\n  http://thread.gmane.org/gmane.comp.version-control.git/176215\n  http://thread.gmane.org/gmane.comp.version-control.git/176216\n\nThere were issues with the patches that were _not_ about the coding but\nabout the documentation and design.\n\nTopics with a stale version in 'pu' that are stalled are not even alive--\nthey are zombies that need to be wiped at some point, or replaced with\nupdated series, whichever comes first.\n"},{"id":"175636","messageId":"C5AD8BFC-DA48-4CE9-B821-D0076825F33C@JonathonMah.com","threadId":"28375","inReplyTo":"7vsjnysuyl.fsf@alter.siamese.dyndns.org","subject":"[PATCH] mergetool: Use args as pathspec to unmerged files","fromName":"Jonathon Mah","fromEmail":"me@jonathonmah.com","sentAt":"2011-09-16T02:12:10Z","receivedAt":"2011-09-16T02:12:10Z","isPatch":true,"sender":{"key":"me@jonathonmah.com","avatar":"https://avatars.githubusercontent.com/u/2748?v=4"},"body":"Mergetool now treats its path arguments as a pathspec (like other git\nsubcommands), restricting action to the given files and directories.\nFiles matching the pathspec are filtered so mergetool only acts on\nunmerged paths; previously it would assume each path argument was in an\nunresolved state, and get confused when it couldn't check out their\nother stages.\n\nRunning \"git mergetool subdir\" will prompt to resolve all conflicted\nblobs under subdir.\n\nSigned-off-by: Jonathon Mah <me@JonathonMah.com>\n---\nWith Junio's change, I'm happy with the code in git-mergetool.sh.\nI've tried to clarify the commit message since the first submission.\n\n Documentation/git-mergetool.txt |    7 ++--\n git-mergetool.sh                |   76 ++++++++++++++------------------------\n t/t7610-mergetool.sh            |   58 ++++++++++++++++++++---------\n 3 files changed, 72 insertions(+), 69 deletions(-)\n\ndiff --git a/Documentation/git-mergetool.txt b/Documentation/git-mergetool.txt\nindex 3470910..2a49de7 100644\n--- a/Documentation/git-mergetool.txt\n+++ b/Documentation/git-mergetool.txt\n@@ -17,9 +17,10 @@ Use `git mergetool` to run one of several merge utilities to resolve\n merge conflicts.  It is typically run after 'git merge'.\n \n If one or more <file> parameters are given, the merge tool program will\n-be run to resolve differences on each file.  If no <file> names are\n-specified, 'git mergetool' will run the merge tool program on every file\n-with merge conflicts.\n+be run to resolve differences on each file (skipping those without\n+conflicts).  Specifying a directory will include all unresolved files in\n+that path.  If no <file> names are specified, 'git mergetool' will run\n+the merge tool program on every file with merge conflicts.\n \n OPTIONS\n -------\ndiff --git a/git-mergetool.sh b/git-mergetool.sh\nindex 3c157bc..12a2706 100755\n--- a/git-mergetool.sh\n+++ b/git-mergetool.sh\n@@ -342,64 +342,44 @@ merge_keep_temporaries=\"$(git config --bool mergetool.keepTemporaries || echo fa\n \n last_status=0\n rollup_status=0\n-rerere=false\n-\n-files_to_merge() {\n-    if test \"$rerere\" = true\n-    then\n-\tgit rerere remaining\n-    else\n-\tgit ls-files -u | sed -e 's/^[^\t]*\t//' | sort -u\n-    fi\n-}\n-\n+files=\n \n if test $# -eq 0 ; then\n     cd_to_toplevel\n \n     if test -e \"$GIT_DIR/MERGE_RR\"\n     then\n-\trerere=true\n+\tfiles=$(git rerere remaining)\n+    else\n+\tfiles=$(git ls-files -u | sed -e 's/^[^\t]*\t//' | sort -u)\n     fi\n+else\n+    files=$(git ls-files -u -- \"$@\" | sed -e 's/^[^\t]*\t//' | sort -u)\n+fi\n \n-    files=$(files_to_merge)\n-    if test -z \"$files\" ; then\n-\techo \"No files need merging\"\n-\texit 0\n-    fi\n+if test -z \"$files\" ; then\n+    echo \"No files need merging\"\n+    exit 0\n+fi\n \n-    # Save original stdin\n-    exec 3<&0\n+# Save original stdin\n+exec 3<&0\n \n-    printf \"Merging:\\n\"\n-    printf \"$files\\n\"\n+printf \"Merging:\\n\"\n+printf \"$files\\n\"\n \n-    files_to_merge |\n-    while IFS= read i\n-    do\n-\tif test $last_status -ne 0; then\n-\t    prompt_after_failed_merge <&3 || exit 1\n-\tfi\n-\tprintf \"\\n\"\n-\tmerge_file \"$i\" <&3\n-\tlast_status=$?\n-\tif test $last_status -ne 0; then\n-\t    rollup_status=1\n-\tfi\n-    done\n-else\n-    while test $# -gt 0; do\n-\tif test $last_status -ne 0; then\n-\t    prompt_after_failed_merge || exit 1\n-\tfi\n-\tprintf \"\\n\"\n-\tmerge_file \"$1\"\n-\tlast_status=$?\n-\tif test $last_status -ne 0; then\n-\t    rollup_status=1\n-\tfi\n-\tshift\n-    done\n-fi\n+IFS='\n+'; for i in $files\n+do\n+    if test $last_status -ne 0; then\n+\tprompt_after_failed_merge <&3 || exit 1\n+    fi\n+    printf \"\\n\"\n+    merge_file \"$i\" <&3\n+    last_status=$?\n+    if test $last_status -ne 0; then\n+\trollup_status=1\n+    fi\n+done\n \n exit $rollup_status\ndiff --git a/t/t7610-mergetool.sh b/t/t7610-mergetool.sh\nindex cbc08e3..4aab2a7 100755\n--- a/t/t7610-mergetool.sh\n+++ b/t/t7610-mergetool.sh\n@@ -16,6 +16,7 @@ Testing basic merge tool invocation'\n test_expect_success 'setup' '\n     git config rerere.enabled true &&\n     echo master >file1 &&\n+    echo master spaced >\"spaced name\" &&\n     echo master file11 >file11 &&\n     echo master file12 >file12 &&\n     echo master file13 >file13 &&\n@@ -30,13 +31,14 @@ test_expect_success 'setup' '\n \tgit commit -m \"Add foo\"\n     ) &&\n     git submodule add git://example.com/submod submod &&\n-    git add file1 file1[1-4] subdir/file3 .gitmodules submod &&\n+    git add file1 \"spaced name\" file1[1-4] subdir/file3 .gitmodules submod &&\n     git commit -m \"add initial versions\" &&\n \n     git checkout -b branch1 master &&\n     git submodule update -N &&\n     echo branch1 change >file1 &&\n     echo branch1 newfile >file2 &&\n+    echo branch1 spaced >\"spaced name\" &&\n     echo branch1 change file11 >file11 &&\n     echo branch1 change file13 >file13 &&\n     echo branch1 sub >subdir/file3 &&\n@@ -47,7 +49,7 @@ test_expect_success 'setup' '\n \tgit commit -m \"Add bar on branch1\" &&\n \tgit checkout -b submod-branch1\n     ) &&\n-    git add file1 file11 file13 file2 subdir/file3 submod &&\n+    git add file1 \"spaced name\" file11 file13 file2 subdir/file3 submod &&\n     git rm file12 &&\n     git commit -m \"branch1 changes\" &&\n \n@@ -55,6 +57,7 @@ test_expect_success 'setup' '\n     git submodule update -N &&\n     echo master updated >file1 &&\n     echo master new >file2 &&\n+    echo master updated spaced >\"spaced name\" &&\n     echo master updated file12 >file12 &&\n     echo master updated file14 >file14 &&\n     echo master new sub >subdir/file3 &&\n@@ -65,7 +68,7 @@ test_expect_success 'setup' '\n \tgit commit -m \"Add bar on master\" &&\n \tgit checkout -b submod-master\n     ) &&\n-    git add file1 file12 file14 file2 subdir/file3 submod &&\n+    git add file1 \"spaced name\" file12 file14 file2 subdir/file3 submod &&\n     git rm file11 &&\n     git commit -m \"master updates\" &&\n \n@@ -78,8 +81,8 @@ test_expect_success 'custom mergetool' '\n     git checkout -b test1 branch1 &&\n     git submodule update -N &&\n     test_must_fail git merge master >/dev/null 2>&1 &&\n-    ( yes \"\" | git mergetool file1 >/dev/null 2>&1 ) &&\n-    ( yes \"\" | git mergetool file2 >/dev/null 2>&1 ) &&\n+    ( yes \"\" | git mergetool file1 file1 ) &&\n+    ( yes \"\" | git mergetool file2 \"spaced name\" >/dev/null 2>&1 ) &&\n     ( yes \"\" | git mergetool subdir/file3 >/dev/null 2>&1 ) &&\n     ( yes \"d\" | git mergetool file11 >/dev/null 2>&1 ) &&\n     ( yes \"d\" | git mergetool file12 >/dev/null 2>&1 ) &&\n@@ -97,6 +100,7 @@ test_expect_success 'mergetool crlf' '\n     test_must_fail git merge master >/dev/null 2>&1 &&\n     ( yes \"\" | git mergetool file1 >/dev/null 2>&1 ) &&\n     ( yes \"\" | git mergetool file2 >/dev/null 2>&1 ) &&\n+    ( yes \"\" | git mergetool \"spaced name\" >/dev/null 2>&1 ) &&\n     ( yes \"\" | git mergetool subdir/file3 >/dev/null 2>&1 ) &&\n     ( yes \"d\" | git mergetool file11 >/dev/null 2>&1 ) &&\n     ( yes \"d\" | git mergetool file12 >/dev/null 2>&1 ) &&\n@@ -126,7 +130,7 @@ test_expect_success 'mergetool on file in parent dir' '\n     (\n \tcd subdir &&\n \t( yes \"\" | git mergetool ../file1 >/dev/null 2>&1 ) &&\n-\t( yes \"\" | git mergetool ../file2 >/dev/null 2>&1 ) &&\n+\t( yes \"\" | git mergetool ../file2 ../spaced\\ name >/dev/null 2>&1 ) &&\n \t( yes \"d\" | git mergetool ../file11 >/dev/null 2>&1 ) &&\n \t( yes \"d\" | git mergetool ../file12 >/dev/null 2>&1 ) &&\n \t( yes \"l\" | git mergetool ../submod >/dev/null 2>&1 ) &&\n@@ -180,6 +184,24 @@ test_expect_success 'mergetool skips resolved paths when rerere is active' '\n     git reset --hard\n '\n \n+test_expect_success 'mergetool takes partial path' '\n+    git config rerere.enabled false &&\n+    git checkout -b test12 branch1 &&\n+    git submodule update -N &&\n+    test_must_fail git merge master &&\n+\n+    #shouldnt need these lines\n+    #( yes \"d\" | git mergetool file11 >/dev/null 2>&1 ) &&\n+    #( yes \"d\" | git mergetool file12 >/dev/null 2>&1 ) &&\n+    #( yes \"l\" | git mergetool submod >/dev/null 2>&1 ) &&\n+    #( yes \"\" | git mergetool file1 file2 >/dev/null 2>&1 ) &&\n+\n+    ( yes \"\" | git mergetool subdir ) &&\n+\n+    test \"$(cat subdir/file3)\" = \"master new sub\" &&\n+    git reset --hard\n+'\n+\n test_expect_success 'deleted vs modified submodule' '\n     git checkout -b test6 branch1 &&\n     git submodule update -N &&\n@@ -189,7 +211,7 @@ test_expect_success 'deleted vs modified submodule' '\n     git checkout -b test6.a test6 &&\n     test_must_fail git merge master &&\n     test -n \"$(git ls-files -u)\" &&\n-    ( yes \"\" | git mergetool file1 file2 subdir/file3 >/dev/null 2>&1 ) &&\n+    ( yes \"\" | git mergetool file1 file2 spaced\\ name subdir/file3 >/dev/null 2>&1 ) &&\n     ( yes \"d\" | git mergetool file11 file12 >/dev/null 2>&1 ) &&\n     ( yes \"r\" | git mergetool submod ) &&\n     rmdir submod && mv submod-movedaside submod &&\n@@ -205,7 +227,7 @@ test_expect_success 'deleted vs modified submodule' '\n     git submodule update -N &&\n     test_must_fail git merge master &&\n     test -n \"$(git ls-files -u)\" &&\n-    ( yes \"\" | git mergetool file1 file2 subdir/file3 >/dev/null 2>&1 ) &&\n+    ( yes \"\" | git mergetool file1 file2 spaced\\ name subdir/file3 >/dev/null 2>&1 ) &&\n     ( yes \"d\" | git mergetool file11 file12 >/dev/null 2>&1 ) &&\n     ( yes \"l\" | git mergetool submod ) &&\n     test ! -e submod &&\n@@ -218,7 +240,7 @@ test_expect_success 'deleted vs modified submodule' '\n     git submodule update -N &&\n     test_must_fail git merge test6 &&\n     test -n \"$(git ls-files -u)\" &&\n-    ( yes \"\" | git mergetool file1 file2 subdir/file3 >/dev/null 2>&1 ) &&\n+    ( yes \"\" | git mergetool file1 file2 spaced\\ name subdir/file3 >/dev/null 2>&1 ) &&\n     ( yes \"d\" | git mergetool file11 file12 >/dev/null 2>&1 ) &&\n     ( yes \"r\" | git mergetool submod ) &&\n     test ! -e submod &&\n@@ -233,7 +255,7 @@ test_expect_success 'deleted vs modified submodule' '\n     git submodule update -N &&\n     test_must_fail git merge test6 &&\n     test -n \"$(git ls-files -u)\" &&\n-    ( yes \"\" | git mergetool file1 file2 subdir/file3 >/dev/null 2>&1 ) &&\n+    ( yes \"\" | git mergetool file1 file2 spaced\\ name subdir/file3 >/dev/null 2>&1 ) &&\n     ( yes \"d\" | git mergetool file11 file12 >/dev/null 2>&1 ) &&\n     ( yes \"l\" | git mergetool submod ) &&\n     test \"$(cat submod/bar)\" = \"master submodule\" &&\n@@ -256,7 +278,7 @@ test_expect_success 'file vs modified submodule' '\n     git checkout -b test7.a branch1 &&\n     test_must_fail git merge master &&\n     test -n \"$(git ls-files -u)\" &&\n-    ( yes \"\" | git mergetool file1 file2 subdir/file3 >/dev/null 2>&1 ) &&\n+    ( yes \"\" | git mergetool file1 file2 spaced\\ name subdir/file3 >/dev/null 2>&1 ) &&\n     ( yes \"d\" | git mergetool file11 file12 >/dev/null 2>&1 ) &&\n     ( yes \"r\" | git mergetool submod ) &&\n     rmdir submod && mv submod-movedaside submod &&\n@@ -271,7 +293,7 @@ test_expect_success 'file vs modified submodule' '\n     git checkout -b test7.b test7 &&\n     test_must_fail git merge master &&\n     test -n \"$(git ls-files -u)\" &&\n-    ( yes \"\" | git mergetool file1 file2 subdir/file3 >/dev/null 2>&1 ) &&\n+    ( yes \"\" | git mergetool file1 file2 spaced\\ name subdir/file3 >/dev/null 2>&1 ) &&\n     ( yes \"d\" | git mergetool file11 file12 >/dev/null 2>&1 ) &&\n     ( yes \"l\" | git mergetool submod ) &&\n     git submodule update -N &&\n@@ -286,7 +308,7 @@ test_expect_success 'file vs modified submodule' '\n     git submodule update -N &&\n     test_must_fail git merge test7 &&\n     test -n \"$(git ls-files -u)\" &&\n-    ( yes \"\" | git mergetool file1 file2 subdir/file3 >/dev/null 2>&1 ) &&\n+    ( yes \"\" | git mergetool file1 file2 spaced\\ name subdir/file3 >/dev/null 2>&1 ) &&\n     ( yes \"d\" | git mergetool file11 file12 >/dev/null 2>&1 ) &&\n     ( yes \"r\" | git mergetool submod ) &&\n     test -d submod.orig &&\n@@ -301,7 +323,7 @@ test_expect_success 'file vs modified submodule' '\n     git submodule update -N &&\n     test_must_fail git merge test7 &&\n     test -n \"$(git ls-files -u)\" &&\n-    ( yes \"\" | git mergetool file1 file2 subdir/file3 >/dev/null 2>&1 ) &&\n+    ( yes \"\" | git mergetool file1 file2 spaced\\ name subdir/file3 >/dev/null 2>&1 ) &&\n     ( yes \"d\" | git mergetool file11 file12 >/dev/null 2>&1 ) &&\n     ( yes \"l\" | git mergetool submod ) &&\n     test \"$(cat submod/bar)\" = \"master submodule\" &&\n@@ -388,7 +410,7 @@ test_expect_success 'directory vs modified submodule' '\n     test \"$(cat submod/file16)\" = \"not a submodule\" &&\n     rm -rf submod.orig &&\n \n-    git reset --hard &&\n+    git reset --hard >/dev/null 2>&1 &&\n     test_must_fail git merge master &&\n     test -n \"$(git ls-files -u)\" &&\n     test ! -e submod.orig &&\n@@ -400,7 +422,7 @@ test_expect_success 'directory vs modified submodule' '\n     ( cd submod && git clean -f && git reset --hard ) &&\n     git submodule update -N &&\n     test \"$(cat submod/bar)\" = \"master submodule\" &&\n-    git reset --hard && rm -rf submod-movedaside &&\n+    git reset --hard >/dev/null 2>&1 && rm -rf submod-movedaside &&\n \n     git checkout -b test11.c master &&\n     git submodule update -N &&\n@@ -410,7 +432,7 @@ test_expect_success 'directory vs modified submodule' '\n     git submodule update -N &&\n     test \"$(cat submod/bar)\" = \"master submodule\" &&\n \n-    git reset --hard &&\n+    git reset --hard >/dev/null 2>&1 &&\n     git submodule update -N &&\n     test_must_fail git merge test11 &&\n     test -n \"$(git ls-files -u)\" &&\n@@ -418,7 +440,7 @@ test_expect_success 'directory vs modified submodule' '\n     ( yes \"r\" | git mergetool submod ) &&\n     test \"$(cat submod/file16)\" = \"not a submodule\" &&\n \n-    git reset --hard master &&\n+    git reset --hard master >/dev/null 2>&1 &&\n     ( cd submod && git clean -f && git reset --hard ) &&\n     git submodule update -N\n '\n-- \n1.7.5.4\n"},{"id":"175660","messageId":"7vaaa4fdix.fsf@alter.siamese.dyndns.org","threadId":"28375","inReplyTo":"C5AD8BFC-DA48-4CE9-B821-D0076825F33C@JonathonMah.com","subject":"Re: [PATCH] mergetool: Use args as pathspec to unmerged files","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2011-09-16T20:17:10Z","receivedAt":"2011-09-16T20:17:10Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Jonathon Mah <me@JonathonMah.com> writes:\n\n> Mergetool now treats its path arguments as a pathspec (like other git\n> subcommands), restricting action to the given files and directories.\n> Files matching the pathspec are filtered so mergetool only acts on\n> unmerged paths; previously it would assume each path argument was in an\n> unresolved state, and get confused when it couldn't check out their\n> other stages.\n>\n> Running \"git mergetool subdir\" will prompt to resolve all conflicted\n> blobs under subdir.\n>\n> Signed-off-by: Jonathon Mah <me@JonathonMah.com>\n\nIt looks like this simplifies the code quote a bit and make the result\neasier to follow ;-)  Nicely done.\n\nAs nobody reads from a pipe in while loop and runs merge_file or prompt\ninside, there no longer is a reason to redirect the original standard\ninput and make it available, hence we could perhaps add this patch on top\nof your change.\n\nAck from mergetool/difftool folks?\n\nThanks.\n\n git-mergetool.sh |   10 ++++------\n 1 files changed, 4 insertions(+), 6 deletions(-)\n\ndiff --git a/git-mergetool.sh b/git-mergetool.sh\nindex 83551c7..0a06bde 100755\n--- a/git-mergetool.sh\n+++ b/git-mergetool.sh\n@@ -362,20 +362,18 @@ if test -z \"$files\" ; then\n     exit 0\n fi\n \n-# Save original stdin\n-exec 3<&0\n-\n printf \"Merging:\\n\"\n printf \"$files\\n\"\n \n IFS='\n-'; for i in $files\n+'\n+for i in $files\n do\n     if test $last_status -ne 0; then\n-\tprompt_after_failed_merge <&3 || exit 1\n+\tprompt_after_failed_merge || exit 1\n     fi\n     printf \"\\n\"\n-    merge_file \"$i\" <&3\n+    merge_file \"$i\"\n     last_status=$?\n     if test $last_status -ne 0; then\n \trollup_status=1\n"},{"id":"176148","messageId":"20110925004459.GA19780@gmail.com","threadId":"28375","inReplyTo":"7vaaa4fdix.fsf@alter.siamese.dyndns.org","subject":"Re: [PATCH] mergetool: Use args as pathspec to unmerged files","fromName":"David Aguilar","fromEmail":"davvid@gmail.com","sentAt":"2011-09-25T00:45:01Z","receivedAt":"2011-09-25T00:45:01Z","isPatch":true,"sender":{"key":"davvid@gmail.com","avatar":"https://avatars.githubusercontent.com/u/13196?v=4"},"body":"On Fri, Sep 16, 2011 at 01:17:10PM -0700, Junio C Hamano wrote:\n> Jonathon Mah <me@JonathonMah.com> writes:\n> \n> > Mergetool now treats its path arguments as a pathspec (like other git\n> > subcommands), restricting action to the given files and directories.\n> > Files matching the pathspec are filtered so mergetool only acts on\n> > unmerged paths; previously it would assume each path argument was in an\n> > unresolved state, and get confused when it couldn't check out their\n> > other stages.\n> >\n> > Running \"git mergetool subdir\" will prompt to resolve all conflicted\n> > blobs under subdir.\n> >\n> > Signed-off-by: Jonathon Mah <me@JonathonMah.com>\n> \n> It looks like this simplifies the code quote a bit and make the result\n> easier to follow ;-)  Nicely done.\n> \n> As nobody reads from a pipe in while loop and runs merge_file or prompt\n> inside, there no longer is a reason to redirect the original standard\n> input and make it available, hence we could perhaps add this patch on top\n> of your change.\n> \n> Ack from mergetool/difftool folks?\n\nI've been on vacation and am just catching up with my git mail.\n\nI just tested:\n6bed9767daaa \"Merge branch 'jm/mergetool-pathspec' into pu\"\nand it looks good to me.\n\nFWIW,\nAcked-by: David Aguilar <davvid@gmail.com>\n\nBeing able to do \"git mergetool -- subdir\" is very nice!\nThanks guys,\n-- \n\t\t\t\t\tDavid\n"},{"id":"176225","messageId":"7v4nzz5kb5.fsf@alter.siamese.dyndns.org","threadId":"28375","inReplyTo":"20110925004459.GA19780@gmail.com","subject":"Re: [PATCH] mergetool: Use args as pathspec to unmerged files","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2011-09-26T16:40:14Z","receivedAt":"2011-09-26T16:40:14Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"David Aguilar <davvid@gmail.com> writes:\n\n>> Ack from mergetool/difftool folks?\n> ...\n> Acked-by: David Aguilar <davvid@gmail.com>\n>\n> Being able to do \"git mergetool -- subdir\" is very nice!\n> Thanks guys,\n\nThanks.\n"},{"id":"176481","messageId":"4E845EAB.2060002@obry.net","threadId":"28375","inReplyTo":"CABPQNSae3MU34pRw87CNkEUBbTpE5h9UVT3cqv3iFnWs1wQ5FQ@mail.gmail.com","subject":"Re: What's cooking in git.git (Sep 2011, #04; Mon, 12)","fromName":"Pascal Obry","fromEmail":"pascal@obry.net","sentAt":"2011-09-29T12:03:55Z","receivedAt":"2011-09-29T12:03:55Z","isPatch":false,"sender":{"key":"pascal@obry.net","avatar":"https://avatars.githubusercontent.com/u/467069?v=4"},"body":"Le 13/09/2011 11:46, Erik Faye-Lund a écrit :\n> On Tue, Sep 13, 2011 at 12:56 AM, Junio C Hamano<gitster@pobox.com>  wrote:\n>> Junio C Hamano<gitster@pobox.com>  writes:\n>>\n>>> [Stalled]\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>>\n>> Honestly I lost track of this one. How would we want to proceed on this\n>> topic after 1.7.7?\n>>\n>> Asking help from Windows folks.\n>\n> I believe Hannes pointed out that there were some work left to be done\n> on it (\"enable backslash processing in setup.c:prefix_filename()\"),\n> and I didn't spot a new version after that. He also pointed out that\n> enabling backslash processing would cause you to lose the ability to\n> escape special characters, but it sounds to me like this is something\n> that simply \"comes with the territory\" of supporting win32-paths in a\n> POSIX-ish environment, and is already the governing convention in\n> Cygwin. But I'm not an expert on this topic; Cygwin is not something I\n> usually care much about.\n\nSame here, not expert. I just can say that this at least fixes a real \nproblem and the patches (provided by Theo and I) are going in the right \ndirection. They may be some other issues about Windows backslash (my \nexperiences show that there is very entertaining issues with this!) but \nI don't think we should hold those patches except if someone prove them \nto be wrong.\n\nPascal.\n\n-- \n\n--|------------------------------------------------------\n--| Pascal Obry                           Team-Ada Member\n--| 45, rue Gabriel Peri - 78114 Magny Les Hameaux FRANCE\n--|------------------------------------------------------\n--|    http://www.obry.net  -  http://v2p.fr.eu.org\n--| \"The best way to travel is by means of imagination\"\n--|\n--| gpg --keyserver keys.gnupg.net --recv-key F949BD3B\n"}]}