{"thread":{"id":"20030","subject":"[WIP PATCH 0/2] format-patch / send-mail thrading documentation","startedAt":"2009-07-05T23:05:27Z","lastAt":"2009-07-23T05:31:13Z","messageCount":17,"participants":["Yann Dirson","Junio C Hamano","Markus Heidelberg"],"isPatch":true,"patchVersion":1,"patchTotal":2},"messages":[{"id":"117481","messageId":"cover.1246834883.git.ydirson@altern.org","threadId":"20030","inReplyTo":null,"subject":"[WIP PATCH 0/2] format-patch / send-mail thrading documentation","fromName":"Yann Dirson","fromEmail":"ydirson@altern.org","sentAt":"2009-07-05T23:05:27Z","receivedAt":"2009-07-05T23:05:27Z","isPatch":true,"sender":{"key":"ydirson@altern.org","avatar":"https://avatars.githubusercontent.com/u/1190950?v=4"},"body":"While sending patches, it took me time to realize that it was not just\nthe format-patch --thread documentation being inaccurate, but that the\ninteractions with send-email were not obvious - and that the config\nitems specific to send-email were not at all described in the central\nconfig.txt.\n\nNow that bizarre interaction may just be due to a bug that we'd like\nto fix instead ?\n\nYann Dirson (2):\n  List send-email config options in config.txt.\n  Improve doc for format-patch threading options.\n\n Documentation/config.txt           |   40 ++++++++++++++++++++++++++++++++++++\n Documentation/git-format-patch.txt |   15 +++++++++---\n Documentation/git-send-email.txt   |   16 +++++++++----\n 3 files changed, 62 insertions(+), 9 deletions(-)\n"},{"id":"117490","messageId":"112440b74f47290e55209b23d1bfc66ed2423297.1246834884.git.ydirson@altern.org","threadId":"20030","inReplyTo":"cover.1246834883.git.ydirson@altern.org","subject":"[PATCH 1/2] List send-email config options in config.txt.","fromName":"Yann Dirson","fromEmail":"ydirson@altern.org","sentAt":"2009-07-05T23:05:28Z","receivedAt":"2009-07-05T23:05:28Z","isPatch":true,"sender":{"key":"ydirson@altern.org","avatar":"https://avatars.githubusercontent.com/u/1190950?v=4"},"body":"\nSigned-off-by: Yann Dirson <ydirson@altern.org>\n---\n Documentation/config.txt |   40 ++++++++++++++++++++++++++++++++++++++++\n 1 files changed, 40 insertions(+), 0 deletions(-)\n\ndiff --git a/Documentation/config.txt b/Documentation/config.txt\nindex 2fecbe3..55fa938 100644\n--- a/Documentation/config.txt\n+++ b/Documentation/config.txt\n@@ -1379,6 +1379,46 @@ rerere.enabled::\n \tdefault enabled if you create `rr-cache` directory under\n \t`$GIT_DIR`, but can be disabled by setting this option to false.\n \n+sendemail.aliasesfile::\n+\tTo avoid typing long email addresses, point this to one or more\n+\temail aliases files.  You must also supply 'sendemail.aliasfiletype'.\n+\n+sendemail.aliasfiletype::\n+\tFormat of the file(s) specified in sendemail.aliasesfile. Must be\n+\tone of 'mutt', 'mailrc', 'pine', 'elm', or 'gnus'.\n+\n+sendemail.bcc::\n+sendemail.cc::\n+sendemail.cccmd::\n+sendemail.chainreplyto::\n+\n+sendemail.confirm::\n+\tSets the default for whether to confirm before sending. Must be\n+\tone of 'always', 'never', 'cc', 'compose', or 'auto'. See '--confirm'\n+\tin the previous section for the meaning of these values.\n+\n+sendemail.multiedit::\n+\tIf true (default), a single editor instance will be spawned to edit\n+\tfiles you have to edit (patches when '--annotate' is used, and the\n+\tsummary when '--compose' is used). If false, files will be edited one\n+\tafter the other, spawning a new editor each time.\n+\n+sendemail.envelopesender::\n+sendemail.from::\n+sendemail.identity::\n+sendemail.<identity>.*::\n+sendemail.signedoffbycc::\n+sendemail.smtpencryption::\n+sendemail.smtppass::\n+sendemail.suppresscc::\n+sendemail.suppressfrom::\n+sendemail.to::\n+sendemail.smtpserver::\n+sendemail.smtpserverport::\n+sendemail.smtpuser::\n+sendemail.thread::\n+sendemail.validate::\n+\n showbranch.default::\n \tThe default set of branches for linkgit:git-show-branch[1].\n \tSee linkgit:git-show-branch[1].\n-- \n1.6.3.3\n"},{"id":"117482","messageId":"9820c7a185de928cf693a21a68d8550afe36d354.1246834884.git.ydirson@altern.org","threadId":"20030","inReplyTo":"112440b74f47290e55209b23d1bfc66ed2423297.1246834884.git.ydirson@altern.org","subject":"[PATCH 2/2] Improve doc for format-patch threading options.","fromName":"Yann Dirson","fromEmail":"ydirson@altern.org","sentAt":"2009-07-05T23:05:29Z","receivedAt":"2009-07-05T23:05:29Z","isPatch":true,"sender":{"key":"ydirson@altern.org","avatar":"https://avatars.githubusercontent.com/u/1190950?v=4"},"body":"It was not immediately clear to me that not specifying any threading\nat all would result in a deep-threading because of send-email.\n\nSigned-off-by: Yann Dirson <ydirson@altern.org>\n---\n Documentation/git-format-patch.txt |   15 +++++++++++----\n Documentation/git-send-email.txt   |   16 +++++++++++-----\n 2 files changed, 22 insertions(+), 9 deletions(-)\n\ndiff --git a/Documentation/git-format-patch.txt b/Documentation/git-format-patch.txt\nindex 6f1fc80..ebc8b16 100644\n--- a/Documentation/git-format-patch.txt\n+++ b/Documentation/git-format-patch.txt\n@@ -10,7 +10,7 @@ SYNOPSIS\n --------\n [verse]\n 'git format-patch' [-k] [(-o|--output-directory) <dir> | --stdout]\n-\t\t   [--thread[=<style>]]\n+\t\t   [--no-thread | --thread[=<style>]]\n \t\t   [(--attach|--inline)[=<boundary>] | --no-attach]\n \t\t   [-s | --signoff]\n \t\t   [-n | --numbered | -N | --no-numbered]\n@@ -124,6 +124,7 @@ include::diff-options.txt[]\n \tsecond part, with \"Content-Disposition: inline\".\n \n --thread[=<style>]::\n+--no-thread::\n \tAdd In-Reply-To and References headers to make the second and\n \tsubsequent mails appear as replies to the first.  Also generates\n \tthe Message-Id header to reference.\n@@ -132,9 +133,15 @@ The optional <style> argument can be either `shallow` or `deep`.\n 'shallow' threading makes every mail a reply to the head of the\n series, where the head is chosen from the cover letter, the\n `\\--in-reply-to`, and the first patch mail, in this order.  'deep'\n-threading makes every mail a reply to the previous one.  If not\n-specified, defaults to the 'format.thread' configuration, or `shallow`\n-if that is not set.\n+threading makes every mail a reply to the previous one.\n++\n+The default is --no-thread, unless the 'format.thread' configuration\n+is set.  If --thread is specified without a style, it defaults to the\n+style specified by 'format.thread' if any, or else `shallow`.\n++\n+Beware that the default for 'git send-email' is to do deep threading\n+if the emails to be sent have no Message-Id header, which is what\n+happens when then are generated by 'git format-patch --no-thread'.\n \n --in-reply-to=Message-Id::\n \tMake the first mail (or all the mails with --no-thread) appear as a\ndiff --git a/Documentation/git-send-email.txt b/Documentation/git-send-email.txt\nindex fbde2d3..177fc93 100644\n--- a/Documentation/git-send-email.txt\n+++ b/Documentation/git-send-email.txt\n@@ -212,11 +212,17 @@ specified, as well as 'body' if --no-signed-off-cc is specified.\n \tvalue; if that is unspecified, default to --no-suppress-from.\n \n --[no-]thread::\n-\tIf this is set, the In-Reply-To header will be set on each email sent.\n-\tIf disabled with \"--no-thread\", no emails will have the In-Reply-To\n-\theader set, unless specified with --in-reply-to.\n-\tDefault is the value of the 'sendemail.thread' configuration\n-\tvalue; if that is unspecified, default to --thread.\n+\tIf this is set, the In-Reply-To header will be set on each\n+\temail sent, refering to the previous email (`deep` threading\n+\tper 'git format-patch' wording).\n++\n+If disabled with \"--no-thread\", no emails will have the In-Reply-To\n+header set, unless specified with --in-reply-to.  Default is the value\n+of the 'sendemail.thread' configuration value; if that is unspecified,\n+default to --thread.\n++\n+Please note that this setting is independant from the similarly-named\n+flag of 'git format-patch'.\n \n \n Administering\n-- \n1.6.3.3\n"},{"id":"117491","messageId":"7v3a9ae1s6.fsf@alter.siamese.dyndns.org","threadId":"20030","inReplyTo":"112440b74f47290e55209b23d1bfc66ed2423297.1246834884.git.ydirson@altern.org","subject":"Re: [PATCH 1/2] List send-email config options in config.txt.","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2009-07-06T06:58:01Z","receivedAt":"2009-07-06T06:58:01Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Yann Dirson <ydirson@altern.org> writes:\n\n> Signed-off-by: Yann Dirson <ydirson@altern.org>\n> ---\n>  Documentation/config.txt |   40 ++++++++++++++++++++++++++++++++++++++++\n>  1 files changed, 40 insertions(+), 0 deletions(-)\n>\n> diff --git a/Documentation/config.txt b/Documentation/config.txt\n> index 2fecbe3..55fa938 100644\n> --- a/Documentation/config.txt\n> +++ b/Documentation/config.txt\n> @@ -1379,6 +1379,46 @@ rerere.enabled::\n>  \tdefault enabled if you create `rr-cache` directory under\n>  \t`$GIT_DIR`, but can be disabled by setting this option to false.\n>  \n> +sendemail.aliasesfile::\n> +\tTo avoid typing long email addresses, point this to one or more\n> +\temail aliases files.  You must also supply 'sendemail.aliasfiletype'.\n> +\n> +sendemail.aliasfiletype::\n> +\tFormat of the file(s) specified in sendemail.aliasesfile. Must be\n> +\tone of 'mutt', 'mailrc', 'pine', 'elm', or 'gnus'.\n> +\n> +sendemail.bcc::\n> +sendemail.cc::\n> +sendemail.cccmd::\n> +sendemail.chainreplyto::\n> +\n\nAt least, we would want to have some description for these.  Something\nalong the lines of \"Specifies values used for the corresponding command\nline options when they are not given.\" should suffice.\n\n> +sendemail.confirm::\n> +\tSets the default for whether to confirm before sending. Must be\n> +\tone of 'always', 'never', 'cc', 'compose', or 'auto'. See '--confirm'\n> +\tin the previous section for the meaning of these values.\n> +\n> +sendemail.multiedit::\n> +\tIf true (default), a single editor instance will be spawned to edit\n> +\tfiles you have to edit (patches when '--annotate' is used, and the\n> +\tsummary when '--compose' is used). If false, files will be edited one\n> +\tafter the other, spawning a new editor each time.\n> +\n> +sendemail.envelopesender::\n> +sendemail.from::\n> +sendemail.identity::\n> +sendemail.<identity>.*::\n> +sendemail.signedoffbycc::\n> +sendemail.smtpencryption::\n> +sendemail.smtppass::\n> +sendemail.suppresscc::\n> +sendemail.suppressfrom::\n> +sendemail.to::\n> +sendemail.smtpserver::\n> +sendemail.smtpserverport::\n> +sendemail.smtpuser::\n> +sendemail.thread::\n> +sendemail.validate::\n> +\n\nLikewise.\n\n>  showbranch.default::\n>  \tThe default set of branches for linkgit:git-show-branch[1].\n>  \tSee linkgit:git-show-branch[1].\n> -- \n> 1.6.3.3\n"},{"id":"117494","messageId":"200907061036.04129.markus.heidelberg@web.de","threadId":"20030","inReplyTo":"9820c7a185de928cf693a21a68d8550afe36d354.1246834884.git.ydirson@altern.org","subject":"Re: [PATCH 2/2] Improve doc for format-patch threading options.","fromName":"Markus Heidelberg","fromEmail":"markus.heidelberg@web.de","sentAt":"2009-07-06T08:36:03Z","receivedAt":"2009-07-06T08:36:03Z","isPatch":true,"sender":{"key":"markus.heidelberg@web.de","avatar":"https://avatars.githubusercontent.com/u/6334512?v=4"},"body":"Yann Dirson, 06.07.2009:\n> diff --git a/Documentation/git-format-patch.txt b/Documentation/git-format-patch.txt\n> index 6f1fc80..ebc8b16 100644\n> --- a/Documentation/git-format-patch.txt\n> +++ b/Documentation/git-format-patch.txt\n> @@ -10,7 +10,7 @@ SYNOPSIS\n>  --------\n>  [verse]\n>  'git format-patch' [-k] [(-o|--output-directory) <dir> | --stdout]\n> -\t\t   [--thread[=<style>]]\n> +\t\t   [--no-thread | --thread[=<style>]]\n>  \t\t   [(--attach|--inline)[=<boundary>] | --no-attach]\n>  \t\t   [-s | --signoff]\n>  \t\t   [-n | --numbered | -N | --no-numbered]\n> @@ -124,6 +124,7 @@ include::diff-options.txt[]\n>  \tsecond part, with \"Content-Disposition: inline\".\n>  \n>  --thread[=<style>]::\n> +--no-thread::\n\nMaybe also add a sentence like \"If this is set...\" as in the\ngit-send-email documentation below, else the --no-thread will be\nconfusing.\n\n>  \tAdd In-Reply-To and References headers to make the second and\n>  \tsubsequent mails appear as replies to the first.  Also generates\n>  \tthe Message-Id header to reference.\n> @@ -132,9 +133,15 @@ The optional <style> argument can be either `shallow` or `deep`.\n>  'shallow' threading makes every mail a reply to the head of the\n>  series, where the head is chosen from the cover letter, the\n>  `\\--in-reply-to`, and the first patch mail, in this order.  'deep'\n> -threading makes every mail a reply to the previous one.  If not\n> -specified, defaults to the 'format.thread' configuration, or `shallow`\n> -if that is not set.\n> +threading makes every mail a reply to the previous one.\n> ++\n> +The default is --no-thread, unless the 'format.thread' configuration\n> +is set.  If --thread is specified without a style, it defaults to the\n> +style specified by 'format.thread' if any, or else `shallow`.\n> ++\n> +Beware that the default for 'git send-email' is to do deep threading\n> +if the emails to be sent have no Message-Id header, which is what\n> +happens when then are generated by 'git format-patch --no-thread'.\n                ^^^^\nthey\n\n> diff --git a/Documentation/git-send-email.txt b/Documentation/git-send-email.txt\n> index fbde2d3..177fc93 100644\n> --- a/Documentation/git-send-email.txt\n> +++ b/Documentation/git-send-email.txt\n> @@ -212,11 +212,17 @@ specified, as well as 'body' if --no-signed-off-cc is specified.\n>  \tvalue; if that is unspecified, default to --no-suppress-from.\n>  \n>  --[no-]thread::\n> -\tIf this is set, the In-Reply-To header will be set on each email sent.\n> -\tIf disabled with \"--no-thread\", no emails will have the In-Reply-To\n> -\theader set, unless specified with --in-reply-to.\n> -\tDefault is the value of the 'sendemail.thread' configuration\n> -\tvalue; if that is unspecified, default to --thread.\n> +\tIf this is set, the In-Reply-To header will be set on each\n> +\temail sent, refering to the previous email (`deep` threading\n\nYou should add \"by default refering ...\", because it can be changed to\nshallow threading with --no-chain-reply-to. Maybe also note that this is\nchangeable here just to get the relation to shallow from format-patch?\n\n> +\tper 'git format-patch' wording).\n> ++\n> +If disabled with \"--no-thread\", no emails will have the In-Reply-To\n> +header set, unless specified with --in-reply-to.  Default is the value\n> +of the 'sendemail.thread' configuration value; if that is unspecified,\n> +default to --thread.\n> ++\n> +Please note that this setting is independant from the similarly-named\n> +flag of 'git format-patch'.\n>  \n>  \n>  Administering\n"},{"id":"117495","messageId":"200907061049.30084.markus.heidelberg@web.de","threadId":"20030","inReplyTo":"9820c7a185de928cf693a21a68d8550afe36d354.1246834884.git.ydirson@altern.org","subject":"Re: [PATCH 2/2] Improve doc for format-patch threading options.","fromName":"Markus Heidelberg","fromEmail":"markus.heidelberg@web.de","sentAt":"2009-07-06T08:49:29Z","receivedAt":"2009-07-06T08:49:29Z","isPatch":true,"sender":{"key":"markus.heidelberg@web.de","avatar":"https://avatars.githubusercontent.com/u/6334512?v=4"},"body":"Yann Dirson, 06.07.2009:\n> +++ b/Documentation/git-format-patch.txt\n> @@ -132,9 +133,15 @@ The optional <style> argument can be either `shallow` or `deep`.\n>  'shallow' threading makes every mail a reply to the head of the\n>  series, where the head is chosen from the cover letter, the\n>  `\\--in-reply-to`, and the first patch mail, in this order.  'deep'\n> -threading makes every mail a reply to the previous one.  If not\n> -specified, defaults to the 'format.thread' configuration, or `shallow`\n> -if that is not set.\n> +threading makes every mail a reply to the previous one.\n> ++\n> +The default is --no-thread, unless the 'format.thread' configuration\n> +is set.  If --thread is specified without a style, it defaults to the\n> +style specified by 'format.thread' if any, or else `shallow`.\n> ++\n> +Beware that the default for 'git send-email' is to do deep threading\n> +if the emails to be sent have no Message-Id header, which is what\n> +happens when then are generated by 'git format-patch --no-thread'.\n\nOh, due to the typo I mentioned in my previous mail, I forgot to really\ncomment.\n\nThe last paragraph is misleading. git-send-email always adds headers for\ndeep threading by default, regardless of any existing Message-Id\nheaders.\nThe current wording makes one believe, git-send-email respects existing\nheaders if the patches are created with 'git format-patch --thread'.\nBut that it isn't aware of them is exactly what you want to explain\nhere.\n"},{"id":"118136","messageId":"20090716212044.GC5762@nan92-1-81-57-214-146.fbx.proxad.net","threadId":"20030","inReplyTo":"7v3a9ae1s6.fsf@alter.siamese.dyndns.org","subject":"Re: [PATCH 1/2] List send-email config options in config.txt.","fromName":"Yann Dirson","fromEmail":"ydirson@altern.org","sentAt":"2009-07-16T21:20:44Z","receivedAt":"2009-07-16T21:20:44Z","isPatch":true,"sender":{"key":"ydirson@altern.org","avatar":"https://avatars.githubusercontent.com/u/1190950?v=4"},"body":"On Sun, Jul 05, 2009 at 11:58:01PM -0700, Junio C Hamano wrote:\n> > +sendemail.aliasesfile::\n> > +\tTo avoid typing long email addresses, point this to one or more\n> > +\temail aliases files.  You must also supply 'sendemail.aliasfiletype'.\n> > +\n> > +sendemail.aliasfiletype::\n> > +\tFormat of the file(s) specified in sendemail.aliasesfile. Must be\n> > +\tone of 'mutt', 'mailrc', 'pine', 'elm', or 'gnus'.\n> > +\n> > +sendemail.bcc::\n> > +sendemail.cc::\n> > +sendemail.cccmd::\n> > +sendemail.chainreplyto::\n> > +\n> \n> At least, we would want to have some description for these.  Something\n> along the lines of \"Specifies values used for the corresponding command\n> line options when they are not given.\" should suffice.\n\nSure - that's part of why this series reads WIP :)\n\nI'm also not entirely satisfied with duplicating the existing\ndescriptions from the send-email manpage, like I have done for those\nwith a desctiption.  We could just mention all the flags with a \"See\nlinkgit:git-send-email[1] for details.\", although it looks a bit\ninconsistent with the common usage, before going into a massive\nmigration of these parameters into config.txt.\n\nWould that be seen as reasonable ?\n"},{"id":"118142","messageId":"20090716222356.GD5762@nan92-1-81-57-214-146.fbx.proxad.net","threadId":"20030","inReplyTo":"200907061049.30084.markus.heidelberg@web.de","subject":"Re: [PATCH 2/2] Improve doc for format-patch threading options.","fromName":"Yann Dirson","fromEmail":"ydirson@altern.org","sentAt":"2009-07-16T22:23:56Z","receivedAt":"2009-07-16T22:23:56Z","isPatch":true,"sender":{"key":"ydirson@altern.org","avatar":"https://avatars.githubusercontent.com/u/1190950?v=4"},"body":"On Mon, Jul 06, 2009 at 10:49:29AM +0200, Markus Heidelberg wrote:\n> Yann Dirson, 06.07.2009:\n> > +++ b/Documentation/git-format-patch.txt\n> > @@ -132,9 +133,15 @@ The optional <style> argument can be either `shallow` or `deep`.\n> >  'shallow' threading makes every mail a reply to the head of the\n> >  series, where the head is chosen from the cover letter, the\n> >  `\\--in-reply-to`, and the first patch mail, in this order.  'deep'\n> > -threading makes every mail a reply to the previous one.  If not\n> > -specified, defaults to the 'format.thread' configuration, or `shallow`\n> > -if that is not set.\n> > +threading makes every mail a reply to the previous one.\n> > ++\n> > +The default is --no-thread, unless the 'format.thread' configuration\n> > +is set.  If --thread is specified without a style, it defaults to the\n> > +style specified by 'format.thread' if any, or else `shallow`.\n> > ++\n> > +Beware that the default for 'git send-email' is to do deep threading\n> > +if the emails to be sent have no Message-Id header, which is what\n> > +happens when then are generated by 'git format-patch --no-thread'.\n> \n> Oh, due to the typo I mentioned in my previous mail, I forgot to really\n> comment.\n> \n> The last paragraph is misleading. git-send-email always adds headers for\n> deep threading by default, regardless of any existing Message-Id\n> headers.\n> The current wording makes one believe, git-send-email respects existing\n> headers if the patches are created with 'git format-patch --thread'.\n> But that it isn't aware of them is exactly what you want to explain\n> here.\n\nIndeed I realize that I did not grasp correctly how things are\nsupposed to fit together.  Reading the code and experimenting, I see\nthat:\n\n- as you say, send-email completely ignores any pre-existing\nIn-Reply-To and References header (it does keep the Message-Id's,\nthough)\n\n- send-email simply adds its own In-Reply-To and References headers.\nThat IMHO does not make any sense, and the behaviour of such a thing\nis likely to vary among MUAs (if it even does not violate the\nstandards, which I did not check)\n\n- even when --no-thread is specified, and format-patch was run with\n--no-thread as well, it still adds In-Reply-To and References headers,\nand I must say I do not see what in the code causes this behaviour.\n\nLooks like we should clarify things first, and possibly fix things,\nbefore we can start to document them - or did I miss some point that\nwould seem obvious to others ?\n"},{"id":"118144","messageId":"200907170058.46962.markus.heidelberg@web.de","threadId":"20030","inReplyTo":"20090716222356.GD5762@nan92-1-81-57-214-146.fbx.proxad.net","subject":"Re: [PATCH 2/2] Improve doc for format-patch threading options.","fromName":"Markus Heidelberg","fromEmail":"markus.heidelberg@web.de","sentAt":"2009-07-16T22:58:46Z","receivedAt":"2009-07-16T22:58:46Z","isPatch":true,"sender":{"key":"markus.heidelberg@web.de","avatar":"https://avatars.githubusercontent.com/u/6334512?v=4"},"body":"Yann Dirson, 17.07.2009:\n> On Mon, Jul 06, 2009 at 10:49:29AM +0200, Markus Heidelberg wrote:\n> > Yann Dirson, 06.07.2009:\n> > > +++ b/Documentation/git-format-patch.txt\n> > > @@ -132,9 +133,15 @@ The optional <style> argument can be either `shallow` or `deep`.\n> > >  'shallow' threading makes every mail a reply to the head of the\n> > >  series, where the head is chosen from the cover letter, the\n> > >  `\\--in-reply-to`, and the first patch mail, in this order.  'deep'\n> > > -threading makes every mail a reply to the previous one.  If not\n> > > -specified, defaults to the 'format.thread' configuration, or `shallow`\n> > > -if that is not set.\n> > > +threading makes every mail a reply to the previous one.\n> > > ++\n> > > +The default is --no-thread, unless the 'format.thread' configuration\n> > > +is set.  If --thread is specified without a style, it defaults to the\n> > > +style specified by 'format.thread' if any, or else `shallow`.\n> > > ++\n> > > +Beware that the default for 'git send-email' is to do deep threading\n> > > +if the emails to be sent have no Message-Id header, which is what\n> > > +happens when then are generated by 'git format-patch --no-thread'.\n> > \n> > Oh, due to the typo I mentioned in my previous mail, I forgot to really\n> > comment.\n> > \n> > The last paragraph is misleading. git-send-email always adds headers for\n> > deep threading by default, regardless of any existing Message-Id\n> > headers.\n> > The current wording makes one believe, git-send-email respects existing\n> > headers if the patches are created with 'git format-patch --thread'.\n> > But that it isn't aware of them is exactly what you want to explain\n> > here.\n> \n> Indeed I realize that I did not grasp correctly how things are\n> supposed to fit together.  Reading the code and experimenting, I see\n> that:\n> \n> - as you say, send-email completely ignores any pre-existing\n> In-Reply-To and References header (it does keep the Message-Id's,\n> though)\n> \n> - send-email simply adds its own In-Reply-To and References headers.\n> That IMHO does not make any sense, and the behaviour of such a thing\n> is likely to vary among MUAs (if it even does not violate the\n> standards, which I did not check)\n\nI don't know either, but funny things often cause trouble. send-email\nwould have to parse the patch to avoid adding its own headers. The\neasiest solution/workaround is that the user should know, whether he\ndoes the threading with format-patch or send-email. This is error, of\ncourse.\n\nSee also this recent thread about the same:\nhttp://thread.gmane.org/gmane.comp.version-control.git/122554/focus=122584\n\n> - even when --no-thread is specified, and format-patch was run with\n> --no-thread as well, it still adds In-Reply-To and References headers,\n> and I must say I do not see what in the code causes this behaviour.\n\nThis is caused by a bug fixed in commit 5e9758e29 (send-email: fix\nnon-threaded mails, 2009-06-12). Try using \"git send-email --no-thread\n--no-chain-reply\" and it may work again. You should use an up-to-date\ngit, when searching for bugs.\n\nMarkus\n"},{"id":"118155","messageId":"20090717065236.GE5762@nan92-1-81-57-214-146.fbx.proxad.net","threadId":"20030","inReplyTo":"200907170058.46962.markus.heidelberg@web.de","subject":"Re: [PATCH 2/2] Improve doc for format-patch threading options.","fromName":"Yann Dirson","fromEmail":"ydirson@altern.org","sentAt":"2009-07-17T06:52:37Z","receivedAt":"2009-07-17T06:52:37Z","isPatch":true,"sender":{"key":"ydirson@altern.org","avatar":"https://avatars.githubusercontent.com/u/1190950?v=4"},"body":"On Fri, Jul 17, 2009 at 12:58:46AM +0200, Markus Heidelberg wrote:\n> > - even when --no-thread is specified, and format-patch was run with\n> > --no-thread as well, it still adds In-Reply-To and References headers,\n> > and I must say I do not see what in the code causes this behaviour.\n> \n> This is caused by a bug fixed in commit 5e9758e29 (send-email: fix\n> non-threaded mails, 2009-06-12). Try using \"git send-email --no-thread\n> --no-chain-reply\" and it may work again. You should use an up-to-date\n> git, when searching for bugs.\n\nI had tried exactly this just in case it would help, with current\nmaster (1.6.4rc1), and it still saw the same behaviour.\n"},{"id":"118209","messageId":"200907180123.41735.markus.heidelberg@web.de","threadId":"20030","inReplyTo":"20090717065236.GE5762@nan92-1-81-57-214-146.fbx.proxad.net","subject":"Re: [PATCH 2/2] Improve doc for format-patch threading options.","fromName":"Markus Heidelberg","fromEmail":"markus.heidelberg@web.de","sentAt":"2009-07-17T23:23:41Z","receivedAt":"2009-07-17T23:23:41Z","isPatch":true,"sender":{"key":"markus.heidelberg@web.de","avatar":"https://avatars.githubusercontent.com/u/6334512?v=4"},"body":"Yann Dirson, 17.07.2009:\n> On Fri, Jul 17, 2009 at 12:58:46AM +0200, Markus Heidelberg wrote:\n> > > - even when --no-thread is specified, and format-patch was run with\n> > > --no-thread as well, it still adds In-Reply-To and References headers,\n> > > and I must say I do not see what in the code causes this behaviour.\n> > \n> > This is caused by a bug fixed in commit 5e9758e29 (send-email: fix\n> > non-threaded mails, 2009-06-12). Try using \"git send-email --no-thread\n> > --no-chain-reply\" and it may work again. You should use an up-to-date\n> > git, when searching for bugs.\n> \n> I had tried exactly this just in case it would help, with current\n> master (1.6.4rc1), and it still saw the same behaviour.\n\nStrange, I can't reproduce it.\n"},{"id":"118484","messageId":"20090722205713.GA7901@nan92-1-81-57-214-146.fbx.proxad.net","threadId":"20030","inReplyTo":"200907180123.41735.markus.heidelberg@web.de","subject":"Re: [PATCH 2/2] Improve doc for format-patch threading options.","fromName":"Yann Dirson","fromEmail":"ydirson@altern.org","sentAt":"2009-07-22T20:57:14Z","receivedAt":"2009-07-22T20:57:14Z","isPatch":true,"sender":{"key":"ydirson@altern.org","avatar":"https://avatars.githubusercontent.com/u/1190950?v=4"},"body":"On Sat, Jul 18, 2009 at 01:23:41AM +0200, Markus Heidelberg wrote:\n> Yann Dirson, 17.07.2009:\n> > On Fri, Jul 17, 2009 at 12:58:46AM +0200, Markus Heidelberg wrote:\n> > > > - even when --no-thread is specified, and format-patch was run with\n> > > > --no-thread as well, it still adds In-Reply-To and References headers,\n> > > > and I must say I do not see what in the code causes this behaviour.\n> > > \n> > > This is caused by a bug fixed in commit 5e9758e29 (send-email: fix\n> > > non-threaded mails, 2009-06-12). Try using \"git send-email --no-thread\n> > > --no-chain-reply\" and it may work again. You should use an up-to-date\n> > > git, when searching for bugs.\n> > \n> > I had tried exactly this just in case it would help, with current\n> > master (1.6.4rc1), and it still saw the same behaviour.\n> \n> Strange, I can't reproduce it.\n\nYou're right, I must have forgotten --exec-path=$PWD when doing my\ntests.  It also works with \"git send-email --no-thread\",\n--no-chain-reply is (as expected) not even necessary.\n\nCool, I can get back to documenting that :)\n"},{"id":"118487","messageId":"1248298771-21075-1-git-send-email-ydirson@altern.org","threadId":"20030","inReplyTo":"cover.1246834883.git.ydirson@altern.org","subject":"[PATCHv2 0/2] format-patch / send-mail threading documentation","fromName":"Yann Dirson","fromEmail":"ydirson@altern.org","sentAt":"2009-07-22T21:39:29Z","receivedAt":"2009-07-22T21:39:29Z","isPatch":false,"sender":{"key":"ydirson@altern.org","avatar":"https://avatars.githubusercontent.com/u/1190950?v=4"},"body":"This new series attempts to correct things to take into account\ncomments from Junio and Markus, and to avoid duplication of config\nitem descriptions into config.txt.\n\nYann Dirson (2):\n  List send-email config options in config.txt.\n  Improve doc for format-patch threading options.\n\n Documentation/config.txt           |   44 ++++++++++++++++++++++++++++++++++++\n Documentation/git-format-patch.txt |   22 ++++++++++++-----\n Documentation/git-send-email.txt   |   21 +++++++++++++----\n 3 files changed, 75 insertions(+), 12 deletions(-)\n"},{"id":"118489","messageId":"1248298771-21075-2-git-send-email-ydirson@altern.org","threadId":"20030","inReplyTo":"1248298771-21075-1-git-send-email-ydirson@altern.org","subject":"[PATCH 1/2] List send-email config options in config.txt.","fromName":"Yann Dirson","fromEmail":"ydirson@altern.org","sentAt":"2009-07-22T21:39:30Z","receivedAt":"2009-07-22T21:39:30Z","isPatch":true,"sender":{"key":"ydirson@altern.org","avatar":"https://avatars.githubusercontent.com/u/1190950?v=4"},"body":"Also mention deprecated aliases that do not appear in the send-email\nmanpage.\n\nSigned-off-by: Yann Dirson <ydirson@altern.org>\n---\n Documentation/config.txt |   44 ++++++++++++++++++++++++++++++++++++++++++++\n 1 files changed, 44 insertions(+), 0 deletions(-)\n\ndiff --git a/Documentation/config.txt b/Documentation/config.txt\nindex cb6832b..6857d2f 100644\n--- a/Documentation/config.txt\n+++ b/Documentation/config.txt\n@@ -1387,6 +1387,50 @@ rerere.enabled::\n \tdefault enabled if you create `rr-cache` directory under\n \t`$GIT_DIR`, but can be disabled by setting this option to false.\n \n+sendemail.identity::\n+\tA configuration identity. When given, causes values in the\n+\t'sendemail.<identity>' subsection to take precedence over\n+\tvalues in the 'sendemail' section. The default identity is\n+\tthe value of 'sendemail.identity'.\n+\n+sendemail.smtpencryption::\n+\tSee linkgit:git-send-email[1] for description.  Note that this\n+\tsetting is not subject to the 'identity' mechanism.\n+\n+sendemail.smtpssl::\n+\tDeprecated alias for 'sendemail.smtpencryption = ssl'.\n+\n+sendemail.<identity>.*::\n+\tIdentity-specific versions of the 'sendemail.*' parameters\n+\tfound below, taking precedence over those when the this\n+\tidentity is selected, through command-line or\n+\t'sendemail.identity'.\n+\n+sendemail.aliasesfile::\n+sendemail.aliasfiletype::\n+sendemail.bcc::\n+sendemail.cc::\n+sendemail.cccmd::\n+sendemail.chainreplyto::\n+sendemail.confirm::\n+sendemail.envelopesender::\n+sendemail.from::\n+sendemail.multiedit::\n+sendemail.signedoffbycc::\n+sendemail.smtppass::\n+sendemail.suppresscc::\n+sendemail.suppressfrom::\n+sendemail.to::\n+sendemail.smtpserver::\n+sendemail.smtpserverport::\n+sendemail.smtpuser::\n+sendemail.thread::\n+sendemail.validate::\n+\tSee linkgit:git-send-email[1] for description.\n+\n+sendemail.signedoffcc::\n+\tDeprecated alias for 'sendemail.signedoffbycc'.\n+\n showbranch.default::\n \tThe default set of branches for linkgit:git-show-branch[1].\n \tSee linkgit:git-show-branch[1].\n-- \n1.6.4.rc1.12.g05859c\n"},{"id":"118488","messageId":"1248298771-21075-3-git-send-email-ydirson@altern.org","threadId":"20030","inReplyTo":"1248298771-21075-2-git-send-email-ydirson@altern.org","subject":"[PATCH 2/2] Improve doc for format-patch threading options.","fromName":"Yann Dirson","fromEmail":"ydirson@altern.org","sentAt":"2009-07-22T21:39:31Z","receivedAt":"2009-07-22T21:39:31Z","isPatch":true,"sender":{"key":"ydirson@altern.org","avatar":"https://avatars.githubusercontent.com/u/1190950?v=4"},"body":"This hopefully makes the relationship between threading options of\nformat-patch and send-email easier to grasp.\n\nSigned-off-by: Yann Dirson <ydirson@altern.org>\n---\n Documentation/git-format-patch.txt |   22 +++++++++++++++-------\n Documentation/git-send-email.txt   |   21 ++++++++++++++++-----\n 2 files changed, 31 insertions(+), 12 deletions(-)\n\ndiff --git a/Documentation/git-format-patch.txt b/Documentation/git-format-patch.txt\nindex 6f1fc80..687e667 100644\n--- a/Documentation/git-format-patch.txt\n+++ b/Documentation/git-format-patch.txt\n@@ -10,7 +10,7 @@ SYNOPSIS\n --------\n [verse]\n 'git format-patch' [-k] [(-o|--output-directory) <dir> | --stdout]\n-\t\t   [--thread[=<style>]]\n+\t\t   [--no-thread | --thread[=<style>]]\n \t\t   [(--attach|--inline)[=<boundary>] | --no-attach]\n \t\t   [-s | --signoff]\n \t\t   [-n | --numbered | -N | --no-numbered]\n@@ -124,17 +124,25 @@ include::diff-options.txt[]\n \tsecond part, with \"Content-Disposition: inline\".\n \n --thread[=<style>]::\n-\tAdd In-Reply-To and References headers to make the second and\n-\tsubsequent mails appear as replies to the first.  Also generates\n-\tthe Message-Id header to reference.\n+--no-thread::\n+\tControls addition of In-Reply-To and References headers to\n+\tmake the second and subsequent mails appear as replies to the\n+\tfirst.  Also controls generation of the Message-Id header to\n+\treference.\n +\n The optional <style> argument can be either `shallow` or `deep`.\n 'shallow' threading makes every mail a reply to the head of the\n series, where the head is chosen from the cover letter, the\n `\\--in-reply-to`, and the first patch mail, in this order.  'deep'\n-threading makes every mail a reply to the previous one.  If not\n-specified, defaults to the 'format.thread' configuration, or `shallow`\n-if that is not set.\n+threading makes every mail a reply to the previous one.\n++\n+The default is --no-thread, unless the 'format.thread' configuration\n+is set.  If --thread is specified without a style, it defaults to the\n+style specified by 'format.thread' if any, or else `shallow`.\n++\n+Beware that the default for 'git send-email' is to thread emails\n+itself.  If you want 'git format-patch' to take care of hreading, you\n+will want to ensure that threading is disabled for 'git send-email'.\n \n --in-reply-to=Message-Id::\n \tMake the first mail (or all the mails with --no-thread) appear as a\ndiff --git a/Documentation/git-send-email.txt b/Documentation/git-send-email.txt\nindex fbde2d3..d6b192b 100644\n--- a/Documentation/git-send-email.txt\n+++ b/Documentation/git-send-email.txt\n@@ -212,11 +212,22 @@ specified, as well as 'body' if --no-signed-off-cc is specified.\n \tvalue; if that is unspecified, default to --no-suppress-from.\n \n --[no-]thread::\n-\tIf this is set, the In-Reply-To header will be set on each email sent.\n-\tIf disabled with \"--no-thread\", no emails will have the In-Reply-To\n-\theader set, unless specified with --in-reply-to.\n-\tDefault is the value of the 'sendemail.thread' configuration\n-\tvalue; if that is unspecified, default to --thread.\n+\tIf this is set, the In-Reply-To and References headers will be\n+\tadded to each email sent.  Whether each mail refers to the\n+\tprevious email (`deep` threading per 'git format-patch'\n+\twording) or to the first email (`shallow` threading) is\n+\tgoverned by \"--[no-]chain-reply-to\".\n++\n+If disabled with \"--no-thread\", those headers will not be added\n+(unless specified with --in-reply-to).  Default is the value of the\n+'sendemail.thread' configuration value; if that is unspecified,\n+default to --thread.\n++\n+It is up to the user to ensure that no In-Reply-To header already\n+exists when 'git send-email' is asked to add it (especially note that\n+'git format-patch' can be configured to do the threading itself).\n+Failure to do so may not produce the expected result in the\n+recipient's MUA.\n \n \n Administering\n-- \n1.6.4.rc1.12.g05859c\n"},{"id":"118509","messageId":"7vbpnccqtc.fsf@alter.siamese.dyndns.org","threadId":"20030","inReplyTo":"1248298771-21075-1-git-send-email-ydirson@altern.org","subject":"Re: [PATCHv2 0/2] format-patch / send-mail threading documentation","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2009-07-22T22:10:07Z","receivedAt":"2009-07-22T22:10:07Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Sounds reasonable from a cursory look.\n\nThanks, will queue.\n"},{"id":"118552","messageId":"200907230731.14430.markus.heidelberg@web.de","threadId":"20030","inReplyTo":"1248298771-21075-3-git-send-email-ydirson@altern.org","subject":"Re: [PATCH 2/2] Improve doc for format-patch threading options.","fromName":"Markus Heidelberg","fromEmail":"markus.heidelberg@web.de","sentAt":"2009-07-23T05:31:13Z","receivedAt":"2009-07-23T05:31:13Z","isPatch":true,"sender":{"key":"markus.heidelberg@web.de","avatar":"https://avatars.githubusercontent.com/u/6334512?v=4"},"body":"Yann Dirson, 22.07.2009:\n> This hopefully makes the relationship between threading options of\n> format-patch and send-email easier to grasp.\n\nYes, it does.\n\n> Signed-off-by: Yann Dirson <ydirson@altern.org>\n> ---\n>  Documentation/git-format-patch.txt |   22 +++++++++++++++-------\n>  Documentation/git-send-email.txt   |   21 ++++++++++++++++-----\n>  2 files changed, 31 insertions(+), 12 deletions(-)\n> \n> diff --git a/Documentation/git-format-patch.txt b/Documentation/git-format-patch.txt\n> index 6f1fc80..687e667 100644\n> --- a/Documentation/git-format-patch.txt\n> +++ b/Documentation/git-format-patch.txt\n> @@ -10,7 +10,7 @@ SYNOPSIS\n>  --------\n>  [verse]\n>  'git format-patch' [-k] [(-o|--output-directory) <dir> | --stdout]\n> -\t\t   [--thread[=<style>]]\n> +\t\t   [--no-thread | --thread[=<style>]]\n>  \t\t   [(--attach|--inline)[=<boundary>] | --no-attach]\n>  \t\t   [-s | --signoff]\n>  \t\t   [-n | --numbered | -N | --no-numbered]\n> @@ -124,17 +124,25 @@ include::diff-options.txt[]\n>  \tsecond part, with \"Content-Disposition: inline\".\n>  \n>  --thread[=<style>]::\n> -\tAdd In-Reply-To and References headers to make the second and\n> -\tsubsequent mails appear as replies to the first.  Also generates\n> -\tthe Message-Id header to reference.\n> +--no-thread::\n> +\tControls addition of In-Reply-To and References headers to\n> +\tmake the second and subsequent mails appear as replies to the\n> +\tfirst.  Also controls generation of the Message-Id header to\n> +\treference.\n>  +\n>  The optional <style> argument can be either `shallow` or `deep`.\n>  'shallow' threading makes every mail a reply to the head of the\n>  series, where the head is chosen from the cover letter, the\n>  `\\--in-reply-to`, and the first patch mail, in this order.  'deep'\n> -threading makes every mail a reply to the previous one.  If not\n> -specified, defaults to the 'format.thread' configuration, or `shallow`\n> -if that is not set.\n> +threading makes every mail a reply to the previous one.\n> ++\n> +The default is --no-thread, unless the 'format.thread' configuration\n> +is set.  If --thread is specified without a style, it defaults to the\n> +style specified by 'format.thread' if any, or else `shallow`.\n> ++\n> +Beware that the default for 'git send-email' is to thread emails\n> +itself.  If you want 'git format-patch' to take care of hreading, you\n                                                           ^^^^^^^^\nthreading\nI guess Junio can squash this in.\n\n> +will want to ensure that threading is disabled for 'git send-email'.\n>  \n>  --in-reply-to=Message-Id::\n>  \tMake the first mail (or all the mails with --no-thread) appear as a\n"}]}