{"thread":{"id":"38463","subject":"[ANNOUNCE] Git v2.3.0-rc2","startedAt":"2015-01-27T23:35:02Z","lastAt":"2015-02-16T09:58:44Z","messageCount":31,"participants":["Junio C Hamano","Tom G. Christensen","Jeff King","Andreas Schwab","Kyle J. McKay","brian m. carlson","Brandon Casey"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"255354","messageId":"xmqqpp9ziyqh.fsf@gitster.dls.corp.google.com","threadId":"38463","inReplyTo":null,"subject":"[ANNOUNCE] Git v2.3.0-rc2","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2015-01-27T23:35:02Z","receivedAt":"2015-01-27T23:35:02Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"A release candidate Git v2.3.0-rc2 is now available for testing\nat the usual places.\n\nHopefully this can become the final v2.3.0 next week, almost as-is.\nThere are no regression noticed and/or fixed since -rc1, and the\nchanges are mostly l10n and minor documentation updates.\n\nThe tarballs are found at:\n\n    https://www.kernel.org/pub/software/scm/git/testing/\n\nThe following public repositories all have a copy of the 'v2.3.0-rc2'\ntag and the 'master' branch that the tag points at:\n\n  url = https://kernel.googlesource.com/pub/scm/git/git\n  url = git://repo.or.cz/alt-git.git\n  url = https://code.google.com/p/git-core/\n  url = git://git.sourceforge.jp/gitroot/git-core/git.git\n  url = git://git-core.git.sourceforge.net/gitroot/git-core/git-core\n  url = https://github.com/gitster/git\n\nGit v2.3 Release Notes (draft)\n==============================\n\nUpdates since v2.2\n------------------\n\nPorts\n\n * Recent gcc toolchain on Cygwin started throwing compilation warning,\n   which has been squelched.\n\n * A few updates to build on platforms that lack tv_nsec,\n   clock_gettime, CLOCK_MONOTONIC and HMAC_CTX_cleanup (e.g. older\n   RHEL) have been added.\n\n\nUI, Workflows & Features\n\n * It was cumbersome to use \"GIT_SSH\" mechanism when the user wanted\n   to pass an extra set of arguments to the underlying ssh.  A new\n   environment variable GIT_SSH_COMMAND can be used for this.\n\n * A request to store an empty note via \"git notes\" meant to remove\n   note from the object but with --allow-empty we will store a\n   (surprise!)  note that is empty.\n\n * \"git interpret-trailers\" learned to properly handle the\n   \"Conflicts:\" block at the end.\n\n * \"git am\" learned \"--message-id\" option to copy the message ID of\n   the incoming e-mail to the log message of resulting commit.\n\n * \"git clone --reference=<over there>\" learned the \"--dissociate\"\n   option to go with it; it borrows objects from the reference object\n   store while cloning only to reduce network traffic and then\n   dissociates the resulting clone from the reference by performing\n   local copies of borrowed objects.\n\n * \"git send-email\" learned \"--transfer-encoding\" option to force a\n   non-fault Content-Transfer-Encoding header (e.g. base64).\n\n * \"git send-email\" normally identifies itself via X-Mailer: header in\n   the message it sends out.  A new command line flag --no-xmailer\n   allows the user to squelch the header.\n\n * \"git push\" into a repository with a working tree normally refuses\n   to modify the branch that is checked out.  The command learned to\n   optionally do an equivalent of \"git reset --hard\" only when there\n   is no change to the working tree and the index instead, which would\n   be useful to \"deploy\" by pushing into a repository.\n\n * \"git new-workdir\" (in contrib/) can be used to populate an empty\n   and existing directory now.\n\n * Credential helpers are asked in turn until one of them give\n   positive response, which is cumbersome to turn off when you need to\n   run Git in an automated setting.  The credential helper interface\n   learned to allow a helper to say \"stop, don't ask other helpers.\"\n   Also GIT_TERMINAL_PROMPT environment can be set to false to disable\n   our built-in prompt mechanism for passwords.\n\n * \"git branch -d\" (delete) and \"git branch -m\" (move) learned to\n   honor \"-f\" (force) flag; unlike many other subcommands, the way to\n   force these have been with separate \"-D/-M\" options, which was\n   inconsistent.\n\n * \"diff-highlight\" filter (in contrib/) allows its color output to be\n   customized via configuration variables.\n\n * \"git imap-send\" learned to take \"-v\" (verbose) and \"-q\" (quiet)\n   command line options.\n\n * \"git remote add $name $URL\" is now allowed when \"url.$URL.insteadOf\"\n   is already defined.\n\n * \"git imap-send\" now can be built to use cURL library to talk to\n   IMAP servers (if the library is recent enough, of course).\n   This allows you to use authenticate method other than CRAM-MD5,\n   among other things.\n\n * \"git imap-send\" now allows GIT_CURL_VERBOSE environment variable to\n   control the verbosity when talking via the cURL library.\n\n * The prompt script (in contrib/) learned to optionally hide prompt\n   when in an ignored directory by setting GIT_PS1_HIDE_IF_PWD_IGNORED\n   shell variable.\n\n\nPerformance, Internal Implementation, Development Support etc.\n\n * Earlier we made \"rev-list --object-edge\" more aggressively list the\n   objects at the edge commits, in order to reduce number of objects　\n   fetched into a shallow repository, but the change affected cases\n   other than \"fetching into a shallow repository\" and made it\n   unusably slow (e.g. fetching into a normal repository should not\n   have to suffer the overhead from extra processing).  Limit it to a\n   more specific case by introducing --objects-edge-aggressive, a new\n   option to rev-list.\n\n * Squelched useless compiler warnings on Mac OS X regarding the\n   crypto API.\n\n * The procedure to generate unicode table has been simplified.\n\n * Some filesystems assign filemodes in a strange way, fooling then\n   automatic \"filemode trustability\" check done during a new\n   repository creation.  The initialization codepath has been hardened\n   against this issue.\n\n * The codepath in \"git remote update --prune\" to drop many refs has\n   been optimized.\n\n * The API into get_merge_bases*() family of functions was easy to\n   misuse, which has been corrected to make it harder to do so.\n\n * Long overdue departure from the assumption that S_IFMT is shared by\n   everybody made in 2005, which was necessary to port to z/OS.\n\n * \"git push\" and \"git fetch\" did not communicate an overlong refname\n   correctly.  Now it uses 64kB sideband to accommodate longer ones.\n\n * Recent GPG changes the keyring format and drops support for RFC1991\n   formatted signatures, breaking our existing tests.\n\n * \"git-prompt\" (in contrib/) used a variable from the global scope,\n   possibly contaminating end-user's namespace.\n\n\nAlso contains various documentation updates and code clean-ups.\n\n\nFixes since v2.2\n----------------\n\nUnless otherwise noted, all the fixes since v2.2 in the maintenance\ntrack are contained in this release (see the maintenance releases'\nnotes for details).\n\n * \"git http-push\" over WebDAV (aka dumb http-push) was broken in\n   v2.2.2 when parsing a symbolic ref, resulting in a bogus request\n   that gets rejected by recent versions of cURL library.\n   (merge f6786c8 jk/http-push-symref-fix later to maint).\n\n * The logic in \"git bisect bad HEAD\" etc. to avoid forcing the test\n   of the common ancestor of bad and good commits was broken.\n   (merge 07913d5 cc/bisect-rev-parsing later to maint).\n\n * \"git checkout-index --temp=$target $path\" did not work correctly\n   for paths outside the current subdirectory in the project.\n   (merge 74c4de5 es/checkout-index-temp later to maint).\n\n * The report from \"git checkout\" on a branch that builds on another\n   local branch by setting its branch.*.merge to branch name (not a\n   full refname) incorrectly said that the upstream is gone.\n   (merge 05e7368 jc/checkout-local-track-report later to maint).\n\n * With The git-prompt support (in contrib/), using the exit status of\n   the last command in the prompt, e.g.  PS1='$(__git_ps1) $? ', did\n   not work well, because the helper function stomped on the exit\n   status.\n   (merge 6babe76 tf/prompt-preserve-exit-status later to maint).\n\n * Recent update to \"git commit\" broke amending an existing commit\n   with bogus author/committer lines without a valid e-mail address.\n   (merge c83a509 jk/commit-date-approxidate later to maint).\n\n * The lockfile API used to get confused which file to clean up when\n   the process moved the $cwd after creating a lockfile.\n   (merge fa137f6 nd/lockfile-absolute later to maint).\n\n * Traditionally we tried to avoid interpreting date strings given by\n   the user as future dates, e.g. GIT_COMMITTER_DATE=2014-12-10 when\n   used early November 2014 was taken as \"October 12, 2014\" because it\n   is likely that a date in the future, December 10, is a mistake.\n   This heuristics has been loosened to allow people to express future\n   dates (most notably, --until=<date> may want to be far in the\n   future) and we no longer tiebreak by future-ness of the date when\n\n    (1) ISO-like format is used, and\n    (2) the string can make sense interpreted as both y-m-d and y-d-m.\n\n   Git may still have to use the heuristics to tiebreak between dd/mm/yy\n   and mm/dd/yy, though.\n   (merge d372395 jk/approxidate-avoid-y-d-m-over-future-dates later to maint).\n\n * Git did not correctly read an overlong refname from a packed refs\n   file.\n   (merge ea41783 jk/read-packed-refs-without-path-max later to maint).\n\n * \"git apply\" was described in the documentation to take --ignore-date\n   option, which it does not.\n   (merge 0cef4e7 rw/apply-does-not-take-ignore-date later to maint).\n\n * \"git add -i\" did not notice when the interactive command input\n   stream went away and kept asking the same question.\n   (merge a8bec7a jk/add-i-read-error later to maint).\n\n * \"git send-email\" did not handle RFC 2047 encoded headers quite\n   right.\n   (merge ab47e2a rd/send-email-2047-fix later to maint).\n\n * New tag object format validation added in 2.2 showed garbage after\n   a tagname it reported in its error message.\n   (merge a1e920a js/fsck-tag-validation later to maint).\n\n * The code that reads the reflog from the newer to the older entries\n   did not handle an entry that crosses a boundary of block it uses to\n   read them correctly.\n   (merge 69216bf jk/for-each-reflog-ent-reverse later to maint).\n\n * \"git diff -B -M\" after making a new copy B out of an existing file\n   A and then editing A extensively ought to report that B was created\n   by copying A and A was modified, which is what \"git diff -C\"\n   reports, but it instead said A was renamed to B and A was edited\n   heavily in place.  This was not just incoherent but also failed to\n   apply with \"git apply\".  The report has been corrected to match what\n   \"git diff -C\" produces for this case.\n   (merge 6936b58 jc/diff-b-m later to maint).\n\n * In files we pre-populate for the user to edit with commented hints,\n   a line of hint that is indented with a tab used to show as '#' (or\n   any comment char), ' ' (space), and then the hint text that began\n   with the tab, which some editors flag as an indentation error (tab\n   following space).  We now omit the space after the comment char in\n   such a case.\n   (merge d55aeb7 jc/strbuf-add-lines-avoid-sp-ht-sequence later to maint).\n\n * \"git ls-tree\" does not support path selection based on negative\n   pathspecs, but did not error out when negative pathspecs are given.\n   (merge f1f6224 nd/ls-tree-pathspec later to maint).\n\n * The function sometimes returned a non-freeable memory and some\n   other times returned a piece of memory that must be freed, leading\n   to inevitable leaks.\n   (merge 59362e5 jc/exec-cmd-system-path-leak-fix later to maint).\n\n * The code to abbreviate an object name to its short unique prefix\n   has been optimized when no abbreviation was requested.\n   (merge 61e704e mh/find-uniq-abbrev later to maint).\n\n * \"git add --ignore-errors ...\" did not ignore an error to\n   give a file that did not exist.\n   (merge 1d31e5a mg/add-ignore-errors later to maint).\n\n * \"git checkout $treeish $path\", when $path in the index and the\n   working tree already matched what is in $treeish at the $path,\n   still overwrote the $path unnecessarily.\n   (merge c5326bd jk/checkout-from-tree later to maint).\n\n * \"git config --get-color\" did not parse its command line arguments\n   carefully.\n   (merge cb35722 jk/colors-fix later to maint).\n\n * open() emulated on Windows platforms did not give EISDIR upon\n   an attempt to open a directory for writing.\n   (merge ba6fad0 js/windows-open-eisdir-error later to maint).\n\n * A few code paths used abs() when they should have used labs() on\n   long integers.\n   (merge 83915ba rs/maint-config-use-labs later to maint).\n   (merge 31a8aa1 rs/receive-pack-use-labs later to maint).\n\n * \"gitweb\" used to depend on a behaviour recent CGI.pm deprecated.\n   (merge 13dbf46 jk/gitweb-with-newer-cgi-multi-param later to maint).\n\n * \"git init\" (hence \"git clone\") initialized the per-repository\n   configuration file .git/config with x-bit by mistake.\n   (merge 1f32ecf mh/config-flip-xbit-back-after-checking later to maint).\n\n * Recent update in Git 2.2 started creating objects/info/packs and\n   info/refs files with permission bits tighter than user's umask.\n   (merge d91175b jk/prune-packed-server-info later to maint).\n\n * Git 2.0 was supposed to make the \"simple\" mode for the default of\n   \"git push\", but it didn't.\n   (merge 00a6fa0 jk/push-simple later to maint).\n\n * \"Everyday\" document had a broken link.\n   (merge 366c8d4 po/everyday-doc later to maint).\n\n * A few test fixes.\n   (merge 880ef58 jk/no-perl-tests later to maint).\n\n * The build procedure did not bother fixing perl and python scripts\n   when NO_PERL and NO_PYTHON build-time configuration changed.\n   (merge ca2051d jk/rebuild-perl-scripts-with-no-perl-seting-change later to maint).\n\n * The usage string of \"git log\" command was marked incorrectly for\n   l10n.\n   (merge e66dc0c km/log-usage-string-i18n later to maint).\n\n * \"git for-each-ref\" mishandled --format=\"%(upstream:track)\" when a\n   branch is marked to have forked from a non-existing branch.\n   (merge b6160d9 rc/for-each-ref-tracking later to maint).\n\n----------------------------------------------------------------\n\nChanges since v2.3.0-rc1 are as follows:\n\nAlex Henrie (1):\n      l10n: ca.po: update translation\n\nAlexander Kuleshov (1):\n      cat-file: use \"type\" and \"size\" from outer scope\n\nBenedikt Heine (1):\n      l10n: de.po: fix typo\n\nJean-Noel Avila (2):\n      l10n: fr.po v2.3.0 round 1\n      l10n: fr.po v2.3.0 round 2\n\nJiang Xin (5):\n      l10n: git.pot: v2.3.0 round 1 (13 new, 11 removed)\n      l10n: zh_CN: translations for git v2.3.0-rc0\n      l10n: git.pot: v2.3.0 round 2 (3 updated)\n      l10n: zh_CN: various fixes on command arguments\n      l10n: correct indentation of show-branch usage\n\nJoan Perals (1):\n      l10n: ca.po: various fixes\n\nJohannes Sixt (1):\n      t1050-large: generate large files without dd\n\nJunio C Hamano (1):\n      Git 2.3.0-rc2\n\nKacper Kornet (1):\n      Fix unclosed here document in t3301.sh\n\nMichael J Gruber (2):\n      l10n: de.po: translate \"leave behind\" correctly\n      l10n: de.po: correct singular form\n\nPeter Krefting (2):\n      l10n: sv.po: Update Swedish translation (2298t0f0u)\n      l10n: sv.po: Update Swedish translation (2298t0f0u)\n\nRalf Thielow (4):\n      l10n: de.po: translate \"track\" as \"versionieren\"\n      l10n: de.po: fix typo\n      l10n: de.po: translate 13 new messages\n      l10n: de.po: translate 3 messages\n\nSven van Haastregt (1):\n      Documentation: fix version numbering\n\nTrần Ngọc Quân (2):\n      l10n: vi.po(2298t): Updated and change Plural-Forms\n      l10n: vi.po(2298t): Updated 3 new strings\n"},{"id":"255401","messageId":"54CA2E84.6090604@statsbiblioteket.dk","threadId":"38463","inReplyTo":"xmqqpp9ziyqh.fsf@gitster.dls.corp.google.com","subject":"Broken makefile check for curl version on el4 [Re: [ANNOUNCE] Git v2.3.0-rc2]","fromName":"Tom G. Christensen","fromEmail":"tgc@statsbiblioteket.dk","sentAt":"2015-01-29T12:58:44Z","receivedAt":"2015-01-29T12:58:44Z","isPatch":false,"sender":{"key":"tgc@statsbiblioteket.dk","avatar":"https://avatars.githubusercontent.com/u/912180?v=4"},"body":"On 28/01/15 00:35, Junio C Hamano wrote:\n> A release candidate Git v2.3.0-rc2 is now available for testing\n> at the usual places.\n>\n\nBuilding is broken on RHEL4 which is a regression from 2.2.2.\n\nThe makefile check for curl >= 7.34.0 fails and enables \nUSE_CURL_FOR_IMAP_SEND even though curl is 7.12.1.\n\n# curl-config --vernum\n70C01\n# { echo 072200; curl-config --vernum 2>/dev/null ; } | sort -r | sed -ne 2p\n072200\n#\n\nI checked the curl release tarballs and this problem seems to exist for \ncurl 7.11.0 (0x70B00) through 7.12.2 (0x70C02). In both 7.10.7 \n(0x070a07) and 7.12.3 (0x070c03) the version is correctly set using 6 \nhex digits as documented.\nI tried to verify this using the official curl repo on github but it \ndoes not seem to record this discrepancy and shows the correct 6 digit \nversion numbers for the affected releases.\n\nAs a workaround I'm piping curl-config --vernum through sed -e \n'/^70[B-C]/ s/^7/07/'.\n\n-tgc\n"},{"id":"255402","messageId":"54CA3169.4020701@statsbiblioteket.dk","threadId":"38463","inReplyTo":"xmqqpp9ziyqh.fsf@gitster.dls.corp.google.com","subject":"All gnupg tests broken on el4 [Re: [ANNOUNCE] Git v2.3.0-rc2]","fromName":"Tom G. Christensen","fromEmail":"tgc@statsbiblioteket.dk","sentAt":"2015-01-29T13:11:05Z","receivedAt":"2015-01-29T13:11:05Z","isPatch":false,"sender":{"key":"tgc@statsbiblioteket.dk","avatar":"https://avatars.githubusercontent.com/u/912180?v=4"},"body":"On 28/01/15 00:35, Junio C Hamano wrote:\n> A release candidate Git v2.3.0-rc2 is now available for testing\n> at the usual places.\n>\n\nAll signed commit tests fail on RHEL4 which is a regression from 2.2.2.\n\n From t4202.42:\n\n++ git tag -s -m signed_tag_msg signed_tag\ngpg: key CDDE430D: secret key without public key - skipped\ngpg: skipped `C O Mitter <committer@example.com>': secret key not available\ngpg: signing failed: secret key not available\nerror: gpg failed to sign the data\nerror: unable to sign the tag\nerror: last command exited with $?=128\n\nThere are indeed no public keys available after commit 1e3eef which \nseems to be contrary to the commit log:\n----\n    Instead import public and secret keys for one key pair from a text\n    file that holds ASCII-armored export of them.\n----\n\nI extracted the pubkeys as ascii armored text from the old binary \nkeyrings and added them to the new keyring.gpg and then the tests pass.\n\nThis is apparently only a problem for older gnupg versions (RHEL4 has \ngnupg 1.2.6) since it did not fail on RHEL5 (gnupg 1.4.5).\n\n-tgc\n"},{"id":"255403","messageId":"54CA3611.1000804@statsbiblioteket.dk","threadId":"38463","inReplyTo":"xmqqpp9ziyqh.fsf@gitster.dls.corp.google.com","subject":"Testsuite regression with perl 5.8.0 [Re: [ANNOUNCE] Git v2.3.0-rc2]","fromName":"Tom G. Christensen","fromEmail":"tgc@statsbiblioteket.dk","sentAt":"2015-01-29T13:30:57Z","receivedAt":"2015-01-29T13:30:57Z","isPatch":false,"sender":{"key":"tgc@statsbiblioteket.dk","avatar":"https://avatars.githubusercontent.com/u/912180?v=4"},"body":"On 28/01/15 00:35, Junio C Hamano wrote:\n> A release candidate Git v2.3.0-rc2 is now available for testing\n> at the usual places.\n>\n\nCommit 2cf770 added testing of the --[no-]xmailer option to git \nsend-email in t9001-send-email.sh\nUnfortunately it used the modern Getopt::long style of --no-<option> to \nnegate the option which is not supported with Getopt::Long 2.32 as \nshipped with perl 5.8.0 on RHEL3 causing the tests to fail.\n\nChanging the --no-xmailer option to the old --noxmailer style allows the \ntests to pass.\n\n-tgc\n"},{"id":"255405","messageId":"20150129154319.GA742@peff.net","threadId":"38463","inReplyTo":"54CA3169.4020701@statsbiblioteket.dk","subject":"Re: All gnupg tests broken on el4 [Re: [ANNOUNCE] Git v2.3.0-rc2]","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2015-01-29T15:43:20Z","receivedAt":"2015-01-29T15:43:20Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Thu, Jan 29, 2015 at 02:11:05PM +0100, Tom G. Christensen wrote:\n\n> All signed commit tests fail on RHEL4 which is a regression from 2.2.2.\n> \n> From t4202.42:\n> \n> ++ git tag -s -m signed_tag_msg signed_tag\n> gpg: key CDDE430D: secret key without public key - skipped\n> gpg: skipped `C O Mitter <committer@example.com>': secret key not available\n> gpg: signing failed: secret key not available\n> error: gpg failed to sign the data\n> error: unable to sign the tag\n> error: last command exited with $?=128\n> \n> There are indeed no public keys available after commit 1e3eef which seems to\n> be contrary to the commit log:\n> ----\n>    Instead import public and secret keys for one key pair from a text\n>    file that holds ASCII-armored export of them.\n> ----\n> \n> I extracted the pubkeys as ascii armored text from the old binary keyrings\n> and added them to the new keyring.gpg and then the tests pass.\n> \n> This is apparently only a problem for older gnupg versions (RHEL4 has gnupg\n> 1.2.6) since it did not fail on RHEL5 (gnupg 1.4.5).\n\nWeird. The pubkeys are there in keyring.gpg; I wonder why the older\nversion of gpg has trouble extracting them (and how one was _supposed_\nto export secret keys at that time).\n\nSo if I understand you correctly, the tests should pass with the patch\nbelow?\n\nIt feels a bit hacky, and I wish I knew more about why the current file\ndoesn't work (i.e., if we did \"gpg --export-secret-keys\" with v1.2.6,\nwould it produce different output that can be read by both versions?).\nAnother option is to just declare that version old and broken, and skip\nthe tests (either by checking its version, or just checking after we\nimport the keys that we can actually _use_ them).\n\n-- >8 --\nSubject: [PATCH] t/lib-gpg: include separate public keys in keyring.gpg\n\nSince 1e3eefb (tests: replace binary GPG keyrings with\nASCII-armored keys, 2014-12-12), we import our test GPG keys\nfrom a single file. Each keypair in the import stream\ncontains both the secret and public keys. However, older\nversions of gpg reportedly fail to import the public half of\nthe key. We can solve this by including duplicates of the\npublic keys separately. The duplicates are ignored by modern\ngpg, and this makes older versions work.\n\nReported by Tom G. Christensen <tgc@statsbiblioteket.dk> on\ngpg 1.2.6 (from RHEL4).\n\nSigned-off-by: Jeff King <peff@peff.net>\n---\n t/lib-gpg.sh          |  2 ++\n t/lib-gpg/keyring.gpg | 54 +++++++++++++++++++++++++++++++++++++++++++++++++++\n 2 files changed, 56 insertions(+)\n\ndiff --git a/t/lib-gpg.sh b/t/lib-gpg.sh\nindex d88da29..16e0d3f 100755\n--- a/t/lib-gpg.sh\n+++ b/t/lib-gpg.sh\n@@ -23,6 +23,8 @@ else\n \t\t# To write armored exported key to keyring:\n \t\t#\tgpg --homedir /tmp/gpghome --export-secret-keys \\\n \t\t#\t\t--armor 0xDEADBEEF >> lib-gpg/keyring.gpg\n+\t\t#\tgpg --homedir /tmp/gpghome --export \\\n+\t\t#\t\t--armor 0xDEADBEEF >> lib-gpg/keyring.gpg\n \t\t# To export ownertrust:\n \t\t#\tgpg --homedir /tmp/gpghome --export-ownertrust \\\n \t\t#\t\t> lib-gpg/ownertrust\ndiff --git a/t/lib-gpg/keyring.gpg b/t/lib-gpg/keyring.gpg\nindex fb1f048..d4754a1 100644\n--- a/t/lib-gpg/keyring.gpg\n+++ b/t/lib-gpg/keyring.gpg\n@@ -86,3 +86,57 @@ Z9Ei+zj6JD5Pcdi3BJhQo9WOLOVEJ0NHmewTYqk9QVXH/0v1Hdl4LMJtgcbdbDWk\n BOW78WUxzhu0YJTLKy+iKCjg5HS5dx6OC+e4aEEgfhNPCMkbvDsJjtQ=\n =hieJ\n -----END PGP PRIVATE KEY BLOCK-----\n+-----BEGIN PGP PUBLIC KEY BLOCK-----\n+Version: GnuPG v1\n+\n+mQGiBEZnyykRBACzCPjIpTYNL7Y2tQqlEGTTDlvZcWNLjF5f7ZzuyOqNOidLUgFD\n+36qch1LZLSZkShdR3Gae+bsolyjxrlFuFP0eXRPMtqK20aLw7WZvPFpEV1ThMne+\n+PRJjYrvghWw3L0VVIAIZ8GXwrVBuU99uEjHEI0ojYloOvFc2jVPgSaoBvwCg48Tj\n+fol2foSoJa7XUu9yAL8szg8D/RUsTzNF+I9hSRHl7MYKFMYoKEY9BDgrgAujp7YY\n+8qdGsiUb0Ggyzp2kRjZFt4lpcvKhGfHn5GEjmtk+fRbD5qPfMqKFW+T0NPfYlYmL\n+JJ4fs4qZ8Lx7x6iG6X51u+YNwsQuIGjMCC3CeNi3F7or651kkNYASbaQ1NROkCIN\n+NudyA/0aasvoZUoNJAc2cP5Ifs6WhXMWLfMR2p2XbfKwKNYneec60usnSComcKqh\n+sJVk0Gytvr3FOYVhRkXnKAbx+0W2urFP8OFVBTEKO6Ts2VygWGgneQYoHnqzwlUE\n+yjOjlr+lyf7u2s/KAxpKA6jnttEdRZAmzWkhuox1wwAUkr27/bQiQyBPIE1pdHRl\n+ciA8Y29tbWl0dGVyQGV4YW1wbGUuY29tPoheBBMRAgAeBQJGZ8spAhsDBgsJCAcD\n+AgMVAgMDFgIBAh4BAheAAAoJEBO29R7N3kMNdB0AoL3Z/7A6tORuY8R/676oD8a/\n+oHFDAJ9DXbwlcKLcykwHy0jYqajXm1iCebkCDQRGZ8tOEAgAzrl5P1Pr6CDR8mf5\n+DGGzcUUM+PEroA4FLdKJ5ZaZc7qy1lmmW9vuvb6xdinwcwee2c5fdNE+iUjHV2x2\n+S/dbfDzJTN/0uajZcw+xnf+KxZ0Rs4gDSs7cHXHBtA7u8ShYd4Hu7JggXpiwgfSk\n+yrGQiZyLAHW2ck8H07Go8eUP8fLIeva+iPqeYQZo9BaPz92R/J6debpeY1lRkv+y\n+WTq1GE3C/hxbdBAuHf2duLP2uq9kwoVdfzCRjgV1CQmMIbCrMb7vIlzIe96bb3+K\n+r/+NEtmB2I3wHBXcwJMnIOnz9Zv933KNlxSbVF23BGLB+F9D7OanKymbs7Eg18fr\n+mt/t/wAEDQgAtGIxGz944Pn2OtheY9JlBRuIAuVskm24/Zz03dZnk6CuEOIBb5IM\n+g36GAPKcn1vsLZ0TfE1q53jNpcAAXjgngnRsCjZm1mglqPD4ZfBpl+Hhnuc80fAR\n+xsUPj+5c8KP2M+Rws4moaZRjVpd3KCi3ceflT/OjwnE9DzdhslCGTMA5n8cajAs2\n+oqAaQssefVf2prLQLGV9NB4Q3lFnKXdvipHMaAYAsW+iF7JkhTDVNuNGlufeSqUm\n+igRBjTZXBcVd8sj8vDOCWKUfqxJyS+zRYcotn7QvpvcKAkc3ZGxntDHAIGLVp6ay\n++vrkV4Ren8BjFobl25Ruy6Abw+CgnTpuwYhJBBgRAgAJBQJGZ8tOAhsMAAoJEBO2\n+9R7N3kMNwewAoNBygC0NYkW6lVGqV4EJ7PHhDaSEAJwKz78u0Twtv2EL7Zy+ve4f\n+mnzYApkBDQRRTJZHAQgAyYv8ZwBfMiN+Dx4pUgmzO1bThTte6BTJKbuHIDdkKT7j\n+OTFY8nL68ykoLmRbzwgy83gBSVtbj8S+Eh2h0pIrAqxYYox+ziVnDjzT0hQsLvop\n+wKALLx5uJ7OqXw2ckY1Ux0mOK3TCEqihUaM2l7vLx3gUcyIRZ7mwQnqSmVtO6Cj5\n+65xC1U1VElFSPunpfCRZiSFscSzS4X0UUjxdL+DA1zxf/4glomQyPidaS70OVf3+\n+2LX7AxldKD2Ouie9gRSRueeXigbbZzWPdNS5iN6HJ+T+YlZ1w2qjBJcOxSqZwDV7\n+nIGNx+JC8jZCN7NydAhm1yO29zAVrY3LboVr9athuQARAQABtCRFcmlzIERpc2Nv\n+cmRpYSA8ZGlzY29yZEBleGFtcGxlLm5ldD6JATgEEwECACIFAlFMlkcCGwMGCwkI\n+BwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEGEJLoW3InGJWKMH+wfn/hQ3C1X8PF8x\n+pSpLtRejyNchgrewDDtvyZJjuC5YB7iIBaanuW/14ypdCLEXG1S4raoiKJHPLvux\n+/MmFOuww5Yqu7dYKgcvqk4Uh3IJ+ljCk2qgqjhNo8x8qrpSAM0LCUPnOUkaHxGQC\n+k+EGtg8vp7Klg6SBO/GiXdFZ5JPVOh9lbgAb1HjfyDIL8T6+duaPqwQ+y1OCdwrT\n+s31frDuvt93WvgZvVIZEeLQuB/59XQzdSWLsQUG4MU6v4fJinuP+/2L8vuVrGHfe\n+mUSxNmRVnll7SpMJmG0ONht0mVF2mfEfDrW08lK42xSoqTuML18Ico7tZfXMQLK3\n+GusW0gi5AQ0EUUyWRwEIAKk7TxXE16jPlKO2zqKPnXB4vFw3//F0hJmXzCnP1OaU\n+kwZO4dYEirhs4xdp98EJugPPtdNb0y2kOj6BQxVvLkAdNJo8phq0Q2BYM/G44Z2n\n+pGZwOF04a9UTo334DIbN7k6Qnm3VfpS/CtKCUx3N/Uzy04NtwxXEUgzftwESSUu/\n+gkQSG7fS+YDm6YAOB1Gqf6OjeztOK0Dj1PNzAKp8KNiUzvw3ndM6GndFaN9TZpOB\n+firxBOdn7Rh23e8qiFBigbdknkwIfOdGnC3jWT/ldWO2rQQq+/85viaR1qvTh+/z\n+aJpRCJMS/Fg7fBnwCqKmYKnny/gAhJy2wLdXbt39BbMAEQEAAYkBHwQYAQIACQUC\n+UUyWRwIbDAAKCRBhCS6FtyJxiexxCADF5DH+HDlppwLr73EptyqS4IblopPXcn59\n+bGPyBuWraCivsqZlf05QZTGahUM7jyCUE/FS25sbS5Q4SRtOC2yOnPGsSGcTjmSi\n+8uZ000stes7ahHku3onxyz2YNVBRchBCENV1tAjQwHrliofdBEY8peAoOz51kmfR\n+Ivs4+iQ+T3HYtwSYUKPVjizlRCdDR5nsE2KpPUFVx/9L9R3ZeCzCbYHG3Ww1pOFE\n+5F24PaZ97pgoJDSd1bPH1pyFjvSM3a9v8KxWNib1E+2L5fsLDSFmrbzhMxsu5wTl\n+u/FlMc4btGCUyysvoigo4OR0uXcejgvnuGhBIH4TTwjJG7w7CY7U\n+=iYv/\n+-----END PGP PUBLIC KEY BLOCK-----\n-- \n2.3.0.rc1.287.g761fd19\n"},{"id":"255406","messageId":"20150129155111.GB742@peff.net","threadId":"38463","inReplyTo":"20150129154319.GA742@peff.net","subject":"Re: All gnupg tests broken on el4 [Re: [ANNOUNCE] Git v2.3.0-rc2]","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2015-01-29T15:51:11Z","receivedAt":"2015-01-29T15:51:11Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Thu, Jan 29, 2015 at 10:43:20AM -0500, Jeff King wrote:\n\n> It feels a bit hacky, and I wish I knew more about why the current file\n> doesn't work (i.e., if we did \"gpg --export-secret-keys\" with v1.2.6,\n> would it produce different output that can be read by both versions?).\n> Another option is to just declare that version old and broken, and skip\n> the tests (either by checking its version, or just checking after we\n> import the keys that we can actually _use_ them).\n\nThat would look like this:\n\n-- >8 --\nSubject: [PATCH] t/lib-gpg: sanity-check that we can actually sign\n\nSome older versions of gpg (reportedly v1.2.6 from RHEL4)\ncannot import the keyrings found in our test suite, and thus\ncannot even make a signature. We can detect this case by\ndoing a test-sign before declaring the GPG prerequisite\nfulfilled.\n\nSigned-off-by: Jeff King <peff@peff.net>\n---\n t/lib-gpg.sh | 2 ++\n 1 file changed, 2 insertions(+)\n\ndiff --git a/t/lib-gpg.sh b/t/lib-gpg.sh\nindex d88da29..a87747a 100755\n--- a/t/lib-gpg.sh\n+++ b/t/lib-gpg.sh\n@@ -34,6 +34,8 @@ else\n \t\t\t\"$TEST_DIRECTORY\"/lib-gpg/keyring.gpg &&\n \t\tgpg --homedir \"${GNUPGHOME}\" 2>/dev/null --import-ownertrust \\\n \t\t\t\"$TEST_DIRECTORY\"/lib-gpg/ownertrust &&\n+\t\tgpg --homedir \"${GNUPGHOME}\" </dev/null >/dev/null 2>&1 \\\n+\t\t\t--sign -u committer@example.com &&\n \t\ttest_set_prereq GPG\n \t\t;;\n \tesac\n-- \n2.3.0.rc1.287.g761fd19\n"},{"id":"255407","messageId":"20150129155214.GC742@peff.net","threadId":"38463","inReplyTo":"54CA3611.1000804@statsbiblioteket.dk","subject":"Re: Testsuite regression with perl 5.8.0 [Re: [ANNOUNCE] Git v2.3.0-rc2]","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2015-01-29T15:52:15Z","receivedAt":"2015-01-29T15:52:15Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Thu, Jan 29, 2015 at 02:30:57PM +0100, Tom G. Christensen wrote:\n\n> On 28/01/15 00:35, Junio C Hamano wrote:\n> >A release candidate Git v2.3.0-rc2 is now available for testing\n> >at the usual places.\n> >\n> \n> Commit 2cf770 added testing of the --[no-]xmailer option to git send-email\n> in t9001-send-email.sh\n> Unfortunately it used the modern Getopt::long style of --no-<option> to\n> negate the option which is not supported with Getopt::Long 2.32 as shipped\n> with perl 5.8.0 on RHEL3 causing the tests to fail.\n> \n> Changing the --no-xmailer option to the old --noxmailer style allows the\n> tests to pass.\n\nBoth this and the curl-version issue you reported seem to have simple\nsolutions that you've already worked out and tested. Would you like to\nexpress them in the form of patches so they can be applied? :)\n\n-Peff\n"},{"id":"255410","messageId":"54CA6F3E.4060804@statsbiblioteket.dk","threadId":"38463","inReplyTo":"20150129154319.GA742@peff.net","subject":"Re: All gnupg tests broken on el4 [Re: [ANNOUNCE] Git v2.3.0-rc2]","fromName":"Tom G. Christensen","fromEmail":"tgc@statsbiblioteket.dk","sentAt":"2015-01-29T17:34:54Z","receivedAt":"2015-01-29T17:34:54Z","isPatch":false,"sender":{"key":"tgc@statsbiblioteket.dk","avatar":"https://avatars.githubusercontent.com/u/912180?v=4"},"body":"On 29/01/15 16:43, Jeff King wrote:\n> Weird. The pubkeys are there in keyring.gpg; I wonder why the older\n> version of gpg has trouble extracting them (and how one was _supposed_\n> to export secret keys at that time).\n>\n\nImporting the unmodified keyring.gpg with 1.2.6 yields this:\n$ gpg --homedir \"$GNUPGHOME\" --import /tmp/keyring.gpg\ngpg: keyring `/home/tgc/gpghome/secring.gpg' created\ngpg: keyring `/home/tgc/gpghome/pubring.gpg' created\ngpg: key CDDE430D: secret key imported\ngpg: key B7227189: secret key imported\ngpg: Total number processed: 2\ngpg:       secret keys read: 2\ngpg:   secret keys imported: 2\n$ gpg --homedir \"$GNUPGHOME\" --list-keys\n$ gpg --homedir \"$GNUPGHOME\" --list-secret-keys\n/home/tgc/gpghome/secring.gpg\n-----------------------------\nsec  1024D/CDDE430D 2007-06-07 C O Mitter <committer@example.com>\nssb  2048g/7703B0E5 2007-06-07\n\nsec  2048R/B7227189 2013-03-22 Eris Discordia <discord@example.net>\nssb  2048R/29472784 2013-03-22\n$\n\n> So if I understand you correctly, the tests should pass with the patch\n> below?\n>\n\nYes, adding the pubkeys as a separate entity makes gpg 1.2.6 understand \nthings fine.\n\ngnupg 1.2.6 with the patched keyring:\n$ gpg --homedir \"$GNUPGHOME\" --import /tmp/keyring.gpg\ngpg: keyring `/home/tgc/gpghome/secring.gpg' created\ngpg: keyring `/home/tgc/gpghome/pubring.gpg' created\ngpg: key CDDE430D: secret key imported\ngpg: key B7227189: secret key imported\ngpg: /home/tgc/gpghome/trustdb.gpg: trustdb created\ngpg: key CDDE430D: public key \"C O Mitter <committer@example.com>\" imported\ngpg: key B7227189: public key \"Eris Discordia <discord@example.net>\" \nimported\ngpg: Total number processed: 4\ngpg:               imported: 2  (RSA: 1)\ngpg:       secret keys read: 2\ngpg:   secret keys imported: 2\n$ gpg --homedir \"$GNUPGHOME\" --list-keys\n/home/tgc/gpghome/pubring.gpg\n-----------------------------\npub  1024D/CDDE430D 2007-06-07 C O Mitter <committer@example.com>\nsub  2048g/7703B0E5 2007-06-07\n\npub  2048R/B7227189 2013-03-22 Eris Discordia <discord@example.net>\nsub  2048R/29472784 2013-03-22\n$\n\nThe patch should work as posted, though I have only tested the new \nkeyring by hand as shown above.\n\n> It feels a bit hacky, and I wish I knew more about why the current file\n> doesn't work (i.e., if we did \"gpg --export-secret-keys\" with v1.2.6,\n> would it produce different output that can be read by both versions?).\n\nI grabbed the binary keyrings from 1e3eefb^ and pointed gpg 1.2.6 at them.\n\n$ gpg --homedir \"$GNUPGHOME\" --armor --export-secret-keys CDDE430D  > \nCDDE430D.secret.key\n$ gpg --homedir \"$PWD/gpghome3\" --import CDDE430D.secret.key\ngpg: keyring `/home/tgc/gpghome3/secring.gpg' created\ngpg: keyring `/home/tgc/gpghome3/pubring.gpg' created\ngpg: key CDDE430D: secret key imported\ngpg: Total number processed: 1\ngpg:       secret keys read: 1\ngpg:   secret keys imported: 1\n$ gpg --homedir \"$PWD/gpghome3\" --list-keys\n$\n\nNo public key imported however the pubkey *was* exported to \nCDDE430D.secret.key\n\nImporting that same keyfile using gnupg 1.4.5 on an RHEL5 host:\n$ gpg --homedir \"$PWD/gpghome\" --import /tmp/CDDE430D.secret.key\ngpg: keyring `/home/tgc/gpghome/secring.gpg' created\ngpg: keyring `/home/tgc/gpghome/pubring.gpg' created\ngpg: key CDDE430D: secret key imported\ngpg: /home/tgc/gpghome/trustdb.gpg: trustdb created\ngpg: key CDDE430D: public key \"C O Mitter <committer@example.com>\" imported\ngpg: Total number processed: 1\ngpg:               imported: 1\ngpg:       secret keys read: 1\ngpg:   secret keys imported: 1\n$ gpg --homedir \"/home/tgc/gpghome\" --list-keys\n/home/tgc/gpghome/pubring.gpg\n-----------------------------\npub   1024D/CDDE430D 2007-06-07\nuid                  C O Mitter <committer@example.com>\nsub   2048g/7703B0E5 2007-06-07\n$\n\nSo gnupg 1.2.6 can export fine but cannot correctly import the same.\n\n> Another option is to just declare that version old and broken, and skip\n> the tests (either by checking its version, or just checking after we\n> import the keys that we can actually _use_ them).\n>\nThat would seem a bit heavy-handed as it is otherwise working fine with \nthe old gnupg.\n\n<snip patch>\n\n-tgc\n\n\n-- \nTom G. Christensen - Systemmedarbejder - IT-drift\nStatsbiblioteket - Victor Albecks Vej 1 - 8000 Aarhus C\nTlf: (+45) 8946 2027 - Fax: (+45) 8946 2029\nCVR/SE: 10100682 - EAN: 5798000791084\n"},{"id":"255412","messageId":"xmqqpp9xe83p.fsf@gitster.dls.corp.google.com","threadId":"38463","inReplyTo":"54CA6F3E.4060804@statsbiblioteket.dk","subject":"Re: All gnupg tests broken on el4 [Re: [ANNOUNCE] Git v2.3.0-rc2]","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2015-01-29T18:48:26Z","receivedAt":"2015-01-29T18:48:26Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"\"Tom G. Christensen\" <tgc@statsbiblioteket.dk> writes:\n\n> On 29/01/15 16:43, Jeff King wrote:\n>\n>> Another option is to just declare that version old and broken, and skip\n>> the tests (either by checking its version, or just checking after we\n>> import the keys that we can actually _use_ them).\n>>\n> That would seem a bit heavy-handed as it is otherwise working fine\n> with the old gnupg.\n\nThanks, both, for tracking this one down.\n\nI am tempted to say that we should do both.  This \"export public\nkey, even though new importers do not need\" fix to make things\nusable with 1.2.6, and the other one to catch and skip breakages\nwhen future versions of GPG breaks us in whichever way we do not\nanticipate now.\n"},{"id":"255426","messageId":"1422599085-11804-1-git-send-email-tgc@statsbiblioteket.dk","threadId":"38463","inReplyTo":"54CA3611.1000804@statsbiblioteket.dk","subject":"[PATCH] t9001: use older Getopt::Long boolean prefix '--no' rather than '--no-'","fromName":"Tom G. Christensen","fromEmail":"tgc@statsbiblioteket.dk","sentAt":"2015-01-30T06:24:45Z","receivedAt":"2015-01-30T06:24:45Z","isPatch":true,"sender":{"key":"tgc@statsbiblioteket.dk","avatar":"https://avatars.githubusercontent.com/u/912180?v=4"},"body":"The '--no-xmailer' option is a Getopt::Long boolean option. The\n'--no-' prefix (as in --no-xmailer) for boolean options is not\nsupported in Getopt::Long version 2.32 which was released with Perl 5.8.0.\nThis version only supports '--no' as in '--noxmailer'.  More recent\nversions of Getopt::Long, such as version 2.34, support either prefix. So\nuse the older form in the tests.\n\nSee also:\n\nd2559f734bba7fe5257720356a92f3b7a5b0d37c\n907a0b1e04ea31cb368e9422df93d8ebb0187914\n84eeb687de7a6c7c42af3fb51b176e0f412a979e\n3fee1fe87144360a1913eab86af9ad136c810076\n\nSigned-off-by: Tom G. Christensen <tgc@statsbiblioteket.dk>\n---\n t/t9001-send-email.sh | 6 +++---\n 1 file changed, 3 insertions(+), 3 deletions(-)\n\ndiff --git a/t/t9001-send-email.sh b/t/t9001-send-email.sh\nindex af6a3e8..30df6ae 100755\n--- a/t/t9001-send-email.sh\n+++ b/t/t9001-send-email.sh\n@@ -1580,20 +1580,20 @@ do_xmailer_test () {\n \n test_expect_success $PREREQ '--[no-]xmailer without any configuration' '\n \tdo_xmailer_test 1 \"--xmailer\" &&\n-\tdo_xmailer_test 0 \"--no-xmailer\"\n+\tdo_xmailer_test 0 \"--noxmailer\"\n '\n \n test_expect_success $PREREQ '--[no-]xmailer with sendemail.xmailer=true' '\n \ttest_config sendemail.xmailer true &&\n \tdo_xmailer_test 1 \"\" &&\n-\tdo_xmailer_test 0 \"--no-xmailer\" &&\n+\tdo_xmailer_test 0 \"--noxmailer\" &&\n \tdo_xmailer_test 1 \"--xmailer\"\n '\n \n test_expect_success $PREREQ '--[no-]xmailer with sendemail.xmailer=false' '\n \ttest_config sendemail.xmailer false &&\n \tdo_xmailer_test 0 \"\" &&\n-\tdo_xmailer_test 0 \"--no-xmailer\" &&\n+\tdo_xmailer_test 0 \"--noxmailer\" &&\n \tdo_xmailer_test 1 \"--xmailer\"\n '\n \n-- \n2.2.1\n"},{"id":"255428","messageId":"1422611554-15393-1-git-send-email-tgc@statsbiblioteket.dk","threadId":"38463","inReplyTo":"54CA2E84.6090604@statsbiblioteket.dk","subject":"[PATCH] Makefile: Handle broken curl version number in version check","fromName":"Tom G. Christensen","fromEmail":"tgc@statsbiblioteket.dk","sentAt":"2015-01-30T09:52:34Z","receivedAt":"2015-01-30T09:52:34Z","isPatch":true,"sender":{"key":"tgc@statsbiblioteket.dk","avatar":"https://avatars.githubusercontent.com/u/912180?v=4"},"body":"curl 7.11.0 through 7.12.2 when built from their official release\narchives will present a 5 digit version number instead of the documented\n6 digits which breaks the version check in the Makefile.\nCorrect these broken version numbers on the fly when extracting them to\nensure the comparison works correctly.\n\nSigned-off-by: Tom G. Christensen <tgc@statsbiblioteket.dk>\n---\n\nThis was discoved while building on RHEL4 which has curl 7.12.1.\nThe makefile check for curl >= 7.34.0 failed and enabled\nUSE_CURL_FOR_IMAP_SEND.\n\n# curl-config --vernum\n70C01\n# { echo 072200; curl-config --vernum 2>/dev/null ; } | sort -r | sed -ne 2p\n072200\n#\n\nI checked the curl release tarballs and this problem seems to exist for\ncurl 7.11.0 (0x70B00) through 7.12.2 (0x70C02). In both 7.10.7 (0x070a07)\nand 7.12.3 (0x070c03) the version is correctly set using 6 hex digits as\ndocumented.\nI tried to verify this using the official curl repo on github but it does\nnot seem to record this discrepancy and shows the correct 6 digit version\nnumbers for the affected releases.\n\n Makefile | 4 ++--\n 1 file changed, 2 insertions(+), 2 deletions(-)\n\ndiff --git a/Makefile b/Makefile\nindex c44eb3a..69a2ce3 100644\n--- a/Makefile\n+++ b/Makefile\n@@ -1035,13 +1035,13 @@ else\n \tREMOTE_CURL_NAMES = $(REMOTE_CURL_PRIMARY) $(REMOTE_CURL_ALIASES)\n \tPROGRAM_OBJS += http-fetch.o\n \tPROGRAMS += $(REMOTE_CURL_NAMES)\n-\tcurl_check := $(shell (echo 070908; curl-config --vernum) 2>/dev/null | sort -r | sed -ne 2p)\n+\tcurl_check := $(shell (echo 070908; curl-config --vernum | sed -e '/^70[B-C]/ s/^7/07/') 2>/dev/null | sort -r | sed -ne 2p)\n \tifeq \"$(curl_check)\" \"070908\"\n \t\tifndef NO_EXPAT\n \t\t\tPROGRAM_OBJS += http-push.o\n \t\tendif\n \tendif\n-\tcurl_check := $(shell (echo 072200; curl-config --vernum) 2>/dev/null | sort -r | sed -ne 2p)\n+\tcurl_check := $(shell (echo 072200; curl-config --vernum | sed -e '/^70[B-C]/ s/^7/07/') 2>/dev/null | sort -r | sed -ne 2p)\n \tifeq \"$(curl_check)\" \"072200\"\n \t\tUSE_CURL_FOR_IMAP_SEND = YesPlease\n \tendif\n-- \n2.2.2\n"},{"id":"255429","messageId":"54CB54AB.807@statsbiblioteket.dk","threadId":"38463","inReplyTo":"20150129155214.GC742@peff.net","subject":"Re: Testsuite regression with perl 5.8.0 [Re: [ANNOUNCE] Git v2.3.0-rc2]","fromName":"Tom G. Christensen","fromEmail":"tgc@statsbiblioteket.dk","sentAt":"2015-01-30T09:53:47Z","receivedAt":"2015-01-30T09:53:47Z","isPatch":false,"sender":{"key":"tgc@statsbiblioteket.dk","avatar":"https://avatars.githubusercontent.com/u/912180?v=4"},"body":"On 29/01/15 16:52, Jeff King wrote:\n> Both this and the curl-version issue you reported seem to have simple\n> solutions that you've already worked out and tested. Would you like to\n> express them in the form of patches so they can be applied? :)\n>\n\nPatches have been posted as requested.\n\n-tgc\n"},{"id":"255431","messageId":"87wq44gw4y.fsf@igel.home","threadId":"38463","inReplyTo":"1422611554-15393-1-git-send-email-tgc@statsbiblioteket.dk","subject":"Re: [PATCH] Makefile: Handle broken curl version number in version check","fromName":"Andreas Schwab","fromEmail":"schwab@linux-m68k.org","sentAt":"2015-01-30T14:50:53Z","receivedAt":"2015-01-30T14:50:53Z","isPatch":true,"sender":{"key":"schwab@linux-m68k.org","avatar":"https://avatars.githubusercontent.com/u/2175493?v=4"},"body":"\"Tom G. Christensen\" <tgc@statsbiblioteket.dk> writes:\n\n> diff --git a/Makefile b/Makefile\n> index c44eb3a..69a2ce3 100644\n> --- a/Makefile\n> +++ b/Makefile\n> @@ -1035,13 +1035,13 @@ else\n>  \tREMOTE_CURL_NAMES = $(REMOTE_CURL_PRIMARY) $(REMOTE_CURL_ALIASES)\n>  \tPROGRAM_OBJS += http-fetch.o\n>  \tPROGRAMS += $(REMOTE_CURL_NAMES)\n> -\tcurl_check := $(shell (echo 070908; curl-config --vernum) 2>/dev/null | sort -r | sed -ne 2p)\n> +\tcurl_check := $(shell (echo 070908; curl-config --vernum | sed -e '/^70[B-C]/ s/^7/07/') 2>/dev/null | sort -r | sed -ne 2p)\n\nHow about 's/^.....$/0&/' ?\n\nAndreas.\n\n-- \nAndreas Schwab, schwab@linux-m68k.org\nGPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5\n\"And now for something completely different.\"\n"},{"id":"255434","messageId":"54CBA497.7040804@statsbiblioteket.dk","threadId":"38463","inReplyTo":"87wq44gw4y.fsf@igel.home","subject":"Re: [PATCH] Makefile: Handle broken curl version number in version check","fromName":"Tom G. Christensen","fromEmail":"tgc@statsbiblioteket.dk","sentAt":"2015-01-30T15:34:47Z","receivedAt":"2015-01-30T15:34:47Z","isPatch":true,"sender":{"key":"tgc@statsbiblioteket.dk","avatar":"https://avatars.githubusercontent.com/u/912180?v=4"},"body":"On 30/01/15 15:50, Andreas Schwab wrote:\n> \"Tom G. Christensen\" <tgc@statsbiblioteket.dk> writes:\n>\n>> diff --git a/Makefile b/Makefile\n>> index c44eb3a..69a2ce3 100644\n>> --- a/Makefile\n>> +++ b/Makefile\n>> @@ -1035,13 +1035,13 @@ else\n>>   \tREMOTE_CURL_NAMES = $(REMOTE_CURL_PRIMARY) $(REMOTE_CURL_ALIASES)\n>>   \tPROGRAM_OBJS += http-fetch.o\n>>   \tPROGRAMS += $(REMOTE_CURL_NAMES)\n>> -\tcurl_check := $(shell (echo 070908; curl-config --vernum) 2>/dev/null | sort -r | sed -ne 2p)\n>> +\tcurl_check := $(shell (echo 070908; curl-config --vernum | sed -e '/^70[B-C]/ s/^7/07/') 2>/dev/null | sort -r | sed -ne 2p)\n>\n> How about 's/^.....$/0&/' ?\n>\n\nI have no preference so whatever is the most likely to be accepted and \ndoes the job is fine with me.\n\n-tgc\n"},{"id":"255435","messageId":"6D2AEDA6-C5EB-489D-9EC2-F2B7F075A0D1@gmail.com","threadId":"38463","inReplyTo":"87wq44gw4y.fsf@igel.home","subject":"Re: [PATCH] Makefile: Handle broken curl version number in version check","fromName":"Kyle J. McKay","fromEmail":"mackyle@gmail.com","sentAt":"2015-01-30T15:41:58Z","receivedAt":"2015-01-30T15:41:58Z","isPatch":true,"sender":{"key":"mackyle@gmail.com","avatar":"https://avatars.githubusercontent.com/u/813346?v=4"},"body":"On Jan 30, 2015, at 06:50, Andreas Schwab wrote:\n\n> \"Tom G. Christensen\" <tgc@statsbiblioteket.dk> writes:\n>\n>> diff --git a/Makefile b/Makefile\n>> index c44eb3a..69a2ce3 100644\n>> --- a/Makefile\n>> +++ b/Makefile\n>> @@ -1035,13 +1035,13 @@ else\n>> \tREMOTE_CURL_NAMES = $(REMOTE_CURL_PRIMARY) $(REMOTE_CURL_ALIASES)\n>> \tPROGRAM_OBJS += http-fetch.o\n>> \tPROGRAMS += $(REMOTE_CURL_NAMES)\n>> -\tcurl_check := $(shell (echo 070908; curl-config --vernum) 2>/dev/ \n>> null | sort -r | sed -ne 2p)\n>> +\tcurl_check := $(shell (echo 070908; curl-config --vernum | sed -e  \n>> '/^70[B-C]/ s/^7/07/') 2>/dev/null | sort -r | sed -ne 2p)\n>\n> How about 's/^.....$/0&/' ?\n\nMuch nicer.  But that '$' will have to be escaped from make so it will  \nneed to be 's/^.....$$/0&/'\n"},{"id":"255456","messageId":"xmqq61bnc441.fsf@gitster.dls.corp.google.com","threadId":"38463","inReplyTo":"1422611554-15393-1-git-send-email-tgc@statsbiblioteket.dk","subject":"Re: [PATCH] Makefile: Handle broken curl version number in version check","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2015-01-30T22:09:50Z","receivedAt":"2015-01-30T22:09:50Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"\"Tom G. Christensen\" <tgc@statsbiblioteket.dk> writes:\n\n> diff --git a/Makefile b/Makefile\n> index c44eb3a..69a2ce3 100644\n> --- a/Makefile\n> +++ b/Makefile\n> @@ -1035,13 +1035,13 @@ else\n>  \tREMOTE_CURL_NAMES = $(REMOTE_CURL_PRIMARY) $(REMOTE_CURL_ALIASES)\n>  \tPROGRAM_OBJS += http-fetch.o\n>  \tPROGRAMS += $(REMOTE_CURL_NAMES)\n> -\tcurl_check := $(shell (echo 070908; curl-config --vernum) 2>/dev/null | sort -r | sed -ne 2p)\n> +\tcurl_check := $(shell (echo 070908; curl-config --vernum | sed -e '/^70[B-C]/ s/^7/07/') 2>/dev/null | sort -r | sed -ne 2p)\n>  \tifeq \"$(curl_check)\" \"070908\"\n>  \t\tifndef NO_EXPAT\n>  \t\t\tPROGRAM_OBJS += http-push.o\n>  \t\tendif\n>  \tendif\n> -\tcurl_check := $(shell (echo 072200; curl-config --vernum) 2>/dev/null | sort -r | sed -ne 2p)\n> +\tcurl_check := $(shell (echo 072200; curl-config --vernum | sed -e '/^70[B-C]/ s/^7/07/') 2>/dev/null | sort -r | sed -ne 2p)\n>  \tifeq \"$(curl_check)\" \"072200\"\n>  \t\tUSE_CURL_FOR_IMAP_SEND = YesPlease\n>  \tendif\n\nThanks, will apply but with sed part tweaked to '/^70[BC]/s/^/0/'\ninstead.\n\nThe existing tests that copied and pasted are bad enough.  Can we\nconsolidate them into some helper or a shorter idiom that lets us\nmore easily ask \"Do we have cURL version X or higher?\"\n"},{"id":"255457","messageId":"20150130230516.GA7867@vauxhall.crustytoothpaste.net","threadId":"38463","inReplyTo":"1422599085-11804-1-git-send-email-tgc@statsbiblioteket.dk","subject":"Re: [PATCH] t9001: use older Getopt::Long boolean prefix '--no' rather than '--no-'","fromName":"brian m. carlson","fromEmail":"sandals@crustytoothpaste.net","sentAt":"2015-01-30T23:05:16Z","receivedAt":"2015-01-30T23:05:16Z","isPatch":true,"sender":{"key":"sandals@crustytoothpaste.net","avatar":"https://avatars.githubusercontent.com/u/497054?v=4"},"body":"On Fri, Jan 30, 2015 at 07:24:45AM +0100, Tom G. Christensen wrote:\n>The '--no-xmailer' option is a Getopt::Long boolean option. The\n>'--no-' prefix (as in --no-xmailer) for boolean options is not\n>supported in Getopt::Long version 2.32 which was released with Perl 5.8.0.\n>This version only supports '--no' as in '--noxmailer'.  More recent\n>versions of Getopt::Long, such as version 2.34, support either prefix. So\n>use the older form in the tests.\n>\n>See also:\n>\n>d2559f734bba7fe5257720356a92f3b7a5b0d37c\n>907a0b1e04ea31cb368e9422df93d8ebb0187914\n>84eeb687de7a6c7c42af3fb51b176e0f412a979e\n>3fee1fe87144360a1913eab86af9ad136c810076\n>\n>Signed-off-by: Tom G. Christensen <tgc@statsbiblioteket.dk>\n>---\n> t/t9001-send-email.sh | 6 +++---\n> 1 file changed, 3 insertions(+), 3 deletions(-)\n>\n>diff --git a/t/t9001-send-email.sh b/t/t9001-send-email.sh\n>index af6a3e8..30df6ae 100755\n>--- a/t/t9001-send-email.sh\n>+++ b/t/t9001-send-email.sh\n>@@ -1580,20 +1580,20 @@ do_xmailer_test () {\n>\n> test_expect_success $PREREQ '--[no-]xmailer without any configuration' '\n> \tdo_xmailer_test 1 \"--xmailer\" &&\n>-\tdo_xmailer_test 0 \"--no-xmailer\"\n>+\tdo_xmailer_test 0 \"--noxmailer\"\n\nI don't think this is an adequate fix.  The documented option is \n--no-xmailer.  If your version of Getopt::Long is not capable of that, \nthen the program doesn't work as documented, and the test is correctly \nfailing.  --noxmailer is not documented at all, so it's not something we \nshould be testing.\n\nWe should probably require a certain version of Getopt::Long or \nexplicitly handle this in the parsing code itself.  I think the former \nis a better choice, since no security-supported OS still ships with such \na positively ancient version.\n-- \nbrian m. carlson / brian with sandals: Houston, Texas, US\n+1 832 623 2791 | http://www.crustytoothpaste.net/~bmc | My opinion only\nOpenPGP: RSA v4 4096b: 88AC E9B2 9196 305B A994 7552 F1BA 225C 0223 B187\n"},{"id":"255458","messageId":"a924a58108ea8ad8aece1ee66cbdc3f@74d39fa044aa309eaea14b9f57fe79c","threadId":"38463","inReplyTo":"20150130230516.GA7867@vauxhall.crustytoothpaste.net","subject":"Re: [PATCH] t9001: use older Getopt::Long boolean prefix '--no' rather than '--no-'","fromName":"Kyle J. McKay","fromEmail":"mackyle@gmail.com","sentAt":"2015-01-31T02:40:17Z","receivedAt":"2015-01-31T02:40:17Z","isPatch":true,"sender":{"key":"mackyle@gmail.com","avatar":"https://avatars.githubusercontent.com/u/813346?v=4"},"body":"On Jan 30, 2015, at 15:05, brian m. carlson wrote:\n> On Fri, Jan 30, 2015 at 07:24:45AM +0100, Tom G. Christensen wrote:\n>> The '--no-xmailer' option is a Getopt::Long boolean option. The\n>> '--no-' prefix (as in --no-xmailer) for boolean options is not\n>> supported in Getopt::Long version 2.32 which was released with Perl  \n>> 5.8.0.\n>> This version only supports '--no' as in '--noxmailer'.  More recent\n>> versions of Getopt::Long, such as version 2.34, support either  \n>> prefix. So\n>> use the older form in the tests.\n>>\n>> See also:\n>>\n>> d2559f734bba7fe5257720356a92f3b7a5b0d37c\n>> 907a0b1e04ea31cb368e9422df93d8ebb0187914\n>> 84eeb687de7a6c7c42af3fb51b176e0f412a979e\n>> 3fee1fe87144360a1913eab86af9ad136c810076\n>>\n>> Signed-off-by: Tom G. Christensen <tgc@statsbiblioteket.dk>\n>> ---\n>> t/t9001-send-email.sh | 6 +++---\n>> 1 file changed, 3 insertions(+), 3 deletions(-)\n>>\n>> diff --git a/t/t9001-send-email.sh b/t/t9001-send-email.sh\n>> index af6a3e8..30df6ae 100755\n>> --- a/t/t9001-send-email.sh\n>> +++ b/t/t9001-send-email.sh\n>> @@ -1580,20 +1580,20 @@ do_xmailer_test () {\n>>\n>> test_expect_success $PREREQ '--[no-]xmailer without any  \n>> configuration' '\n>> \tdo_xmailer_test 1 \"--xmailer\" &&\n>> -\tdo_xmailer_test 0 \"--no-xmailer\"\n>> +\tdo_xmailer_test 0 \"--noxmailer\"\n>\n> I don't think this is an adequate fix.  The documented option is -- \n> no-xmailer.  If your version of Getopt::Long is not capable of that,  \n> then the program doesn't work as documented, and the test is  \n> correctly failing.  --noxmailer is not documented at all, so it's  \n> not something we should be testing.\n\nIt is not alone.  From the git-send-email help these are all boolean  \noptions:\n\n> git send-email\n>\n>   Composing:\n>     --[no-]xmailer\n>     --[no-]annotate\n>\n>   Automating:\n>     --[no-]cc-cover\n>     --[no-]to-cover\n>     --[no-]signed-off-by-cc\n>     --[no-]suppress-from\n>     --[no-]chain-reply-to\n>     --[no-]thread\n>\n>   Administering:\n>     --[no-]validate\n>     --[no-]format-patch\n\n\nAnything done to fix --no-xmailer should be applied for all the other  \n--no-... options as well.\n\n> We should probably require a certain version of Getopt::Long or  \n> explicitly handle this in the parsing code itself.  I think the  \n> former is a better choice, since no security-supported OS still  \n> ships with such a positively ancient version.\n\nI don't really like that second option because all the .perl files have:\n\n> use 5.008;\n\nSo either that needs to change or the code should properly deal with  \nthe version of Getopt::Long that comes with 5.8.0.\n\nSince it's really not very difficult or invasive to add support for  \nthe no- variants, here's a patch to do so:\n\n-- 8< --\nSubject: [PATCH] git-send-email.perl: support no- prefix with older GetOptions\n\nOnly Perl version 5.8.0 or later is required, but that comes with\nan older Getopt::Long (2.32) that does not support the 'no-'\nprefix.  Support for that was added in Getopt::Long version 2.33.\n\nSince the help only mentions the 'no-' prefix and not the 'no'\nprefix, add explicit support for the 'no-' prefix when running\nwith older GetOptions versions.\n\nReported-by: Tom G. Christensen <tgc@statsbiblioteket.dk>\nSigned-off-by: Kyle J. McKay <mackyle@gmail.com>\n---\n git-send-email.perl | 10 ++++++++++\n 1 file changed, 10 insertions(+)\n\ndiff --git a/git-send-email.perl b/git-send-email.perl\nindex 3092ab35..a18a7959 100755\n--- a/git-send-email.perl\n+++ b/git-send-email.perl\n@@ -299,6 +299,7 @@ my $rc = GetOptions(\"h\" => \\$help,\n \t\t    \"bcc=s\" => \\@bcclist,\n \t\t    \"no-bcc\" => \\$no_bcc,\n \t\t    \"chain-reply-to!\" => \\$chain_reply_to,\n+\t\t    \"no-chain-reply-to\" => sub {$chain_reply_to = 0},\n \t\t    \"smtp-server=s\" => \\$smtp_server,\n \t\t    \"smtp-server-option=s\" => \\@smtp_server_options,\n \t\t    \"smtp-server-port=s\" => \\$smtp_server_port,\n@@ -311,25 +312,34 @@ my $rc = GetOptions(\"h\" => \\$help,\n \t\t    \"smtp-domain:s\" => \\$smtp_domain,\n \t\t    \"identity=s\" => \\$identity,\n \t\t    \"annotate!\" => \\$annotate,\n+\t\t    \"no-annotate\" => sub {$annotate = 0},\n \t\t    \"compose\" => \\$compose,\n \t\t    \"quiet\" => \\$quiet,\n \t\t    \"cc-cmd=s\" => \\$cc_cmd,\n \t\t    \"suppress-from!\" => \\$suppress_from,\n+\t\t    \"no-suppress-from\" => sub {$suppress_from = 0},\n \t\t    \"suppress-cc=s\" => \\@suppress_cc,\n \t\t    \"signed-off-cc|signed-off-by-cc!\" => \\$signed_off_by_cc,\n+\t\t    \"no-signed-off-cc|no-signed-off-by-cc\" => sub {$signed_off_by_cc = 0},\n \t\t    \"cc-cover|cc-cover!\" => \\$cover_cc,\n+\t\t    \"no-cc-cover\" => sub {$cover_cc = 0},\n \t\t    \"to-cover|to-cover!\" => \\$cover_to,\n+\t\t    \"no-to-cover\" => sub {$cover_to = 0},\n \t\t    \"confirm=s\" => \\$confirm,\n \t\t    \"dry-run\" => \\$dry_run,\n \t\t    \"envelope-sender=s\" => \\$envelope_sender,\n \t\t    \"thread!\" => \\$thread,\n+\t\t    \"no-thread\" => sub {$thread = 0},\n \t\t    \"validate!\" => \\$validate,\n+\t\t    \"no-validate\" => sub {$validate = 0},\n \t\t    \"transfer-encoding=s\" => \\$target_xfer_encoding,\n \t\t    \"format-patch!\" => \\$format_patch,\n+\t\t    \"no-format-patch\" => sub {$format_patch = 0},\n \t\t    \"8bit-encoding=s\" => \\$auto_8bit_encoding,\n \t\t    \"compose-encoding=s\" => \\$compose_encoding,\n \t\t    \"force\" => \\$force,\n \t\t    \"xmailer!\" => \\$use_xmailer,\n+\t\t    \"no-xmailer\" => sub {$use_xmailer = 0},\n \t );\n \n usage() if $help;\n--\n"},{"id":"255499","messageId":"xmqqmw4x85bw.fsf@gitster.dls.corp.google.com","threadId":"38463","inReplyTo":"a924a58108ea8ad8aece1ee66cbdc3f@74d39fa044aa309eaea14b9f57fe79c","subject":"Re: [PATCH] t9001: use older Getopt::Long boolean prefix '--no' rather than '--no-'","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2015-02-02T01:33:55Z","receivedAt":"2015-02-02T01:33:55Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"\"Kyle J. McKay\" <mackyle@gmail.com> writes:\n\n>> use 5.008;\n>\n> So either that needs to change or the code should properly deal with  \n> the version of Getopt::Long that comes with 5.8.0.\n>\n> Since it's really not very difficult or invasive to add support for  \n> the no- variants, here's a patch to do so:\n\nDoesn't that approach add \"what does --no-no-chain-rely-to even\nmean?\" confusion to the resulting system?  If that is not the case,\nthen I am all for it, but otherwise, let's not.\n\nPeople can easily spell --noxmailer if they want to stay at an older\nGetopt::Long, and over time these ancient ones will be upgraded\naway.\n\n\n\n> -- 8< --\n> Subject: [PATCH] git-send-email.perl: support no- prefix with older GetOptions\n>\n> Only Perl version 5.8.0 or later is required, but that comes with\n> an older Getopt::Long (2.32) that does not support the 'no-'\n> prefix.  Support for that was added in Getopt::Long version 2.33.\n>\n> Since the help only mentions the 'no-' prefix and not the 'no'\n> prefix, add explicit support for the 'no-' prefix when running\n> with older GetOptions versions.\n>\n> Reported-by: Tom G. Christensen <tgc@statsbiblioteket.dk>\n> Signed-off-by: Kyle J. McKay <mackyle@gmail.com>\n> ---\n>  git-send-email.perl | 10 ++++++++++\n>  1 file changed, 10 insertions(+)\n>\n> diff --git a/git-send-email.perl b/git-send-email.perl\n> index 3092ab35..a18a7959 100755\n> --- a/git-send-email.perl\n> +++ b/git-send-email.perl\n> @@ -299,6 +299,7 @@ my $rc = GetOptions(\"h\" => \\$help,\n>  \t\t    \"bcc=s\" => \\@bcclist,\n>  \t\t    \"no-bcc\" => \\$no_bcc,\n>  \t\t    \"chain-reply-to!\" => \\$chain_reply_to,\n> +\t\t    \"no-chain-reply-to\" => sub {$chain_reply_to = 0},\n>  \t\t    \"smtp-server=s\" => \\$smtp_server,\n>  \t\t    \"smtp-server-option=s\" => \\@smtp_server_options,\n>  \t\t    \"smtp-server-port=s\" => \\$smtp_server_port,\n> @@ -311,25 +312,34 @@ my $rc = GetOptions(\"h\" => \\$help,\n>  \t\t    \"smtp-domain:s\" => \\$smtp_domain,\n>  \t\t    \"identity=s\" => \\$identity,\n>  \t\t    \"annotate!\" => \\$annotate,\n> +\t\t    \"no-annotate\" => sub {$annotate = 0},\n>  \t\t    \"compose\" => \\$compose,\n>  \t\t    \"quiet\" => \\$quiet,\n>  \t\t    \"cc-cmd=s\" => \\$cc_cmd,\n>  \t\t    \"suppress-from!\" => \\$suppress_from,\n> +\t\t    \"no-suppress-from\" => sub {$suppress_from = 0},\n>  \t\t    \"suppress-cc=s\" => \\@suppress_cc,\n>  \t\t    \"signed-off-cc|signed-off-by-cc!\" => \\$signed_off_by_cc,\n> +\t\t    \"no-signed-off-cc|no-signed-off-by-cc\" => sub {$signed_off_by_cc = 0},\n>  \t\t    \"cc-cover|cc-cover!\" => \\$cover_cc,\n> +\t\t    \"no-cc-cover\" => sub {$cover_cc = 0},\n>  \t\t    \"to-cover|to-cover!\" => \\$cover_to,\n> +\t\t    \"no-to-cover\" => sub {$cover_to = 0},\n>  \t\t    \"confirm=s\" => \\$confirm,\n>  \t\t    \"dry-run\" => \\$dry_run,\n>  \t\t    \"envelope-sender=s\" => \\$envelope_sender,\n>  \t\t    \"thread!\" => \\$thread,\n> +\t\t    \"no-thread\" => sub {$thread = 0},\n>  \t\t    \"validate!\" => \\$validate,\n> +\t\t    \"no-validate\" => sub {$validate = 0},\n>  \t\t    \"transfer-encoding=s\" => \\$target_xfer_encoding,\n>  \t\t    \"format-patch!\" => \\$format_patch,\n> +\t\t    \"no-format-patch\" => sub {$format_patch = 0},\n>  \t\t    \"8bit-encoding=s\" => \\$auto_8bit_encoding,\n>  \t\t    \"compose-encoding=s\" => \\$compose_encoding,\n>  \t\t    \"force\" => \\$force,\n>  \t\t    \"xmailer!\" => \\$use_xmailer,\n> +\t\t    \"no-xmailer\" => sub {$use_xmailer = 0},\n>  \t );\n>  \n>  usage() if $help;\n> --\n"},{"id":"255513","messageId":"8103CEFD-4160-4C03-B58B-A3CCCA52748B@gmail.com","threadId":"38463","inReplyTo":"xmqqmw4x85bw.fsf@gitster.dls.corp.google.com","subject":"Re: [PATCH] t9001: use older Getopt::Long boolean prefix '--no' rather than '--no-'","fromName":"Kyle J. McKay","fromEmail":"mackyle@gmail.com","sentAt":"2015-02-02T16:11:02Z","receivedAt":"2015-02-02T16:11:02Z","isPatch":true,"sender":{"key":"mackyle@gmail.com","avatar":"https://avatars.githubusercontent.com/u/813346?v=4"},"body":"On Feb 1, 2015, at 17:33, Junio C Hamano wrote:\n\n> \"Kyle J. McKay\" <mackyle@gmail.com> writes:\n>\n>>> use 5.008;\n>>\n>> So either that needs to change or the code should properly deal with\n>> the version of Getopt::Long that comes with 5.8.0.\n>>\n>> Since it's really not very difficult or invasive to add support for\n>> the no- variants, here's a patch to do so:\n>\n> Doesn't that approach add \"what does --no-no-chain-rely-to even\n> mean?\" confusion to the resulting system?  If that is not the case,\n> then I am all for it, but otherwise, let's not.\n\nNo.  You have to append the '!' to get the automagic no prefix  \nalternative(s), so while 'chain-reply-to!' means support chain-reply- \nto, nochain-reply-to and (if you have a new enough Getopt::Long) no- \nchain-reply-to, just using 'no-chain-reply-to' without the trailing  \n'!' means that nono-chain-reply-to and no-no-chain-reply-to remain  \ninvalid options that will generate an error.\n"},{"id":"255538","messageId":"xmqqbnlct6ng.fsf@gitster.dls.corp.google.com","threadId":"38463","inReplyTo":"8103CEFD-4160-4C03-B58B-A3CCCA52748B@gmail.com","subject":"Re: [PATCH] t9001: use older Getopt::Long boolean prefix '--no' rather than '--no-'","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2015-02-02T20:12:03Z","receivedAt":"2015-02-02T20:12:03Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"\"Kyle J. McKay\" <mackyle@gmail.com> writes:\n\n> On Feb 1, 2015, at 17:33, Junio C Hamano wrote:\n>\n>> \"Kyle J. McKay\" <mackyle@gmail.com> writes:\n>>\n>>>> use 5.008;\n>>>\n>>> So either that needs to change or the code should properly deal with\n>>> the version of Getopt::Long that comes with 5.8.0.\n>>>\n>>> Since it's really not very difficult or invasive to add support for\n>>> the no- variants, here's a patch to do so:\n>>\n>> Doesn't that approach add \"what does --no-no-chain-rely-to even\n>> mean?\" confusion to the resulting system?  If that is not the case,\n>> then I am all for it, but otherwise, let's not.\n>\n> No.  You have to append the '!' to get the automagic no prefix\n> alternative(s), so while 'chain-reply-to!' means support chain-reply- \n> to, nochain-reply-to and (if you have a new enough Getopt::Long) no- \n> chain-reply-to, just using 'no-chain-reply-to' without the trailing\n> !' means that nono-chain-reply-to and no-no-chain-reply-to remain\n> invalid options that will generate an error.\n\nAhh, I missed that ! suffix (or lack thereof).\n\nThanks.\n"},{"id":"256037","messageId":"xmqq8ug2pvw7.fsf@gitster.dls.corp.google.com","threadId":"38463","inReplyTo":"a924a58108ea8ad8aece1ee66cbdc3f@74d39fa044aa309eaea14b9f57fe79c","subject":"Re: [PATCH] t9001: use older Getopt::Long boolean prefix '--no' rather than '--no-'","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2015-02-12T23:12:08Z","receivedAt":"2015-02-12T23:12:08Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"\"Kyle J. McKay\" <mackyle@gmail.com> writes:\n\n> Since it's really not very difficult or invasive to add support for  \n> the no- variants, here's a patch to do so:\n\nI am inclined to replace the tc/t9001-noxmailer topic that has been\nsitting on my Undecided pile with this patch and move it forward.\n\n    * tc/t9001-noxmailer (2015-01-30) 1 commit\n     - t9001: use older Getopt::Long boolean prefix '--no' rather than '--no-'\n\nPlease stop me if I am missing something obviously wrong with this\nplan.\n\nThanks.\n\n\n\n> -- 8< --\n> Subject: [PATCH] git-send-email.perl: support no- prefix with older GetOptions\n>\n> Only Perl version 5.8.0 or later is required, but that comes with\n> an older Getopt::Long (2.32) that does not support the 'no-'\n> prefix.  Support for that was added in Getopt::Long version 2.33.\n>\n> Since the help only mentions the 'no-' prefix and not the 'no'\n> prefix, add explicit support for the 'no-' prefix when running\n> with older GetOptions versions.\n>\n> Reported-by: Tom G. Christensen <tgc@statsbiblioteket.dk>\n> Signed-off-by: Kyle J. McKay <mackyle@gmail.com>\n> ---\n>  git-send-email.perl | 10 ++++++++++\n>  1 file changed, 10 insertions(+)\n>\n> diff --git a/git-send-email.perl b/git-send-email.perl\n> index 3092ab35..a18a7959 100755\n> --- a/git-send-email.perl\n> +++ b/git-send-email.perl\n> @@ -299,6 +299,7 @@ my $rc = GetOptions(\"h\" => \\$help,\n>  \t\t    \"bcc=s\" => \\@bcclist,\n>  \t\t    \"no-bcc\" => \\$no_bcc,\n>  \t\t    \"chain-reply-to!\" => \\$chain_reply_to,\n> +\t\t    \"no-chain-reply-to\" => sub {$chain_reply_to = 0},\n>  \t\t    \"smtp-server=s\" => \\$smtp_server,\n>  \t\t    \"smtp-server-option=s\" => \\@smtp_server_options,\n>  \t\t    \"smtp-server-port=s\" => \\$smtp_server_port,\n> @@ -311,25 +312,34 @@ my $rc = GetOptions(\"h\" => \\$help,\n>  \t\t    \"smtp-domain:s\" => \\$smtp_domain,\n>  \t\t    \"identity=s\" => \\$identity,\n>  \t\t    \"annotate!\" => \\$annotate,\n> +\t\t    \"no-annotate\" => sub {$annotate = 0},\n>  \t\t    \"compose\" => \\$compose,\n>  \t\t    \"quiet\" => \\$quiet,\n>  \t\t    \"cc-cmd=s\" => \\$cc_cmd,\n>  \t\t    \"suppress-from!\" => \\$suppress_from,\n> +\t\t    \"no-suppress-from\" => sub {$suppress_from = 0},\n>  \t\t    \"suppress-cc=s\" => \\@suppress_cc,\n>  \t\t    \"signed-off-cc|signed-off-by-cc!\" => \\$signed_off_by_cc,\n> +\t\t    \"no-signed-off-cc|no-signed-off-by-cc\" => sub {$signed_off_by_cc = 0},\n>  \t\t    \"cc-cover|cc-cover!\" => \\$cover_cc,\n> +\t\t    \"no-cc-cover\" => sub {$cover_cc = 0},\n>  \t\t    \"to-cover|to-cover!\" => \\$cover_to,\n> +\t\t    \"no-to-cover\" => sub {$cover_to = 0},\n>  \t\t    \"confirm=s\" => \\$confirm,\n>  \t\t    \"dry-run\" => \\$dry_run,\n>  \t\t    \"envelope-sender=s\" => \\$envelope_sender,\n>  \t\t    \"thread!\" => \\$thread,\n> +\t\t    \"no-thread\" => sub {$thread = 0},\n>  \t\t    \"validate!\" => \\$validate,\n> +\t\t    \"no-validate\" => sub {$validate = 0},\n>  \t\t    \"transfer-encoding=s\" => \\$target_xfer_encoding,\n>  \t\t    \"format-patch!\" => \\$format_patch,\n> +\t\t    \"no-format-patch\" => sub {$format_patch = 0},\n>  \t\t    \"8bit-encoding=s\" => \\$auto_8bit_encoding,\n>  \t\t    \"compose-encoding=s\" => \\$compose_encoding,\n>  \t\t    \"force\" => \\$force,\n>  \t\t    \"xmailer!\" => \\$use_xmailer,\n> +\t\t    \"no-xmailer\" => sub {$use_xmailer = 0},\n>  \t );\n>  \n>  usage() if $help;\n> --\n"},{"id":"256080","messageId":"1423858769-1565-1-git-send-email-gitster@pobox.com","threadId":"38463","inReplyTo":"xmqq8ug2pvw7.fsf@gitster.dls.corp.google.com","subject":"[PATCH 0/2] Getopt::Long workaround in send-email","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2015-02-13T20:19:27Z","receivedAt":"2015-02-13T20:19:27Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"The first one is a replay of Kyle's workaround for older versions of\nGetopt::Long that did not take \"--no-option\" to negate a boolean\noption \"--option\".  The second one revert the workarounds made to\nthe test script over time, and should break if the first one does\nnot work well for older Getopt::Long (I have no reason to suspect it\nwould break, though).\n\nI am inclined to squash these into one commit before starting to\nmerge them down to 'next' and then to 'master', after getting\nTested-by: from those with older Getopt::Long (prior to 2.32).\n\nObviously, tc/t9001-noxmailer topic will become unnecessary and be\ndropped when that happens.\n\nThanks.\n\nJunio C Hamano (1):\n  SQUASH??? t9001: turn --no$option workarounds to --no-$option\n\nKyle J. McKay (1):\n  git-send-email.perl: support no- prefix with older GetOptions\n\n git-send-email.perl   | 10 ++++++++++\n t/t9001-send-email.sh | 10 +++++-----\n 2 files changed, 15 insertions(+), 5 deletions(-)\n\n-- \n2.3.0-191-geb1a277\n"},{"id":"256079","messageId":"1423858769-1565-2-git-send-email-gitster@pobox.com","threadId":"38463","inReplyTo":"1423858769-1565-1-git-send-email-gitster@pobox.com","subject":"[PATCH 1/2] git-send-email.perl: support no- prefix with older GetOptions","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2015-02-13T20:19:28Z","receivedAt":"2015-02-13T20:19:28Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"From: \"Kyle J. McKay\" <mackyle@gmail.com>\n\nOnly Perl version 5.8.0 or later is required, but that comes with\nan older Getopt::Long (2.32) that does not support the 'no-'\nprefix.  Support for that was added in Getopt::Long version 2.33.\n\nSince the help only mentions the 'no-' prefix and not the 'no'\nprefix, add explicit support for the 'no-' prefix when running\nwith older GetOptions versions.\n\nReported-by: Tom G. Christensen <tgc@statsbiblioteket.dk>\nSigned-off-by: Kyle J. McKay <mackyle@gmail.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>\n---\n git-send-email.perl | 10 ++++++++++\n 1 file changed, 10 insertions(+)\n\ndiff --git a/git-send-email.perl b/git-send-email.perl\nindex 3092ab3..a18a795 100755\n--- a/git-send-email.perl\n+++ b/git-send-email.perl\n@@ -299,6 +299,7 @@ sub signal_handler {\n \t\t    \"bcc=s\" => \\@bcclist,\n \t\t    \"no-bcc\" => \\$no_bcc,\n \t\t    \"chain-reply-to!\" => \\$chain_reply_to,\n+\t\t    \"no-chain-reply-to\" => sub {$chain_reply_to = 0},\n \t\t    \"smtp-server=s\" => \\$smtp_server,\n \t\t    \"smtp-server-option=s\" => \\@smtp_server_options,\n \t\t    \"smtp-server-port=s\" => \\$smtp_server_port,\n@@ -311,25 +312,34 @@ sub signal_handler {\n \t\t    \"smtp-domain:s\" => \\$smtp_domain,\n \t\t    \"identity=s\" => \\$identity,\n \t\t    \"annotate!\" => \\$annotate,\n+\t\t    \"no-annotate\" => sub {$annotate = 0},\n \t\t    \"compose\" => \\$compose,\n \t\t    \"quiet\" => \\$quiet,\n \t\t    \"cc-cmd=s\" => \\$cc_cmd,\n \t\t    \"suppress-from!\" => \\$suppress_from,\n+\t\t    \"no-suppress-from\" => sub {$suppress_from = 0},\n \t\t    \"suppress-cc=s\" => \\@suppress_cc,\n \t\t    \"signed-off-cc|signed-off-by-cc!\" => \\$signed_off_by_cc,\n+\t\t    \"no-signed-off-cc|no-signed-off-by-cc\" => sub {$signed_off_by_cc = 0},\n \t\t    \"cc-cover|cc-cover!\" => \\$cover_cc,\n+\t\t    \"no-cc-cover\" => sub {$cover_cc = 0},\n \t\t    \"to-cover|to-cover!\" => \\$cover_to,\n+\t\t    \"no-to-cover\" => sub {$cover_to = 0},\n \t\t    \"confirm=s\" => \\$confirm,\n \t\t    \"dry-run\" => \\$dry_run,\n \t\t    \"envelope-sender=s\" => \\$envelope_sender,\n \t\t    \"thread!\" => \\$thread,\n+\t\t    \"no-thread\" => sub {$thread = 0},\n \t\t    \"validate!\" => \\$validate,\n+\t\t    \"no-validate\" => sub {$validate = 0},\n \t\t    \"transfer-encoding=s\" => \\$target_xfer_encoding,\n \t\t    \"format-patch!\" => \\$format_patch,\n+\t\t    \"no-format-patch\" => sub {$format_patch = 0},\n \t\t    \"8bit-encoding=s\" => \\$auto_8bit_encoding,\n \t\t    \"compose-encoding=s\" => \\$compose_encoding,\n \t\t    \"force\" => \\$force,\n \t\t    \"xmailer!\" => \\$use_xmailer,\n+\t\t    \"no-xmailer\" => sub {$use_xmailer = 0},\n \t );\n \n usage() if $help;\n-- \n2.3.0-191-geb1a277\n"},{"id":"256081","messageId":"1423858769-1565-3-git-send-email-gitster@pobox.com","threadId":"38463","inReplyTo":"1423858769-1565-1-git-send-email-gitster@pobox.com","subject":"[PATCH 2/2] SQUASH??? t9001: turn --no$option workarounds to --no-$option","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2015-02-13T20:19:29Z","receivedAt":"2015-02-13T20:19:29Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"These were done to work around older versions of Getopt::Long that\ndid not take negation of a boolean \"--option\" as \"--no-option\" (but\nthey happily took \"--nooption\").\n\nI am inclined to squash this into the previous one.\n\nSigned-off-by: Junio C Hamano <gitster@pobox.com>\n---\n t/t9001-send-email.sh | 10 +++++-----\n 1 file changed, 5 insertions(+), 5 deletions(-)\n\ndiff --git a/t/t9001-send-email.sh b/t/t9001-send-email.sh\nindex af6a3e8..0513055 100755\n--- a/t/t9001-send-email.sh\n+++ b/t/t9001-send-email.sh\n@@ -392,7 +392,7 @@ test_expect_success $PREREQ 'allow long lines with --no-validate' '\n \t\t--from=\"Example <nobody@example.com>\" \\\n \t\t--to=nobody@example.com \\\n \t\t--smtp-server=\"$(pwd)/fake.sendmail\" \\\n-\t\t--novalidate \\\n+\t\t--no-validate \\\n \t\t$patches longline.patch \\\n \t\t2>errors\n '\n@@ -426,7 +426,7 @@ test_expect_success $PREREQ 'In-Reply-To without --chain-reply-to' '\n \tgit send-email \\\n \t\t--from=\"Example <nobody@example.com>\" \\\n \t\t--to=nobody@example.com \\\n-\t\t--nochain-reply-to \\\n+\t\t--no-chain-reply-to \\\n \t\t--in-reply-to=\"$(cat expect)\" \\\n \t\t--smtp-server=\"$(pwd)/fake.sendmail\" \\\n \t\t$patches $patches $patches \\\n@@ -1067,7 +1067,7 @@ test_expect_success $PREREQ 'in-reply-to but no threading' '\n \t\t--from=\"Example <nobody@example.com>\" \\\n \t\t--to=nobody@example.com \\\n \t\t--in-reply-to=\"<in-reply-id@example.com>\" \\\n-\t\t--nothread \\\n+\t\t--no-thread \\\n \t\t$patches |\n \tgrep \"In-Reply-To: <in-reply-id@example.com>\"\n '\n@@ -1077,7 +1077,7 @@ test_expect_success $PREREQ 'no in-reply-to and no threading' '\n \t\t--dry-run \\\n \t\t--from=\"Example <nobody@example.com>\" \\\n \t\t--to=nobody@example.com \\\n-\t\t--nothread \\\n+\t\t--no-thread \\\n \t\t$patches $patches >stdout &&\n \t! grep \"In-Reply-To: \" stdout\n '\n@@ -1088,7 +1088,7 @@ test_expect_success $PREREQ 'threading but no chain-reply-to' '\n \t\t--from=\"Example <nobody@example.com>\" \\\n \t\t--to=nobody@example.com \\\n \t\t--thread \\\n-\t\t--nochain-reply-to \\\n+\t\t--no-chain-reply-to \\\n \t\t$patches $patches >stdout &&\n \tgrep \"In-Reply-To: \" stdout\n '\n-- \n2.3.0-191-geb1a277\n"},{"id":"256082","messageId":"1C7C5039-FF71-4978-B65A-9CCC94E70457@gmail.com","threadId":"38463","inReplyTo":"1423858769-1565-1-git-send-email-gitster@pobox.com","subject":"Re: [PATCH 0/2] Getopt::Long workaround in send-email","fromName":"Kyle J. McKay","fromEmail":"mackyle@gmail.com","sentAt":"2015-02-13T20:30:52Z","receivedAt":"2015-02-13T20:30:52Z","isPatch":true,"sender":{"key":"mackyle@gmail.com","avatar":"https://avatars.githubusercontent.com/u/813346?v=4"},"body":"On Feb 13, 2015, at 12:19, Junio C Hamano wrote:\n> The first one is a replay of Kyle's workaround for older versions of\n> Getopt::Long that did not take \"--no-option\" to negate a boolean\n> option \"--option\".  The second one reverts the workarounds made to\n> the test script over time, and should break if the first one does\n> not work well for older Getopt::Long (I have no reason to suspect it\n> would break, though).\n>\n> I am inclined to squash these into one commit before starting to\n> merge them down to 'next' and then to 'master', after getting\n> Tested-by: from those with older Getopt::Long (prior to 2.32).\n\nI have no objection to them being squashed together.\n\n-Kyle\n"},{"id":"256096","messageId":"20150213222120.GB4738@vauxhall.crustytoothpaste.net","threadId":"38463","inReplyTo":"1423858769-1565-1-git-send-email-gitster@pobox.com","subject":"Re: [PATCH 0/2] Getopt::Long workaround in send-email","fromName":"brian m. carlson","fromEmail":"sandals@crustytoothpaste.net","sentAt":"2015-02-13T22:21:20Z","receivedAt":"2015-02-13T22:21:20Z","isPatch":true,"sender":{"key":"sandals@crustytoothpaste.net","avatar":"https://avatars.githubusercontent.com/u/497054?v=4"},"body":"On Fri, Feb 13, 2015 at 12:19:27PM -0800, Junio C Hamano wrote:\n>The first one is a replay of Kyle's workaround for older versions of\n>Getopt::Long that did not take \"--no-option\" to negate a boolean\n>option \"--option\".  The second one revert the workarounds made to\n>the test script over time, and should break if the first one does\n>not work well for older Getopt::Long (I have no reason to suspect it\n>would break, though).\n>\n>I am inclined to squash these into one commit before starting to\n>merge them down to 'next' and then to 'master', after getting\n>Tested-by: from those with older Getopt::Long (prior to 2.32).\n>\n>Obviously, tc/t9001-noxmailer topic will become unnecessary and be\n>dropped when that happens.\n\nI think this is a good fix.  It preserves the documented behavior even \non less capable systems.\n-- \nbrian m. carlson / brian with sandals: Houston, Texas, US\n+1 832 623 2791 | http://www.crustytoothpaste.net/~bmc | My opinion only\nOpenPGP: RSA v4 4096b: 88AC E9B2 9196 305B A994 7552 F1BA 225C 0223 B187\n"},{"id":"256102","messageId":"CA+sFfMetZv_sr9EUOQDJpdq0E9bYYKWrSh4OeFfRDBY3SjRxeg@mail.gmail.com","threadId":"38463","inReplyTo":"1423858769-1565-1-git-send-email-gitster@pobox.com","subject":"Re: [PATCH 0/2] Getopt::Long workaround in send-email","fromName":"Brandon Casey","fromEmail":"drafnel@gmail.com","sentAt":"2015-02-15T06:13:52Z","receivedAt":"2015-02-15T06:13:52Z","isPatch":true,"sender":{"key":"drafnel@gmail.com","avatar":"https://avatars.githubusercontent.com/u/921167?v=4"},"body":"[apparently it is impossible to send a plain text email using Google\nInbox, maybe people on this list know someone to talk to about that?\nSorry for the dup for those on cc]\n\nOn Fri, Feb 13, 2015 at 12:19 PM, Junio C Hamano <gitster@pobox.com> wrote:\n> The first one is a replay of Kyle's workaround for older versions of\n> Getopt::Long that did not take \"--no-option\" to negate a boolean\n> option \"--option\".  The second one revert the workarounds made to\n> the test script over time, and should break if the first one does\n> not work well for older Getopt::Long (I have no reason to suspect it\n> would break, though).\n\nThe only downside I can see is that we're going to end up carrying\naround these extra options for the forseeable future and possibly\nadding more over time with this precedent.  Maybe that's not so bad.\nThe extra options are not ugly at all.  My original thinking in just\nfixing up the tests was that the platforms with ancient versions of\nperl/Getopt::Long would just disappear over time and we'd eventually\nstop fixing up the tests to be backwards compatible when people\nstopped showing up saying that the tests failed on their ancient\nsystem.\n\nWhat platforms are actually affected?  RHEL3?  Other ancient UNIX?  I\nknow the systems I was fixing up were ancient SunOS and IRIX.\n\nUnfortunately (or fortunately, depending on how you look at it), I\ndon't have access to any ancient systems to test on anymore.  So I\ncan't run the updated tests to make sure they still pass.  The patches\n\"look\" fine to me though. :-)\n\n-Brandon\n"},{"id":"256103","messageId":"CA+sFfMdVBgqV6Ar53eo_PEzHSLMc+Z_fA_ND5CBEtX8=pKvk_Q@mail.gmail.com","threadId":"38463","inReplyTo":"1423858769-1565-2-git-send-email-gitster@pobox.com","subject":"Re: [PATCH 1/2] git-send-email.perl: support no- prefix with older GetOptions","fromName":"Brandon Casey","fromEmail":"drafnel@gmail.com","sentAt":"2015-02-15T06:32:31Z","receivedAt":"2015-02-15T06:32:31Z","isPatch":true,"sender":{"key":"drafnel@gmail.com","avatar":"https://avatars.githubusercontent.com/u/921167?v=4"},"body":"On Fri, Feb 13, 2015 at 12:19 PM, Junio C Hamano <gitster@pobox.com> wrote:\n> From: \"Kyle J. McKay\" <mackyle@gmail.com>\n>\n> Only Perl version 5.8.0 or later is required, but that comes with\n> an older Getopt::Long (2.32) that does not support the 'no-'\n> prefix.  Support for that was added in Getopt::Long version 2.33.\n>\n> Since the help only mentions the 'no-' prefix and not the 'no'\n> prefix, add explicit support for the 'no-' prefix when running\n> with older GetOptions versions.\n\nultra-ultra-nit: s/when running/for when running/  The current wording\nmakes it sound like the explicit support is only enabled when running\nwith older GetOpt versions.\n\n> Reported-by: Tom G. Christensen <tgc@statsbiblioteket.dk>\n> Signed-off-by: Kyle J. McKay <mackyle@gmail.com>\n> Signed-off-by: Junio C Hamano <gitster@pobox.com>\n> ---\n>  git-send-email.perl | 10 ++++++++++\n>  1 file changed, 10 insertions(+)\n>\n> diff --git a/git-send-email.perl b/git-send-email.perl\n> index 3092ab3..a18a795 100755\n> --- a/git-send-email.perl\n> +++ b/git-send-email.perl\n> @@ -299,6 +299,7 @@ sub signal_handler {\n>                     \"bcc=s\" => \\@bcclist,\n>                     \"no-bcc\" => \\$no_bcc,\n>                     \"chain-reply-to!\" => \\$chain_reply_to,\n> +                   \"no-chain-reply-to\" => sub {$chain_reply_to = 0},\n>                     \"smtp-server=s\" => \\$smtp_server,\n>                     \"smtp-server-option=s\" => \\@smtp_server_options,\n>                     \"smtp-server-port=s\" => \\$smtp_server_port,\n> @@ -311,25 +312,34 @@ sub signal_handler {\n>                     \"smtp-domain:s\" => \\$smtp_domain,\n>                     \"identity=s\" => \\$identity,\n>                     \"annotate!\" => \\$annotate,\n> +                   \"no-annotate\" => sub {$annotate = 0},\n>                     \"compose\" => \\$compose,\n>                     \"quiet\" => \\$quiet,\n>                     \"cc-cmd=s\" => \\$cc_cmd,\n>                     \"suppress-from!\" => \\$suppress_from,\n> +                   \"no-suppress-from\" => sub {$suppress_from = 0},\n>                     \"suppress-cc=s\" => \\@suppress_cc,\n>                     \"signed-off-cc|signed-off-by-cc!\" => \\$signed_off_by_cc,\n> +                   \"no-signed-off-cc|no-signed-off-by-cc\" => sub {$signed_off_by_cc = 0},\n>                     \"cc-cover|cc-cover!\" => \\$cover_cc,\n\nI know it's not part of this patch, but does the above duplication of\n\"cc-cover\" do something I'm not aware of?  Or should it just be\n\"cc-cover!\"?\n\n> +                   \"no-cc-cover\" => sub {$cover_cc = 0},\n>                     \"to-cover|to-cover!\" => \\$cover_to,\n\nHere (above) too.\n\n> +                   \"no-to-cover\" => sub {$cover_to = 0},\n>                     \"confirm=s\" => \\$confirm,\n>                     \"dry-run\" => \\$dry_run,\n>                     \"envelope-sender=s\" => \\$envelope_sender,\n>                     \"thread!\" => \\$thread,\n> +                   \"no-thread\" => sub {$thread = 0},\n>                     \"validate!\" => \\$validate,\n> +                   \"no-validate\" => sub {$validate = 0},\n>                     \"transfer-encoding=s\" => \\$target_xfer_encoding,\n>                     \"format-patch!\" => \\$format_patch,\n> +                   \"no-format-patch\" => sub {$format_patch = 0},\n>                     \"8bit-encoding=s\" => \\$auto_8bit_encoding,\n>                     \"compose-encoding=s\" => \\$compose_encoding,\n>                     \"force\" => \\$force,\n>                     \"xmailer!\" => \\$use_xmailer,\n> +                   \"no-xmailer\" => sub {$use_xmailer = 0},\n>          );\n>\n>  usage() if $help;\n\nLooks fine to me.\n\n-Brandon\n"},{"id":"256116","messageId":"CA+sFfMcpGfF+KaPk-jOPaueHS01rZ5fZws8Czavf6b0cUWxrbw@mail.gmail.com","threadId":"38463","inReplyTo":"031750B1-259D-4F19-8484-98A7A1266248@gmail.com","subject":"Re: [PATCH 1/2] git-send-email.perl: support no- prefix with older GetOptions","fromName":"Brandon Casey","fromEmail":"drafnel@gmail.com","sentAt":"2015-02-16T01:35:20Z","receivedAt":"2015-02-16T01:35:20Z","isPatch":true,"sender":{"key":"drafnel@gmail.com","avatar":"https://avatars.githubusercontent.com/u/921167?v=4"},"body":"On Sun, Feb 15, 2015 at 1:51 AM, Kyle J. McKay <mackyle@gmail.com> wrote:\n> On Feb 14, 2015, at 22:32, Brandon Casey wrote:\n>\n>> On Fri, Feb 13, 2015 at 12:19 PM, Junio C Hamano <gitster@pobox.com>\n>> wrote:\n>>>\n>>> From: \"Kyle J. McKay\" <mackyle@gmail.com>\n>>>\n>>> Only Perl version 5.8.0 or later is required, but that comes with\n>>> an older Getopt::Long (2.32) that does not support the 'no-'\n>>> prefix.  Support for that was added in Getopt::Long version 2.33.\n>>>\n>>> Since the help only mentions the 'no-' prefix and not the 'no'\n>>> prefix, add explicit support for the 'no-' prefix when running\n>>> with older GetOptions versions.\n>>\n>>\n>> ultra-ultra-nit: s/when running/for when running/\n>\n>\n> So it would say \"add explicit support for the 'no-'prefix for when running\n> with\"...  That doesn't make sense to me.\n>\n>> The current wording\n>> makes it sound like the explicit support is only enabled when running\n>> with older GetOpt versions.\n>\n>\n> How about this instead:\n>\n> Since the help only mentions the 'no-' prefix and not the 'no'\n> prefix, add explicit support for the 'no-' prefix to support\n> older GetOptions versions.\n\nWorks for me.\n\n-Brandon\n"},{"id":"256141","messageId":"54E1BF54.2030609@statsbiblioteket.dk","threadId":"38463","inReplyTo":"1423858769-1565-1-git-send-email-gitster@pobox.com","subject":"Re: [PATCH 0/2] Getopt::Long workaround in send-email","fromName":"Tom G. Christensen","fromEmail":"tgc@statsbiblioteket.dk","sentAt":"2015-02-16T09:58:44Z","receivedAt":"2015-02-16T09:58:44Z","isPatch":true,"sender":{"key":"tgc@statsbiblioteket.dk","avatar":"https://avatars.githubusercontent.com/u/912180?v=4"},"body":"On 13/02/15 21:19, Junio C Hamano wrote:\n> I am inclined to squash these into one commit before starting to\n> merge them down to 'next' and then to 'master', after getting\n> Tested-by: from those with older Getopt::Long (prior to 2.32).\n>\n> Junio C Hamano (1):\n>    SQUASH??? t9001: turn --no$option workarounds to --no-$option\n>\n> Kyle J. McKay (1):\n>    git-send-email.perl: support no- prefix with older GetOptions\n>\n>   git-send-email.perl   | 10 ++++++++++\n>   t/t9001-send-email.sh | 10 +++++-----\n>   2 files changed, 15 insertions(+), 5 deletions(-)\n>\n\nTested-by: Tom G. Christensen <tgc@statsbiblioteket.dk>\n\nI replaced my original patch with this series on top of 2.3.0 and then \ndid a build on RHEL3 (perl 5.8.0) and RHEL4 (perl 5.8.5).\nOn both platforms t9001 passes.\n\n-tgc\n"}]}