{"thread":{"id":"30312","subject":"What's cooking in git.git (Apr 2012, #09; Mon, 23)","startedAt":"2012-04-23T22:04:39Z","lastAt":"2012-04-27T15:03:45Z","messageCount":13,"participants":["Junio C Hamano","Nelson Benitez Leon","Thomas Rast","Jeff King"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"189917","messageId":"xmqq8vhmhzpk.fsf@junio.mtv.corp.google.com","threadId":"30312","inReplyTo":null,"subject":"What's cooking in git.git (Apr 2012, #09; Mon, 23)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2012-04-23T22:04:39Z","receivedAt":"2012-04-23T22:04:39Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Here are the topics that have been cooking.  Commits prefixed with '-' are\nonly in 'pu' (proposed updates) while commits prefixed with '+' are in 'next'.\n\nThe fourth batch of topics in this cycle is now in 'master'.\n\nYou can find the changes described here in the integration branches of the\nrepositories listed at\n\n    http://git-blame.blogspot.com/p/git-public-repositories.html\n\n--------------------------------------------------\n[Graduated to \"master\"]\n\n* bw/test-fix-grep-gnuism (2012-04-19) 1 commit\n  (merged to 'next' on 2012-04-20 at ee7eec4)\n + t9400: fix gnuism in grep\n\nFix two places that were the only place in the test suite that gave \"a\\+\"\nto platform grep and expected it to mean one or more \"a\", which is a\nblatant GNUism.\n\n* jc/maint-blame-minimal (2012-04-11) 1 commit\n  (merged to 'next' on 2012-04-20 at 2213284)\n + blame: accept --need-minimal\n\n\"git blame\" started missing quite a few changes from the origin since we\nstopped using the diff minimalization by default in v1.7.2 era.\n\n* jh/apply-free-patch (2012-04-11) 9 commits\n  (merged to 'next' on 2012-04-15 at 8cccf57)\n + apply: document buffer ownership rules across functions\n + apply: tighten constness of line buffer\n + apply: drop unused macro\n + apply: free unused fragments for submodule patch\n + apply: free patch->result\n + apply: release memory for fn_table\n + apply: free patch->{def,old,new}_name fields\n + apply: rename free_patch() to free_patch_list()\n + apply: do not leak patches and fragments\n\nValgrind reports quite a lot of discarded memory inside apply.\n\n* jk/rebase-i-submodule-conflict-only (2012-04-09) 1 commit\n  (merged to 'next' on 2012-04-15 at 94367a8)\n + rebase -i continue: don't skip commits that only change submodules\n\nGiving \"--continue\" to a conflicted \"rebase -i\" session skipped a commit\nthat only results in changes to submodules.\n\n* jl/maint-submodule-recurse-fetch (2012-04-14) 1 commit\n  (merged to 'next' on 2012-04-20 at 2769d39)\n + submodules: recursive fetch also checks new tags for submodule commits\n\n* jn/debian-customizes-default-editor (2012-04-10) 2 commits\n  (merged to 'next' on 2012-04-15 at 0fc85c3)\n + var doc: advertise current DEFAULT_PAGER and DEFAULT_EDITOR settings\n + var doc: default editor and pager are configurable at build time\n\n* jn/fast-import-doc (2012-04-15) 1 commit\n  (merged to 'next' on 2012-04-20 at b9a7250)\n + fast-import doc: cat-blob and ls responses need to be consumed quickly\n\n* jn/more-i18ncmp (2012-04-14) 3 commits\n  (merged to 'next' on 2012-04-20 at b5548a3)\n + test: am of empty patch should not succeed\n + test: use test_i18ncmp for \"Patch format detection failed\" message\n + test: do not rely on US English tracking-info messages\n\n* lp/maint-diff-three-dash-with-graph (2012-03-20) 3 commits\n  (merged to 'next' on 2012-04-20 at b6cf0ff)\n + t4202: add test for \"log --graph --stat -p\" separator lines\n + log --graph: fix break in graph lines\n + log --graph --stat: three-dash separator should come after graph lines\n\n* ms/remote-usage-string (2012-04-09) 1 commit\n  (merged to 'next' on 2012-04-15 at 704be8f)\n + remote: update builtin usage\n\nAs an independent follow-up, we may want to rethink how the overall usage\nstring and subcommand usage strings are maintained.\n\n* pw/git-p4 (2012-04-09) 3 commits\n  (merged to 'next' on 2012-04-15 at 81ea41a)\n + git p4: use \"git p4\" directly in tests\n + git p4: update name in script\n + git-p4: move to toplevel\n (this branch is used by ld/git-p4-tags-and-labels.)\n\n* rj/mingw-isguid (2012-04-18) 1 commit\n  (merged to 'next' on 2012-04-20 at 9dbebca)\n + compat/mingw.h: Set S_ISUID to prevent a fast-import test failure\n\n* rj/sh-setup-mswin-pwd (2012-04-18) 1 commit\n  (merged to 'next' on 2012-04-20 at 6125f8d)\n + git-sh-setup.sh: Add an pwd() function for MinGW\n\n* rj/submodule-mswin-path (2012-04-18) 1 commit\n  (merged to 'next' on 2012-04-20 at fd9f8b3)\n + git-submodule.sh: Don't use $path variable in eval_gettext string\n\n* rl/show-empty-prefix (2012-04-10) 1 commit\n  (merged to 'next' on 2012-04-15 at b2e5938)\n + rev-parse --show-prefix: add in trailing newline\n\n* rs/commit-list-sort-in-batch (2012-04-17) 4 commits\n  (merged to 'next' on 2012-04-17 at 21208e9)\n + mergesort: rename it to llist_mergesort()\n  (merged to 'next' on 2012-04-15 at 39fe527)\n + revision: insert unsorted, then sort in prepare_revision_walk()\n + commit: use mergesort() in commit_list_sort_by_date()\n + add mergesort() for linked lists\n\n* sl/test-wc-l-line-count (2012-04-11) 1 commit\n  (merged to 'next' on 2012-04-15 at 40797d9)\n + tests: modernise style: more uses of test_line_count\n\n--------------------------------------------------\n[New Topics]\n\n* cc/fix-missing-va-end-in-revert (2012-04-21) 1 commit\n  (merged to 'next' on 2012-04-23 at b90eb70)\n + revert: add missing va_end\n\nWill merge to 'master'.\n\n* pw/t5800-import-race-fix (2012-04-22) 2 commits\n - fixup! git-remote-testgit: fix race when spawning fast-import\n - git-remote-testgit: fix race when spawning fast-import\n\nWill merge to 'next' after squashing the fixup!\n\n* nd/i18n (2012-04-23) 11 commits\n - i18n: bundle: mark strings for translation\n - i18n: index-pack: mark strings for translation\n - i18n: apply: update say_patch_name to give translators complete sentence\n - i18n: apply: mark strings for translation\n - i18n: remote: mark strings for translation\n - i18n: make warn_dangling_symref() automatically append \\n\n - i18n: help: mark strings for translation\n - i18n: mark relative dates for translation\n - fixup! strbuf: convenience format functions with \\n automatically appended\n - strbuf: convenience format functions with \\n automatically appended\n - Makefile: feed all header files to xgettext\n\nWill merge to 'next' after squashing the fixup!\nWe can address the pseudo-underline of section headers in \"git help --all\"\nas a follow-up patch.\n\n* rk/git-svn-ignore-sigpipe (2012-04-23) 3 commits\n - git-svn: drop redundant blocking of SIGPIPE\n - git-svn: ignore SIGPIPE\n - git-svn: use POSIX::sigprocmask to block signals\n\nWaiting for an Ack from Eric.\n\n--------------------------------------------------\n[Stalled]\n\n* jc/split-blob (2012-04-03) 7 commits\n - chunked-object: streaming checkout\n - chunked-object: fallback checkout codepaths\n - bulk-checkin: support chunked-object encoding\n - bulk-checkin: allow the same data to be multiply hashed\n - new representation types in the packstream\n - packfile: use varint functions\n + varint: make it available outside the context of pack\n (this branch is tangled with jc/index-v4.)\n\nNot ready.\n\nI finished the streaming checkout codepath, but as explained in\n127b177 (bulk-checkin: support chunked-object encoding, 2011-11-30),\nthese are still early steps of a long and painful journey. At least\npack-objects and fsck need to learn the new encoding for the series\nto be usable locally, and then index-pack/unpack-objects needs to\nlearn it to be used remotely.\n\nGiven that I heard a lot of noise that people want large files, and\nthat I was asked by somebody at GitTogether'11 privately for an\nadvice on how to pay developers (not me) to help adding necessary\nsupport, I am somewhat dissapointed that the original patch series\nthat was sent almost two months ago still remains here without much\ncomments and updates from the developer community. I even made the\ninterface to the logic that decides where to split chunks easily\nreplaceable, and I deliberately made the logic in the original patch\nextremely stupid to entice others, especially the \"bup\" fanboys, to\ncome up with a better logic, thinking that giving people an easy\ntarget to shoot for, they may be encouraged to help out. The plan is\nnot working :-(.\n\n--------------------------------------------------\n[Cooking]\n\n* nh/empty-rebase (2012-04-20) 7 commits\n - fixup! git-rebase: add keep_empty flag\n - git-rebase: add keep_empty flag\n - fixup! git-cherry-pick: Add test to validate new options\n - git-cherry-pick: Add test to validate new options\n - fixup! git-cherry-pick: Add keep-redundant-commits option\n - git-cherry-pick: Add keep-redundant-commits option\n - git-cherry-pick: add allow-empty option\n\nWill merge to 'next' after squashing the fixup!\n\n* rt/cherry-revert-conflict-summary (2012-04-19) 1 commit\n  (merged to 'next' on 2012-04-23 at e7766c2)\n + sequencer: remove additional blank line\n\nIn the older days, the header \"Conflicts:\" in \"cherry-pick\" and\n\"merge\" was separated by a blank line from the list of paths that\nfollow for readability, but when \"merge\" was rewritten in C, we lost\nit by mistake. Remove the newline from \"cherry-pick\" to make them\nmatch again.\n\nWill merge to 'master'.\n\n* js/fast-import-test-9300 (2012-04-20) 1 commit\n  (merged to 'next' on 2012-04-23 at a9bd236)\n + t9300-fast-import: avoid 'exit' in test_expect_success snippets\n\nWill merge to 'master'.\n\n* jm/maint-strncpy-diff-no-index (2012-04-16) 1 commit\n  (merged to 'next' on 2012-04-20 at 638ed9f)\n + diff: avoid stack-buffer-read-overrun for very long name\n\nWill merge to 'master'.\n\n* lp/diffstat-with-graph (2012-04-18) 6 commits\n  (merged to 'next' on 2012-04-23 at 8de0747)\n + Prevent graph_width of stat width from falling below min\n + t4052: Test diff-stat output with minimum columns\n + t4052: Adjust --graph --stat output for prefixes\n + Adjust stat width calculations to take --graph output into account\n + Add output_prefix_length to diff_options\n + t4052: test --stat output with --graph\n\nLooked reasonable.\nWill merge to 'master'.\n\n* jc/merge-reduce-parents-early (2012-04-18) 5 commits\n  (merged to 'next' on 2012-04-23 at 16e7e53)\n + fmt-merge-msg: discard needless merge parents\n + builtin/merge.c: reduce parents early\n + builtin/merge.c: collect other parents early\n + builtin/merge.c: remove \"remoteheads\" global variable\n + merge tests: octopus with redundant parents\n\nWill merge to 'master'.\n\n* cb/cherry-pick-rev-path-confusion (2012-04-15) 1 commit\n  (merged to 'next' on 2012-04-23 at f872ba5)\n + cherry-pick: do not expect file arguments\n\nThe command line parser choked \"git cherry-pick $name\" when $name can be\nboth revision name and a pathname, even though $name can never be a path\nin the context of the command.\n\nThe issue the patch addresses is real, but the way it is implemented felt\nunnecessarily invasive a bit.  It may be cleaner for this caller to add\nthe \"--\" to the end of the argv_array it passes to setup_revisions().\n\nWill merge to 'master'.\n\n* cb/daemon-test-race-fix (2012-04-19) 1 commit\n - git-daemon wrapper to wait until daemon is ready\n\nFix race condition between starting and waiting for git-daemon in the\ntest.\n\nWill merge to 'next'.\n\n* cb/maint-report-mount-point-correctly-in-setup (2012-04-15) 1 commit\n  (merged to 'next' on 2012-04-23 at 9e0c8b4)\n + properly keep track of current working directory\n\nThe filesystem boundary was not correctly reported when .git directory\ndiscovery stopped at a mount point.\n\nWill merge to 'master'.\n\n* rl/maint-stash-i18n-save-error (2012-04-14) 1 commit\n  (merged to 'next' on 2012-04-23 at 3692fec)\n + stash: use eval_gettextln correctly\n\nWill merge to 'master'.\n\n* nd/columns (2012-04-20) 9 commits\n - tag: add --column\n - column: support piping stdout to external git-column process\n - status: add --column\n - branch: add --column\n - help: reuse print_columns() for help -a\n - column: add dense layout support\n - column: add columnar layout\n - Stop starting pager recursively\n - Add column layout skeleton and git-column\n\nWill merge to 'next'.\n\n* nl/http-proxy-more (2012-04-19) 7 commits\n - http: fix proxy password passing\n - http: fix proxy authentication\n - http: rename HTTP_REAUTH to HTTP_AUTH_RETRY\n - http: Avoid limit of retrying request only twice\n - http: handle proxy authentication failure (error 407)\n - http: handle proxy proactive authentication\n - http: try http_proxy env var when http.proxy config option is not set\n\nThe code to talk to http proxies learn to use the same credential\nAPI used to talk to the final http destinations.  This still needs\nto peek into $ENV{HTTPS_PROXY}.\n\n* mb/fetch-call-a-non-branch-a-ref (2012-04-17) 2 commits\n  (merged to 'next' on 2012-04-20 at df2c57e)\n + fetch: describe new refs based on where it came from\n + fetch: Give remote_ref to update_local_ref() as well\n\nWill merge to 'master'.\n\n* mh/ref-api (2012-04-10) 13 commits\n  (merged to 'next' on 2012-04-20 at 94e9384)\n + do_for_each_ref(): only iterate over the subtree that was requested\n + refs: store references hierarchically\n + sort_ref_dir(): simplify logic\n + refs.c: rename ref_array -> ref_dir\n + struct ref_entry: nest the value part in a union\n + check_refname_component(): return 0 for zero-length components\n + free_ref_entry(): new function\n + names_conflict(): simplify implementation\n + repack_without_ref(): reimplement using do_for_each_ref_in_array()\n + do_for_each_ref_in_arrays(): new function\n + do_for_each_ref_in_array(): new function\n + refs: manage current_ref within do_one_ref()\n + refs.c: reorder definitions more logically\n\nAllows walking only a sub-hierarchy in refs/*.\n\nWill merge to 'master'.\n\n* jk/repack-no-explode-objects-from-old-pack (2012-04-18) 4 commits\n  (merged to 'next' on 2012-04-20 at 4eb2534)\n + gc: use argv-array for sub-commands\n + argv-array: add a new \"pushl\" method\n + argv-array: refactor empty_argv initialization\n  (merged to 'next' on 2012-04-15 at 7586e50)\n + gc: do not explode objects which will be immediately pruned\n\n* ld/git-p4-tags-and-labels (2012-04-11) 2 commits\n  (merged to 'next' on 2012-04-15 at 1b1e9a1)\n + git p4: import/export of labels to/from p4\n + git p4: Fixing script editor checks\n\nWaiting for a follow-up to address the review comments\nby Pete Wyckoff Message-ID: <20120418113422.GB19994@padd.com>\n\n* zj/upstream-error-message (2012-04-15) 5 commits\n  (merged to 'next' on 2012-04-20 at 1ed9682)\n + i18n: mark @{upstream} error messages for translation\n + Be more specific if upstream branch is not tracked\n + Provide better message for barnhc_wiht_tpyo@{u}\n + Provide branch name in error message when using @{u}\n + t1507: add tests to document @{upstream} behaviour\n\nWill merge to 'master'.\n\n* fc/completion-tests (2012-04-21) 7 commits\n  (merged to 'next' on 2012-04-23 at 9b42326)\n + completion: fix completion after 'git --option <TAB>'\n + completion: avoid trailing space for --exec-path\n + completion: add missing general options\n + completion: simplify by using $prev\n + completion: simplify __gitcomp_1\n + tests: add tests for the __gitcomp() completion helper function\n + tests: add initial bash completion tests\n\nWill merge to 'master'.\n\n* nd/threaded-index-pack (2012-04-19) 4 commits\n - index-pack: disable threading if NO_PREAD is defined\n - index-pack: support multithreaded delta resolving\n - index-pack: split second pass obj handling into own function\n - compat/win32/pthread.h: Add an pthread_key_delete() implementation\n\n* cb/http-multi-curl-auth (2012-04-14) 4 commits\n  (merged to 'next' on 2012-04-23 at b0259be)\n + http: use newer curl options for setting credentials\n + http: clean up leak in init_curl_http_auth\n + fix http auth with multiple curl handles\n + http auth fails with multiple curl handles\n\nFixes http authentication breakage when we keep multiple HTTP requests in\nflight using curl-multi.\n\nWill merge to 'master'.\n\n* pw/fast-import-dataref-parsing (2012-04-10) 1 commit\n  (merged to 'next' on 2012-04-20 at c299a63)\n + fast-import: tighten parsing of datarefs\n\nWill merge to 'master'.\n\n* tr/xdiff-fast-hash (2012-04-09) 1 commit\n - xdiff: load full words in the inner loop of xdl_hash_record\n\nWill merge to 'next'.\n\n* jc/index-v4 (2012-04-04) 10 commits\n  (merged to 'next' on 2012-04-19 at 5e4b029)\n + update-index: upgrade/downgrade on-disk index version\n + read-cache.c: write prefix-compressed names in the index\n + read-cache.c: read prefix-compressed names in index on-disk version v4\n + read-cache.c: move code to copy incore to ondisk cache to a helper function\n + read-cache.c: move code to copy ondisk to incore cache to a helper function\n + read-cache.c: report the header version we do not understand\n + read-cache.c: make create_from_disk() report number of bytes it consumed\n + read-cache.c: allow unaligned mapping of the index file\n + cache.h: hide on-disk index details\n + varint: make it available outside the context of pack\n (this branch is tangled with jc/split-blob.)\n\nTrivially shrinks the on-disk size of the index file to save both I/O and\nchecksum overhead.  The \"v4\" format represented here may not be what we\neventually want to have, but the preparatory refactoring steps and the way\nhow backward compatibility is retained should give plenty to learn to GSoC\nstudent-hopefuls.\n\nThe bottom one makes use of \"varint\" encoding from the stalled\njc/split-blob topic.\n\n* mk/gitweb-diff-hl (2012-04-11) 8 commits\n  (merged to 'next' on 2012-04-20 at 54179a2)\n + gitweb: Refinement highlightning in combined diffs\n + gitweb: Highlight interesting parts of diff\n + gitweb: Push formatting diff lines to print_diff_chunk()\n + gitweb: Use print_diff_chunk() for both side-by-side and inline diffs\n + gitweb: Extract print_sidebyside_diff_lines()\n + gitweb: Pass esc_html_hl_regions() options to esc_html()\n + gitweb: esc_html_hl_regions(): Don't create empty <span> elements\n + gitweb: Use descriptive names in esc_html_hl_regions()\n\nWill merge to 'master'.\n\n* it/fetch-pack-many-refs (2012-04-10) 4 commits\n  (merged to 'next' on 2012-04-20 at e2126d7)\n + remote-curl: main test case for the OS command line overflow\n + fetch-pack: test cases for the new --stdin option\n + remote-curl: send the refs to fetch-pack on stdin\n + fetch-pack: new --stdin option to read refs from stdin\n\nWill merge to 'master'.\n\n* hv/submodule-recurse-push (2012-03-30) 3 commits\n  (merged to 'next' on 2012-04-20 at fe99e3d)\n + push: teach --recurse-submodules the on-demand option\n + Refactor submodule push check to use string list instead of integer\n + Teach revision walking machinery to walk multiple times sequencially\n\nWill merge to 'master'.\n\n* th/difftool-diffall (2012-04-23) 8 commits\n - difftool: print list of valid tools with '--tool-help'\n - difftool: teach difftool to handle directory diffs\n - difftool: eliminate setup_environment function\n - difftool: stop appending '.exe' to git\n - difftool: remove explicit change of PATH\n - difftool: exit(0) when usage is printed\n - difftool: add '--no-gui' option\n - difftool: parse options using Getopt::Long\n\nRolls the two-directory-diff logic from diffall script (in contrib/) into\n\"git difftool\" framework. \n\nStill being reworked.\n\n* jc/run-hook-env-1 (2012-03-11) 1 commit\n - run_hook(): enhance the interface to pass arbitrary environment\n\nNot urgent.\n\nUpdates run_hook() API to be much less specific to \"commit\".  It would\nonly be useful if people start doing more interesting things with hooks.\n\n* mm/push-default-switch-warning (2012-04-23) 10 commits\n - fixup! push: introduce new push.default mode \"simple\"\n - fixup! t5528-push-default.sh: add helper functions\n - push: suggested updates to push configuration documentation\n - push: start warning upcoming default change for push.default\n - push: document the future default change for push.default (matching -> simple)\n - t5570: use explicit push refspec\n - push: introduce new push.default mode \"simple\"\n - t5528-push-default.sh: add helper functions\n - Undocument deprecated alias 'push.default=tracking'\n - Documentation: explain push.default option a bit more\n\nIntroduces 'simple' mode to be used as the push.default in a future\nversion of git.  I think the series is almost there modulo some minor\nnits.\n\nThis topic should be renamed to \"mm/push-simple-method\" and the last\nstep to start warning made into a separate topic that build on it, but\nthe review comments need to be addressed in a reroll before that\n"},{"id":"189954","messageId":"4F966F0C.6090504@seap.minhap.es","threadId":"30312","inReplyTo":"xmqq8vhmhzpk.fsf@junio.mtv.corp.google.com","subject":"Re: What's cooking in git.git (Apr 2012, #09; Mon, 23)","fromName":"Nelson Benitez Leon","fromEmail":"nelsonjesus.benitez@seap.minhap.es","sentAt":"2012-04-24T09:14:52Z","receivedAt":"2012-04-24T09:14:52Z","isPatch":false,"sender":{"key":"nelsonjesus.benitez@seap.minhap.es","avatar":null},"body":"On 04/24/2012 12:04 AM, Junio C Hamano wrote:\n> \n> * nl/http-proxy-more (2012-04-19) 7 commits\n>  - http: fix proxy password passing\n>  - http: fix proxy authentication\n>  - http: rename HTTP_REAUTH to HTTP_AUTH_RETRY\n>  - http: Avoid limit of retrying request only twice\n>  - http: handle proxy authentication failure (error 407)\n>  - http: handle proxy proactive authentication\n>  - http: try http_proxy env var when http.proxy config option is not set\n> \n\nI'm a bit lost with the state of this, I read your last discussion and\nyou sent patches to support a proxy url without the protocol part, I assume\nthat's done and apart from that there is a bug in the LIBCURL_VERSION which\nis an easy fix I could send a patch for.\n\n> The code to talk to http proxies learn to use the same credential\n> API used to talk to the final http destinations.  This still needs\n> to peek into $ENV{HTTPS_PROXY}.\n\nMy original patch already peeked in HTTPS_PROXY env var, I post the\nrelevant part:\n \n+\tif (!curl_http_proxy) {\n+\t\tconst char *env_proxy, *no_proxy;\n+\t\tchar *env_proxy_var;\n+\t\tint read_http_proxy;\n+\t\tstruct strbuf buf = STRBUF_INIT;\n+\t\tcredential_from_url(&cre_url, url);\n+\t\tstrbuf_addf(&buf, \"%s_proxy\", cre_url.protocol);\n+\t\tenv_proxy_var = strbuf_detach(&buf, NULL);\n+\t\tenv_proxy = getenv(env_proxy_var);\n\n                ^^ HERE ^^\n\n+\t\tif (env_proxy) {\n+\t\t\tread_http_proxy = 1;\n+\t\t\tno_proxy = getenv(\"no_proxy\");\n+\t\t\tif (no_proxy && (!strcmp(\"*\", no_proxy) || strstr(no_proxy, cre_url.host)))\n+\t\t\t\tread_http_proxy = 0;\n+\t\t\t\n+\t\t\tif (read_http_proxy)\n+\t\t\t\tcurl_http_proxy = xstrdup(env_proxy);\n+\t\t}\n+\t\tfree(env_proxy_var);\n+\t}\n \tif (curl_http_proxy) {\n\nso are you referring to something else ?\n"},{"id":"189981","messageId":"xmqqipgpgdpl.fsf@junio.mtv.corp.google.com","threadId":"30312","inReplyTo":"4F966F0C.6090504@seap.minhap.es","subject":"Re: What's cooking in git.git (Apr 2012, #09; Mon, 23)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2012-04-24T18:57:26Z","receivedAt":"2012-04-24T18:57:26Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Nelson Benitez Leon <nelsonjesus.benitez@seap.minhap.es> writes:\n\n> My original patch already peeked in HTTPS_PROXY env var, I post the\n> relevant part:\n>  \n> +\tif (!curl_http_proxy) {\n> +\t\tconst char *env_proxy, *no_proxy;\n> +\t\tchar *env_proxy_var;\n> +\t\tint read_http_proxy;\n> +\t\tstruct strbuf buf = STRBUF_INIT;\n> +\t\tcredential_from_url(&cre_url, url);\n> +\t\tstrbuf_addf(&buf, \"%s_proxy\", cre_url.protocol);\n> +\t\tenv_proxy_var = strbuf_detach(&buf, NULL);\n> +\t\tenv_proxy = getenv(env_proxy_var);\n>\n>                 ^^ HERE ^^\n\nWhen cre_url.protocol is \"https\", this looks at $ENV{\"https_proxy\"}, no?\n\n    http://curl.haxx.se/docs/manpage.html#ENVIRONMENT\n\n> so are you referring to something else ?\n\nThere may be some other things that break people's settings but\nregarding PROXY, the above was wnat I was referring to.\n"},{"id":"190040","messageId":"xmqqobqgeex1.fsf@junio.mtv.corp.google.com","threadId":"30312","inReplyTo":"xmqq8vhmhzpk.fsf@junio.mtv.corp.google.com","subject":"What's cooking (incremental)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2012-04-25T02:14:18Z","receivedAt":"2012-04-25T02:14:18Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"I've merged the following topics to 'next':\n\n  * tr/xdiff-fast-hash (2012-04-09) 1 commit\n  * cb/daemon-test-race-fix (2012-04-19) 1 commit\n  * ld/git-p4-tags-and-labels (2012-04-24) 6 commits\n  * nh/empty-rebase (2012-04-24) 4 commits\n  * pw/t5800-import-race-fix (2012-04-24) 1 commit\n  * nd/i18n (2012-04-24) 10 commits\n\nSome of them are scary and somewhat iffy (I had to apply a last minute\nfix and rebuild 'next' to one of them), so please test them throughly to\nhelp us avoid breakages on 'master'.\n\nOn the 'master' front, these have graduated:\n\n  * cc/fix-missing-va-end-in-revert (2012-04-21) 1 commit\n  * fc/completion-tests (2012-04-21) 7 commits\n  * hv/submodule-recurse-push (2012-03-30) 3 commits\n  * it/fetch-pack-many-refs (2012-04-10) 4 commits\n  * mh/ref-api (2012-04-10) 13 commits\n  * mk/gitweb-diff-hl (2012-04-11) 8 commits\n  * pw/fast-import-dataref-parsing (2012-04-10) 1 commit\n  * zj/upstream-error-message (2012-04-15) 5 commits\n\nThanks.\n"},{"id":"190048","messageId":"87r4vcqiy8.fsf@thomas.inf.ethz.ch","threadId":"30312","inReplyTo":"xmqqobqgeex1.fsf@junio.mtv.corp.google.com","subject":"Re: What's cooking (incremental)","fromName":"Thomas Rast","fromEmail":"trast@student.ethz.ch","sentAt":"2012-04-25T09:06:23Z","receivedAt":"2012-04-25T09:06:23Z","isPatch":false,"sender":{"key":"tr@thomasrast.ch","avatar":"https://avatars.githubusercontent.com/u/153510?v=4"},"body":"Junio C Hamano <gitster@pobox.com> writes:\n\n> I've merged the following topics to 'next':\n>\n>   * tr/xdiff-fast-hash (2012-04-09) 1 commit\n>   * cb/daemon-test-race-fix (2012-04-19) 1 commit\n>   * ld/git-p4-tags-and-labels (2012-04-24) 6 commits\n>   * nh/empty-rebase (2012-04-24) 4 commits\n>   * pw/t5800-import-race-fix (2012-04-24) 1 commit\n>   * nd/i18n (2012-04-24) 10 commits\n>\n> Some of them are scary and somewhat iffy (I had to apply a last minute\n> fix and rebuild 'next' to one of them), so please test them throughly to\n> help us avoid breakages on 'master'.\n\nUmm, which one?\n\nAs the author of the first, I'm kind of curious whether I need to\nscramble to fix (or at least further test) something :-)\n\n-- \nThomas Rast\ntrast@{inf,student}.ethz.ch\n"},{"id":"190060","messageId":"xmqq8vhjet85.fsf@junio.mtv.corp.google.com","threadId":"30312","inReplyTo":"87r4vcqiy8.fsf@thomas.inf.ethz.ch","subject":"Re: What's cooking (incremental)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2012-04-25T15:17:30Z","receivedAt":"2012-04-25T15:17:30Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Thomas Rast <trast@student.ethz.ch> writes:\n\n> Junio C Hamano <gitster@pobox.com> writes:\n>\n>> I've merged the following topics to 'next':\n>>\n>>   * tr/xdiff-fast-hash (2012-04-09) 1 commit\n>>   * cb/daemon-test-race-fix (2012-04-19) 1 commit\n>>   * ld/git-p4-tags-and-labels (2012-04-24) 6 commits\n>>   * nh/empty-rebase (2012-04-24) 4 commits\n>>   * pw/t5800-import-race-fix (2012-04-24) 1 commit\n>>   * nd/i18n (2012-04-24) 10 commits\n>>\n>> Some of them are scary and somewhat iffy (I had to apply a last minute\n>> fix and rebuild 'next' to one of them), so please test them throughly to\n>> help us avoid breakages on 'master'.\n>\n> Umm, which one?\n>\n> As the author of the first, I'm kind of curious whether I need to\n> scramble to fix (or at least further test) something :-)\n\nAuthors do not need to \"scramble\"; they are trusted to have done as good\na job as they can possibly do before submitting anyway.\n\nIt is sufficient to just use the resulting Git in your daily work, but\npaying extra attention to notice if there is any behaviour that feels\nstrange.\n"},{"id":"190111","messageId":"20120426130854.GC27785@sigill.intra.peff.net","threadId":"30312","inReplyTo":"4F994AC3.2070708@seap.minhap.es","subject":"Re: [PATCH] Try an uppercase version of $prot_proxy env var","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2012-04-26T13:08:54Z","receivedAt":"2012-04-26T13:08:54Z","isPatch":true,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Thu, Apr 26, 2012 at 03:16:51PM +0200, Nelson Benitez Leon wrote:\n\n> Try an uppercase version of $prot_proxy env var when thelowercase version \n> is not found.\n> [...]\n> diff --git a/http.c b/http.c\n> index 6a98195..bf9c20e 100644\n> --- a/http.c\n> +++ b/http.c\n> @@ -329,6 +329,13 @@ static CURL *get_curl_handle(const char *url)\n>  \t\tstrbuf_addf(&buf, \"%s_proxy\", cre_url.protocol);\n>  \t\tenv_proxy_var = strbuf_detach(&buf, NULL);\n>  \t\tenv_proxy = getenv(env_proxy_var);\n> +\t\tif (!env_proxy) {\n> +\t\t\tchar *p;\n> +\t\t\tfor (p = env_proxy_var; *p; p++) {\n> +\t\t\t\t*p = toupper(*p);\n> +\t\t\t}\n> +\t\t\tenv_proxy = getenv(env_proxy_var);\n> +\t\t}\n\nDon't we explicitly not want to do this when the protocol is http? Curl\ndoesn't respect HTTP_PROXY.\n\n-Peff\n"},{"id":"190107","messageId":"4F994AC3.2070708@seap.minhap.es","threadId":"30312","inReplyTo":"xmqqipgpgdpl.fsf@junio.mtv.corp.google.com","subject":"[PATCH] Try an uppercase version of $prot_proxy env var","fromName":"Nelson Benitez Leon","fromEmail":"nelsonjesus.benitez@seap.minhap.es","sentAt":"2012-04-26T13:16:51Z","receivedAt":"2012-04-26T13:16:51Z","isPatch":true,"sender":{"key":"nelsonjesus.benitez@seap.minhap.es","avatar":null},"body":"\nTry an uppercase version of $prot_proxy env var when thelowercase version \nis not found.\n\nSigned-off-by: Nelson Benitez Leon <nbenitezl@gmail.com>\n---\nThis is for pu branch where http-proxy-more is located.\n\n http.c |    7 +++++++\n 1 files changed, 7 insertions(+), 0 deletions(-)\n\ndiff --git a/http.c b/http.c\nindex 6a98195..bf9c20e 100644\n--- a/http.c\n+++ b/http.c\n@@ -329,6 +329,13 @@ static CURL *get_curl_handle(const char *url)\n \t\tstrbuf_addf(&buf, \"%s_proxy\", cre_url.protocol);\n \t\tenv_proxy_var = strbuf_detach(&buf, NULL);\n \t\tenv_proxy = getenv(env_proxy_var);\n+\t\tif (!env_proxy) {\n+\t\t\tchar *p;\n+\t\t\tfor (p = env_proxy_var; *p; p++) {\n+\t\t\t\t*p = toupper(*p);\n+\t\t\t}\n+\t\t\tenv_proxy = getenv(env_proxy_var);\n+\t\t}\n \t\tif (env_proxy) {\n \t\t\tread_http_proxy = 1;\n \t\t\tno_proxy = getenv(\"no_proxy\");\n-- \n1.7.7.6\n"},{"id":"190113","messageId":"xmqqipgma8t1.fsf@junio.mtv.corp.google.com","threadId":"30312","inReplyTo":"4F994AC3.2070708@seap.minhap.es","subject":"Re: [PATCH] Try an uppercase version of $prot_proxy env var","fromName":"Junio C Hamano","fromEmail":"junio@pobox.com","sentAt":"2012-04-26T14:04:26Z","receivedAt":"2012-04-26T14:04:26Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Nelson Benitez Leon <nelsonjesus.benitez@seap.minhap.es> writes:\n\n> Try an uppercase version of $prot_proxy env var when thelowercase version \n> is not found.\n\nYeah, something like that, but you should be careful not to try the\nuppercase HTTP_PROXY which cURL explicitly ignores on purpose.\n"},{"id":"190116","messageId":"xmqqehraa5ct.fsf@junio.mtv.corp.google.com","threadId":"30312","inReplyTo":"20120426130854.GC27785@sigill.intra.peff.net","subject":"Re: [PATCH] Try an uppercase version of $prot_proxy env var","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2012-04-26T15:18:58Z","receivedAt":"2012-04-26T15:18:58Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Jeff King <peff@peff.net> writes:\n\n> Don't we explicitly not want to do this when the protocol is http? Curl\n> doesn't respect HTTP_PROXY.\n\nYes.  Here is what I'll queue.\n\n-- >8 --\nFrom: Nelson Benitez Leon <nelsonjesus.benitez@seap.minhap.es>\nDate: Thu, 26 Apr 2012 15:16:51 +0200\nSubject: [PATCH] http: try an uppercase version of $proto_proxy\n\nFall back to an uppercase version of $prot_proxy environment variable\nwhen the lowercase version is not found (but do not do that for http).\n\nSigned-off-by: Nelson Benitez Leon <nbenitezl@gmail.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>\n---\n http.c |    6 ++++++\n 1 file changed, 6 insertions(+)\n\ndiff --git a/http.c b/http.c\nindex ad2dc36..262778b 100644\n--- a/http.c\n+++ b/http.c\n@@ -320,6 +320,12 @@ static CURL *get_curl_handle(const char *url)\n \t\tstrbuf_addf(&buf, \"%s_proxy\", cre_url.protocol);\n \t\tenv_proxy_var = strbuf_detach(&buf, NULL);\n \t\tenv_proxy = getenv(env_proxy_var);\n+\t\tif (!env_proxy && strcmp(\"http_proxy\", env_proxy_var)) {\n+\t\t\tchar *p;\n+\t\t\tfor (p = env_proxy_var; *p; p++)\n+\t\t\t\t*p = toupper(*p);\n+\t\t\tenv_proxy = getenv(env_proxy_var);\n+\t\t}\n \t\tif (env_proxy) {\n \t\t\tread_http_proxy = 1;\n \t\t\tno_proxy = getenv(\"no_proxy\");\n-- \n1.7.10.475.g8b959\n"},{"id":"190117","messageId":"4F9977FB.8010601@seap.minhap.es","threadId":"30312","inReplyTo":"xmqqehraa5ct.fsf@junio.mtv.corp.google.com","subject":"Re: [PATCH] Try an uppercase version of $prot_proxy env var","fromName":"Nelson Benitez Leon","fromEmail":"nelsonjesus.benitez@seap.minhap.es","sentAt":"2012-04-26T16:29:47Z","receivedAt":"2012-04-26T16:29:47Z","isPatch":true,"sender":{"key":"nelsonjesus.benitez@seap.minhap.es","avatar":null},"body":"On 04/26/2012 05:18 PM, Junio C Hamano wrote:\n> Jeff King <peff@peff.net> writes:\n> \n>> Don't we explicitly not want to do this when the protocol is http? Curl\n>> doesn't respect HTTP_PROXY.\n> \n> Yes.  Here is what I'll queue.\n\nFine. You beat me on time, anyway I send you my version just for the sake\nof having done it.\n\n>From 66c5e59f486088d12b48a2e624a98242e7ebce46 Mon Sep 17 00:00:00 2001\nFrom: Nelson Benitez Leon <nbenitezl@gmail.com>\nDate: Thu, 26 Apr 2012 14:44:03 +0200\nSubject: [PATCH] http: try an uppercase version of $prot_proxy env var\n\nIf the lowercase version of $prot_proxy is not found\nthen try the uppercase one, excluding HTTP_PROXY case\nas it is ignored by cURL.\n\nSigned-off-by: Nelson Benitez Leon <nbenitezl@gmail.com>\n---\n http.c |    7 +++++++\n 1 files changed, 7 insertions(+), 0 deletions(-)\n\ndiff --git a/http.c b/http.c\nindex 6a98195..0ca5bba 100644\n--- a/http.c\n+++ b/http.c\n@@ -329,6 +329,13 @@ static CURL *get_curl_handle(const char *url)\n \t\tstrbuf_addf(&buf, \"%s_proxy\", cre_url.protocol);\n \t\tenv_proxy_var = strbuf_detach(&buf, NULL);\n \t\tenv_proxy = getenv(env_proxy_var);\n+\t\tif (!env_proxy && strcmp(\"http\", cre_url.protocol)) { /* skip HTTP_PROXY as cURL ignores it */\n+\t\t\tchar *p;\n+\t\t\tfor (p = env_proxy_var; *p; p++) {\n+\t\t\t\t*p = toupper(*p);\n+\t\t\t}\n+\t\t\tenv_proxy = getenv(env_proxy_var);\n+\t\t}\n \t\tif (env_proxy) {\n \t\t\tread_http_proxy = 1;\n \t\t\tno_proxy = getenv(\"no_proxy\");\n-- \n1.7.7.6\n"},{"id":"190194","messageId":"20120427081220.GC12092@sigill.intra.peff.net","threadId":"30312","inReplyTo":"xmqqehraa5ct.fsf@junio.mtv.corp.google.com","subject":"Re: [PATCH] Try an uppercase version of $prot_proxy env var","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2012-04-27T08:12:20Z","receivedAt":"2012-04-27T08:12:20Z","isPatch":true,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Thu, Apr 26, 2012 at 08:18:58AM -0700, Junio C Hamano wrote:\n\n> Jeff King <peff@peff.net> writes:\n> \n> > Don't we explicitly not want to do this when the protocol is http? Curl\n> > doesn't respect HTTP_PROXY.\n> \n> Yes.  Here is what I'll queue.\n\nI had raised several other points in my (admittedly belated) review[1].\nSo I was kind of expecting a re-roll rather than a patch on top. It was\nmostly readability issues, but there is also a potential segfault when\nthe url has no protocol. I'm not sure it can happen in normal git use,\nbut:\n\n  git remote-https url-without-protocol\n\nmay dereference null (it's via snprintf, so on my system glibc magically\nrewrites this as \"(null)_proxy\", but other systems will segfault).\n\n-Peff\n\n[1] http://article.gmane.org/gmane.comp.version-control.git/195443\n    http://article.gmane.org/gmane.comp.version-control.git/195445\n"},{"id":"190216","messageId":"xmqqvckl9pym.fsf@junio.mtv.corp.google.com","threadId":"30312","inReplyTo":"20120427081220.GC12092@sigill.intra.peff.net","subject":"Re: [PATCH] Try an uppercase version of $prot_proxy env var","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2012-04-27T15:03:45Z","receivedAt":"2012-04-27T15:03:45Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Jeff King <peff@peff.net> writes:\n\n> On Thu, Apr 26, 2012 at 08:18:58AM -0700, Junio C Hamano wrote:\n>\n>> Jeff King <peff@peff.net> writes:\n>> \n>> > Don't we explicitly not want to do this when the protocol is http? Curl\n>> > doesn't respect HTTP_PROXY.\n>> \n>> Yes.  Here is what I'll queue.\n>\n> I had raised several other points in my (admittedly belated) review[1].\n> So I was kind of expecting a re-roll rather than a patch on top. It was\n> mostly readability issues, but there is also a potential segfault when\n> the url has no protocol. I'm not sure it can happen in normal git use,\n> but:\n>\n>   git remote-https url-without-protocol\n>\n> may dereference null (it's via snprintf, so on my system glibc magically\n> rewrites this as \"(null)_proxy\", but other systems will segfault).\n>\n> -Peff\n>\n> [1] http://article.gmane.org/gmane.comp.version-control.git/195443\n>     http://article.gmane.org/gmane.comp.version-control.git/195445\n\nIndeed.  Thanks for reminding me not to advance this beyond 'pu'.\n"}]}