{"thread":{"id":"49191","subject":"[PATCH/RFC 00/11] Break down Documentation/config.txt","startedAt":"2018-08-22T16:06:12Z","lastAt":"2018-08-22T16:28:53Z","messageCount":13,"participants":["Nguyễn Thái Ngọc Duy","Junio C Hamano"],"isPatch":true,"patchVersion":1,"patchTotal":11},"messages":[{"id":"356261","messageId":"20180822160605.21864-1-pclouds@gmail.com","threadId":"49191","inReplyTo":null,"subject":"[PATCH/RFC 00/11] Break down Documentation/config.txt","fromName":"Nguyễn Thái Ngọc Duy","fromEmail":"pclouds@gmail.com","sentAt":"2018-08-22T16:05:54Z","receivedAt":"2018-08-22T16:06:12Z","isPatch":true,"sender":{"key":"pclouds@gmail.com","avatar":"https://avatars.githubusercontent.com/u/720?v=4"},"body":"I notice a couple times lately that people added new config keys in\nthe wrong place, which is understandable since this file has become so\nbig, it's hard to see the structure of anything.\n\nSince we have broken down some parts of it into separate files\nalready, this continues in that direction and moves even more parts\nout of config.txt.\n\nI don't have a well defined criteria to decide which part should be\nmoved out. I just did it when I see a section is getting too big, or\nbecomes less relevant today, or not move to avoid conflicts on 'pu'.\nBut if this is a good move, we can discuss this further.\n\nI group by section, but I think in some cases we can even do better\nand group multiple sections in one file (which also means they are\nrendered close together). This again is up to discussion.\n\nNguyễn Thái Ngọc Duy (11):\n  config.txt: follow camelCase naming\n  config.txt: move fetch part out to a separate file\n  config.txt: move format part out to a separate file\n  config.txt: move gitcvs part out to a separate file\n  config.txt: move gui part out to a separate file\n  config.txt: move pull part out to a separate file\n  config.txt: move push part out to a separate file\n  config.txt: move receive part out to a separate file\n  config.txt: move sendemail part out to a separate file\n  config.txt: move sequence.editor out of \"core\" part\n  config.txt: move submodule part out to a separate file\n\n Documentation/config.txt           | 720 +----------------------------\n Documentation/fetch-config.txt     |  65 +++\n Documentation/format-config.txt    |  87 ++++\n Documentation/gitcvs-config.txt    |  67 +++\n Documentation/gui-config.txt       |  57 +++\n Documentation/pull-config.txt      |  36 ++\n Documentation/push-config.txt      | 113 +++++\n Documentation/receive-config.txt   | 123 +++++\n Documentation/sendemail-config.txt |  63 +++\n Documentation/submodule-config.txt |  82 ++++\n 10 files changed, 711 insertions(+), 702 deletions(-)\n create mode 100644 Documentation/fetch-config.txt\n create mode 100644 Documentation/format-config.txt\n create mode 100644 Documentation/gitcvs-config.txt\n create mode 100644 Documentation/gui-config.txt\n create mode 100644 Documentation/pull-config.txt\n create mode 100644 Documentation/push-config.txt\n create mode 100644 Documentation/receive-config.txt\n create mode 100644 Documentation/sendemail-config.txt\n create mode 100644 Documentation/submodule-config.txt\n\n-- \n2.19.0.rc0.335.ga73d156e9c\n\n"},{"id":"356262","messageId":"20180822160605.21864-2-pclouds@gmail.com","threadId":"49191","inReplyTo":"20180822160605.21864-1-pclouds@gmail.com","subject":"[PATCH 01/11] config.txt: follow camelCase naming","fromName":"Nguyễn Thái Ngọc Duy","fromEmail":"pclouds@gmail.com","sentAt":"2018-08-22T16:05:55Z","receivedAt":"2018-08-22T16:06:13Z","isPatch":true,"sender":{"key":"pclouds@gmail.com","avatar":"https://avatars.githubusercontent.com/u/720?v=4"},"body":"Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>\n---\n Documentation/config.txt | 2 +-\n 1 file changed, 1 insertion(+), 1 deletion(-)\n\ndiff --git a/Documentation/config.txt b/Documentation/config.txt\nindex 1c42364988..30adca61ee 100644\n--- a/Documentation/config.txt\n+++ b/Documentation/config.txt\n@@ -3282,7 +3282,7 @@ sendemail.smtpReloginDelay::\n \tSeconds wait before reconnecting to smtp server.\n \tSee also the `--relogin-delay` option of linkgit:git-send-email[1].\n \n-showbranch.default::\n+showBranch.default::\n \tThe default set of branches for linkgit:git-show-branch[1].\n \tSee linkgit:git-show-branch[1].\n \n-- \n2.19.0.rc0.335.ga73d156e9c\n\n"},{"id":"356264","messageId":"20180822160605.21864-3-pclouds@gmail.com","threadId":"49191","inReplyTo":"20180822160605.21864-1-pclouds@gmail.com","subject":"[PATCH 02/11] config.txt: move fetch part out to a separate file","fromName":"Nguyễn Thái Ngọc Duy","fromEmail":"pclouds@gmail.com","sentAt":"2018-08-22T16:05:56Z","receivedAt":"2018-08-22T16:06:15Z","isPatch":true,"sender":{"key":"pclouds@gmail.com","avatar":"https://avatars.githubusercontent.com/u/720?v=4"},"body":"Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>\n---\n Documentation/config.txt       | 66 +---------------------------------\n Documentation/fetch-config.txt | 65 +++++++++++++++++++++++++++++++++\n 2 files changed, 66 insertions(+), 65 deletions(-)\n create mode 100644 Documentation/fetch-config.txt\n\ndiff --git a/Documentation/config.txt b/Documentation/config.txt\nindex 30adca61ee..33ba7ca2cd 100644\n--- a/Documentation/config.txt\n+++ b/Documentation/config.txt\n@@ -1505,71 +1505,7 @@ fastimport.unpackLimit::\n \toperation complete faster, especially on slow filesystems.  If\n \tnot set, the value of `transfer.unpackLimit` is used instead.\n \n-fetch.recurseSubmodules::\n-\tThis option can be either set to a boolean value or to 'on-demand'.\n-\tSetting it to a boolean changes the behavior of fetch and pull to\n-\tunconditionally recurse into submodules when set to true or to not\n-\trecurse at all when set to false. When set to 'on-demand' (the default\n-\tvalue), fetch and pull will only recurse into a populated submodule\n-\twhen its superproject retrieves a commit that updates the submodule's\n-\treference.\n-\n-fetch.fsckObjects::\n-\tIf it is set to true, git-fetch-pack will check all fetched\n-\tobjects. See `transfer.fsckObjects` for what's\n-\tchecked. Defaults to false. If not set, the value of\n-\t`transfer.fsckObjects` is used instead.\n-\n-fetch.fsck.<msg-id>::\n-\tActs like `fsck.<msg-id>`, but is used by\n-\tlinkgit:git-fetch-pack[1] instead of linkgit:git-fsck[1]. See\n-\tthe `fsck.<msg-id>` documentation for details.\n-\n-fetch.fsck.skipList::\n-\tActs like `fsck.skipList`, but is used by\n-\tlinkgit:git-fetch-pack[1] instead of linkgit:git-fsck[1]. See\n-\tthe `fsck.skipList` documentation for details.\n-\n-fetch.unpackLimit::\n-\tIf the number of objects fetched over the Git native\n-\ttransfer is below this\n-\tlimit, then the objects will be unpacked into loose object\n-\tfiles. However if the number of received objects equals or\n-\texceeds this limit then the received pack will be stored as\n-\ta pack, after adding any missing delta bases.  Storing the\n-\tpack from a push can make the push operation complete faster,\n-\tespecially on slow filesystems.  If not set, the value of\n-\t`transfer.unpackLimit` is used instead.\n-\n-fetch.prune::\n-\tIf true, fetch will automatically behave as if the `--prune`\n-\toption was given on the command line.  See also `remote.<name>.prune`\n-\tand the PRUNING section of linkgit:git-fetch[1].\n-\n-fetch.pruneTags::\n-\tIf true, fetch will automatically behave as if the\n-\t`refs/tags/*:refs/tags/*` refspec was provided when pruning,\n-\tif not set already. This allows for setting both this option\n-\tand `fetch.prune` to maintain a 1=1 mapping to upstream\n-\trefs. See also `remote.<name>.pruneTags` and the PRUNING\n-\tsection of linkgit:git-fetch[1].\n-\n-fetch.output::\n-\tControl how ref update status is printed. Valid values are\n-\t`full` and `compact`. Default value is `full`. See section\n-\tOUTPUT in linkgit:git-fetch[1] for detail.\n-\n-fetch.negotiationAlgorithm::\n-\tControl how information about the commits in the local repository is\n-\tsent when negotiating the contents of the packfile to be sent by the\n-\tserver. Set to \"skipping\" to use an algorithm that skips commits in an\n-\teffort to converge faster, but may result in a larger-than-necessary\n-\tpackfile; The default is \"default\" which instructs Git to use the default algorithm\n-\tthat never skips commits (unless the server has acknowledged it or one\n-\tof its descendants).\n-\tUnknown values will cause 'git fetch' to error out.\n-+\n-See also the `--negotiation-tip` option for linkgit:git-fetch[1].\n+include::fetch-config.txt[]\n \n format.attach::\n \tEnable multipart/mixed attachments as the default for\ndiff --git a/Documentation/fetch-config.txt b/Documentation/fetch-config.txt\nnew file mode 100644\nindex 0000000000..cbfad6cdbb\n--- /dev/null\n+++ b/Documentation/fetch-config.txt\n@@ -0,0 +1,65 @@\n+fetch.recurseSubmodules::\n+\tThis option can be either set to a boolean value or to 'on-demand'.\n+\tSetting it to a boolean changes the behavior of fetch and pull to\n+\tunconditionally recurse into submodules when set to true or to not\n+\trecurse at all when set to false. When set to 'on-demand' (the default\n+\tvalue), fetch and pull will only recurse into a populated submodule\n+\twhen its superproject retrieves a commit that updates the submodule's\n+\treference.\n+\n+fetch.fsckObjects::\n+\tIf it is set to true, git-fetch-pack will check all fetched\n+\tobjects. See `transfer.fsckObjects` for what's\n+\tchecked. Defaults to false. If not set, the value of\n+\t`transfer.fsckObjects` is used instead.\n+\n+fetch.fsck.<msg-id>::\n+\tActs like `fsck.<msg-id>`, but is used by\n+\tlinkgit:git-fetch-pack[1] instead of linkgit:git-fsck[1]. See\n+\tthe `fsck.<msg-id>` documentation for details.\n+\n+fetch.fsck.skipList::\n+\tActs like `fsck.skipList`, but is used by\n+\tlinkgit:git-fetch-pack[1] instead of linkgit:git-fsck[1]. See\n+\tthe `fsck.skipList` documentation for details.\n+\n+fetch.unpackLimit::\n+\tIf the number of objects fetched over the Git native\n+\ttransfer is below this\n+\tlimit, then the objects will be unpacked into loose object\n+\tfiles. However if the number of received objects equals or\n+\texceeds this limit then the received pack will be stored as\n+\ta pack, after adding any missing delta bases.  Storing the\n+\tpack from a push can make the push operation complete faster,\n+\tespecially on slow filesystems.  If not set, the value of\n+\t`transfer.unpackLimit` is used instead.\n+\n+fetch.prune::\n+\tIf true, fetch will automatically behave as if the `--prune`\n+\toption was given on the command line.  See also `remote.<name>.prune`\n+\tand the PRUNING section of linkgit:git-fetch[1].\n+\n+fetch.pruneTags::\n+\tIf true, fetch will automatically behave as if the\n+\t`refs/tags/*:refs/tags/*` refspec was provided when pruning,\n+\tif not set already. This allows for setting both this option\n+\tand `fetch.prune` to maintain a 1=1 mapping to upstream\n+\trefs. See also `remote.<name>.pruneTags` and the PRUNING\n+\tsection of linkgit:git-fetch[1].\n+\n+fetch.output::\n+\tControl how ref update status is printed. Valid values are\n+\t`full` and `compact`. Default value is `full`. See section\n+\tOUTPUT in linkgit:git-fetch[1] for detail.\n+\n+fetch.negotiationAlgorithm::\n+\tControl how information about the commits in the local repository is\n+\tsent when negotiating the contents of the packfile to be sent by the\n+\tserver. Set to \"skipping\" to use an algorithm that skips commits in an\n+\teffort to converge faster, but may result in a larger-than-necessary\n+\tpackfile; The default is \"default\" which instructs Git to use the default algorithm\n+\tthat never skips commits (unless the server has acknowledged it or one\n+\tof its descendants).\n+\tUnknown values will cause 'git fetch' to error out.\n++\n+See also the `--negotiation-tip` option for linkgit:git-fetch[1].\n-- \n2.19.0.rc0.335.ga73d156e9c\n\n"},{"id":"356263","messageId":"20180822160605.21864-4-pclouds@gmail.com","threadId":"49191","inReplyTo":"20180822160605.21864-1-pclouds@gmail.com","subject":"[PATCH 03/11] config.txt: move format part out to a separate file","fromName":"Nguyễn Thái Ngọc Duy","fromEmail":"pclouds@gmail.com","sentAt":"2018-08-22T16:05:57Z","receivedAt":"2018-08-22T16:06:16Z","isPatch":true,"sender":{"key":"pclouds@gmail.com","avatar":"https://avatars.githubusercontent.com/u/720?v=4"},"body":"Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>\n---\n Documentation/config.txt        | 88 +--------------------------------\n Documentation/format-config.txt | 87 ++++++++++++++++++++++++++++++++\n 2 files changed, 88 insertions(+), 87 deletions(-)\n create mode 100644 Documentation/format-config.txt\n\ndiff --git a/Documentation/config.txt b/Documentation/config.txt\nindex 33ba7ca2cd..393f6843f5 100644\n--- a/Documentation/config.txt\n+++ b/Documentation/config.txt\n@@ -1507,93 +1507,7 @@ fastimport.unpackLimit::\n \n include::fetch-config.txt[]\n \n-format.attach::\n-\tEnable multipart/mixed attachments as the default for\n-\t'format-patch'.  The value can also be a double quoted string\n-\twhich will enable attachments as the default and set the\n-\tvalue as the boundary.  See the --attach option in\n-\tlinkgit:git-format-patch[1].\n-\n-format.from::\n-\tProvides the default value for the `--from` option to format-patch.\n-\tAccepts a boolean value, or a name and email address.  If false,\n-\tformat-patch defaults to `--no-from`, using commit authors directly in\n-\tthe \"From:\" field of patch mails.  If true, format-patch defaults to\n-\t`--from`, using your committer identity in the \"From:\" field of patch\n-\tmails and including a \"From:\" field in the body of the patch mail if\n-\tdifferent.  If set to a non-boolean value, format-patch uses that\n-\tvalue instead of your committer identity.  Defaults to false.\n-\n-format.numbered::\n-\tA boolean which can enable or disable sequence numbers in patch\n-\tsubjects.  It defaults to \"auto\" which enables it only if there\n-\tis more than one patch.  It can be enabled or disabled for all\n-\tmessages by setting it to \"true\" or \"false\".  See --numbered\n-\toption in linkgit:git-format-patch[1].\n-\n-format.headers::\n-\tAdditional email headers to include in a patch to be submitted\n-\tby mail.  See linkgit:git-format-patch[1].\n-\n-format.to::\n-format.cc::\n-\tAdditional recipients to include in a patch to be submitted\n-\tby mail.  See the --to and --cc options in\n-\tlinkgit:git-format-patch[1].\n-\n-format.subjectPrefix::\n-\tThe default for format-patch is to output files with the '[PATCH]'\n-\tsubject prefix. Use this variable to change that prefix.\n-\n-format.signature::\n-\tThe default for format-patch is to output a signature containing\n-\tthe Git version number. Use this variable to change that default.\n-\tSet this variable to the empty string (\"\") to suppress\n-\tsignature generation.\n-\n-format.signatureFile::\n-\tWorks just like format.signature except the contents of the\n-\tfile specified by this variable will be used as the signature.\n-\n-format.suffix::\n-\tThe default for format-patch is to output files with the suffix\n-\t`.patch`. Use this variable to change that suffix (make sure to\n-\tinclude the dot if you want it).\n-\n-format.pretty::\n-\tThe default pretty format for log/show/whatchanged command,\n-\tSee linkgit:git-log[1], linkgit:git-show[1],\n-\tlinkgit:git-whatchanged[1].\n-\n-format.thread::\n-\tThe default threading style for 'git format-patch'.  Can be\n-\ta boolean value, or `shallow` or `deep`.  `shallow` threading\n-\tmakes every mail a reply to the head of the series,\n-\twhere the head is chosen from the cover letter, the\n-\t`--in-reply-to`, and the first patch mail, in this order.\n-\t`deep` threading makes every mail a reply to the previous one.\n-\tA true boolean value is the same as `shallow`, and a false\n-\tvalue disables threading.\n-\n-format.signOff::\n-\tA boolean value which lets you enable the `-s/--signoff` option of\n-\tformat-patch by default. *Note:* Adding the Signed-off-by: line to a\n-\tpatch should be a conscious act and means that you certify you have\n-\tthe rights to submit this work under the same open source license.\n-\tPlease see the 'SubmittingPatches' document for further discussion.\n-\n-format.coverLetter::\n-\tA boolean that controls whether to generate a cover-letter when\n-\tformat-patch is invoked, but in addition can be set to \"auto\", to\n-\tgenerate a cover-letter only when there's more than one patch.\n-\n-format.outputDirectory::\n-\tSet a custom directory to store the resulting files instead of the\n-\tcurrent working directory.\n-\n-format.useAutoBase::\n-\tA boolean value which lets you enable the `--base=auto` option of\n-\tformat-patch by default.\n+include::format-config.txt[]\n \n filter.<driver>.clean::\n \tThe command which is used to convert the content of a worktree\ndiff --git a/Documentation/format-config.txt b/Documentation/format-config.txt\nnew file mode 100644\nindex 0000000000..dc77941c48\n--- /dev/null\n+++ b/Documentation/format-config.txt\n@@ -0,0 +1,87 @@\n+format.attach::\n+\tEnable multipart/mixed attachments as the default for\n+\t'format-patch'.  The value can also be a double quoted string\n+\twhich will enable attachments as the default and set the\n+\tvalue as the boundary.  See the --attach option in\n+\tlinkgit:git-format-patch[1].\n+\n+format.from::\n+\tProvides the default value for the `--from` option to format-patch.\n+\tAccepts a boolean value, or a name and email address.  If false,\n+\tformat-patch defaults to `--no-from`, using commit authors directly in\n+\tthe \"From:\" field of patch mails.  If true, format-patch defaults to\n+\t`--from`, using your committer identity in the \"From:\" field of patch\n+\tmails and including a \"From:\" field in the body of the patch mail if\n+\tdifferent.  If set to a non-boolean value, format-patch uses that\n+\tvalue instead of your committer identity.  Defaults to false.\n+\n+format.numbered::\n+\tA boolean which can enable or disable sequence numbers in patch\n+\tsubjects.  It defaults to \"auto\" which enables it only if there\n+\tis more than one patch.  It can be enabled or disabled for all\n+\tmessages by setting it to \"true\" or \"false\".  See --numbered\n+\toption in linkgit:git-format-patch[1].\n+\n+format.headers::\n+\tAdditional email headers to include in a patch to be submitted\n+\tby mail.  See linkgit:git-format-patch[1].\n+\n+format.to::\n+format.cc::\n+\tAdditional recipients to include in a patch to be submitted\n+\tby mail.  See the --to and --cc options in\n+\tlinkgit:git-format-patch[1].\n+\n+format.subjectPrefix::\n+\tThe default for format-patch is to output files with the '[PATCH]'\n+\tsubject prefix. Use this variable to change that prefix.\n+\n+format.signature::\n+\tThe default for format-patch is to output a signature containing\n+\tthe Git version number. Use this variable to change that default.\n+\tSet this variable to the empty string (\"\") to suppress\n+\tsignature generation.\n+\n+format.signatureFile::\n+\tWorks just like format.signature except the contents of the\n+\tfile specified by this variable will be used as the signature.\n+\n+format.suffix::\n+\tThe default for format-patch is to output files with the suffix\n+\t`.patch`. Use this variable to change that suffix (make sure to\n+\tinclude the dot if you want it).\n+\n+format.pretty::\n+\tThe default pretty format for log/show/whatchanged command,\n+\tSee linkgit:git-log[1], linkgit:git-show[1],\n+\tlinkgit:git-whatchanged[1].\n+\n+format.thread::\n+\tThe default threading style for 'git format-patch'.  Can be\n+\ta boolean value, or `shallow` or `deep`.  `shallow` threading\n+\tmakes every mail a reply to the head of the series,\n+\twhere the head is chosen from the cover letter, the\n+\t`--in-reply-to`, and the first patch mail, in this order.\n+\t`deep` threading makes every mail a reply to the previous one.\n+\tA true boolean value is the same as `shallow`, and a false\n+\tvalue disables threading.\n+\n+format.signOff::\n+\tA boolean value which lets you enable the `-s/--signoff` option of\n+\tformat-patch by default. *Note:* Adding the Signed-off-by: line to a\n+\tpatch should be a conscious act and means that you certify you have\n+\tthe rights to submit this work under the same open source license.\n+\tPlease see the 'SubmittingPatches' document for further discussion.\n+\n+format.coverLetter::\n+\tA boolean that controls whether to generate a cover-letter when\n+\tformat-patch is invoked, but in addition can be set to \"auto\", to\n+\tgenerate a cover-letter only when there's more than one patch.\n+\n+format.outputDirectory::\n+\tSet a custom directory to store the resulting files instead of the\n+\tcurrent working directory.\n+\n+format.useAutoBase::\n+\tA boolean value which lets you enable the `--base=auto` option of\n+\tformat-patch by default.\n-- \n2.19.0.rc0.335.ga73d156e9c\n\n"},{"id":"356265","messageId":"20180822160605.21864-6-pclouds@gmail.com","threadId":"49191","inReplyTo":"20180822160605.21864-1-pclouds@gmail.com","subject":"[PATCH 05/11] config.txt: move gui part out to a separate file","fromName":"Nguyễn Thái Ngọc Duy","fromEmail":"pclouds@gmail.com","sentAt":"2018-08-22T16:05:59Z","receivedAt":"2018-08-22T16:06:18Z","isPatch":true,"sender":{"key":"pclouds@gmail.com","avatar":"https://avatars.githubusercontent.com/u/720?v=4"},"body":"Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>\n---\n Documentation/config.txt     | 58 +-----------------------------------\n Documentation/gui-config.txt | 57 +++++++++++++++++++++++++++++++++++\n 2 files changed, 58 insertions(+), 57 deletions(-)\n create mode 100644 Documentation/gui-config.txt\n\ndiff --git a/Documentation/config.txt b/Documentation/config.txt\nindex 9309695a9e..4b1e9e830d 100644\n--- a/Documentation/config.txt\n+++ b/Documentation/config.txt\n@@ -1740,63 +1740,7 @@ gpg.<format>.program::\n \tbe used as a legacy synonym for\t`gpg.openpgp.program`. The default\n \tvalue for `gpg.x509.program` is \"gpgsm\".\n \n-gui.commitMsgWidth::\n-\tDefines how wide the commit message window is in the\n-\tlinkgit:git-gui[1]. \"75\" is the default.\n-\n-gui.diffContext::\n-\tSpecifies how many context lines should be used in calls to diff\n-\tmade by the linkgit:git-gui[1]. The default is \"5\".\n-\n-gui.displayUntracked::\n-\tDetermines if linkgit:git-gui[1] shows untracked files\n-\tin the file list. The default is \"true\".\n-\n-gui.encoding::\n-\tSpecifies the default encoding to use for displaying of\n-\tfile contents in linkgit:git-gui[1] and linkgit:gitk[1].\n-\tIt can be overridden by setting the 'encoding' attribute\n-\tfor relevant files (see linkgit:gitattributes[5]).\n-\tIf this option is not set, the tools default to the\n-\tlocale encoding.\n-\n-gui.matchTrackingBranch::\n-\tDetermines if new branches created with linkgit:git-gui[1] should\n-\tdefault to tracking remote branches with matching names or\n-\tnot. Default: \"false\".\n-\n-gui.newBranchTemplate::\n-\tIs used as suggested name when creating new branches using the\n-\tlinkgit:git-gui[1].\n-\n-gui.pruneDuringFetch::\n-\t\"true\" if linkgit:git-gui[1] should prune remote-tracking branches when\n-\tperforming a fetch. The default value is \"false\".\n-\n-gui.trustmtime::\n-\tDetermines if linkgit:git-gui[1] should trust the file modification\n-\ttimestamp or not. By default the timestamps are not trusted.\n-\n-gui.spellingDictionary::\n-\tSpecifies the dictionary used for spell checking commit messages in\n-\tthe linkgit:git-gui[1]. When set to \"none\" spell checking is turned\n-\toff.\n-\n-gui.fastCopyBlame::\n-\tIf true, 'git gui blame' uses `-C` instead of `-C -C` for original\n-\tlocation detection. It makes blame significantly faster on huge\n-\trepositories at the expense of less thorough copy detection.\n-\n-gui.copyBlameThreshold::\n-\tSpecifies the threshold to use in 'git gui blame' original location\n-\tdetection, measured in alphanumeric characters. See the\n-\tlinkgit:git-blame[1] manual for more information on copy detection.\n-\n-gui.blamehistoryctx::\n-\tSpecifies the radius of history context in days to show in\n-\tlinkgit:gitk[1] for the selected commit, when the `Show History\n-\tContext` menu item is invoked from 'git gui blame'. If this\n-\tvariable is set to zero, the whole history is shown.\n+include::gui-config.txt[]\n \n guitool.<name>.cmd::\n \tSpecifies the shell command line to execute when the corresponding item\ndiff --git a/Documentation/gui-config.txt b/Documentation/gui-config.txt\nnew file mode 100644\nindex 0000000000..d30831a130\n--- /dev/null\n+++ b/Documentation/gui-config.txt\n@@ -0,0 +1,57 @@\n+gui.commitMsgWidth::\n+\tDefines how wide the commit message window is in the\n+\tlinkgit:git-gui[1]. \"75\" is the default.\n+\n+gui.diffContext::\n+\tSpecifies how many context lines should be used in calls to diff\n+\tmade by the linkgit:git-gui[1]. The default is \"5\".\n+\n+gui.displayUntracked::\n+\tDetermines if linkgit:git-gui[1] shows untracked files\n+\tin the file list. The default is \"true\".\n+\n+gui.encoding::\n+\tSpecifies the default encoding to use for displaying of\n+\tfile contents in linkgit:git-gui[1] and linkgit:gitk[1].\n+\tIt can be overridden by setting the 'encoding' attribute\n+\tfor relevant files (see linkgit:gitattributes[5]).\n+\tIf this option is not set, the tools default to the\n+\tlocale encoding.\n+\n+gui.matchTrackingBranch::\n+\tDetermines if new branches created with linkgit:git-gui[1] should\n+\tdefault to tracking remote branches with matching names or\n+\tnot. Default: \"false\".\n+\n+gui.newBranchTemplate::\n+\tIs used as suggested name when creating new branches using the\n+\tlinkgit:git-gui[1].\n+\n+gui.pruneDuringFetch::\n+\t\"true\" if linkgit:git-gui[1] should prune remote-tracking branches when\n+\tperforming a fetch. The default value is \"false\".\n+\n+gui.trustmtime::\n+\tDetermines if linkgit:git-gui[1] should trust the file modification\n+\ttimestamp or not. By default the timestamps are not trusted.\n+\n+gui.spellingDictionary::\n+\tSpecifies the dictionary used for spell checking commit messages in\n+\tthe linkgit:git-gui[1]. When set to \"none\" spell checking is turned\n+\toff.\n+\n+gui.fastCopyBlame::\n+\tIf true, 'git gui blame' uses `-C` instead of `-C -C` for original\n+\tlocation detection. It makes blame significantly faster on huge\n+\trepositories at the expense of less thorough copy detection.\n+\n+gui.copyBlameThreshold::\n+\tSpecifies the threshold to use in 'git gui blame' original location\n+\tdetection, measured in alphanumeric characters. See the\n+\tlinkgit:git-blame[1] manual for more information on copy detection.\n+\n+gui.blamehistoryctx::\n+\tSpecifies the radius of history context in days to show in\n+\tlinkgit:gitk[1] for the selected commit, when the `Show History\n+\tContext` menu item is invoked from 'git gui blame'. If this\n+\tvariable is set to zero, the whole history is shown.\n-- \n2.19.0.rc0.335.ga73d156e9c\n\n"},{"id":"356266","messageId":"20180822160605.21864-5-pclouds@gmail.com","threadId":"49191","inReplyTo":"20180822160605.21864-1-pclouds@gmail.com","subject":"[PATCH 04/11] config.txt: move gitcvs part out to a separate file","fromName":"Nguyễn Thái Ngọc Duy","fromEmail":"pclouds@gmail.com","sentAt":"2018-08-22T16:05:58Z","receivedAt":"2018-08-22T16:06:18Z","isPatch":true,"sender":{"key":"pclouds@gmail.com","avatar":"https://avatars.githubusercontent.com/u/720?v=4"},"body":"Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>\n---\n Documentation/config.txt        | 68 +--------------------------------\n Documentation/gitcvs-config.txt | 67 ++++++++++++++++++++++++++++++++\n 2 files changed, 68 insertions(+), 67 deletions(-)\n create mode 100644 Documentation/gitcvs-config.txt\n\ndiff --git a/Documentation/config.txt b/Documentation/config.txt\nindex 393f6843f5..9309695a9e 100644\n--- a/Documentation/config.txt\n+++ b/Documentation/config.txt\n@@ -1675,73 +1675,7 @@ gc.rerereUnresolved::\n \tYou can also use more human-readable \"1.month.ago\", etc.\n \tThe default is 15 days.  See linkgit:git-rerere[1].\n \n-gitcvs.commitMsgAnnotation::\n-\tAppend this string to each commit message. Set to empty string\n-\tto disable this feature. Defaults to \"via git-CVS emulator\".\n-\n-gitcvs.enabled::\n-\tWhether the CVS server interface is enabled for this repository.\n-\tSee linkgit:git-cvsserver[1].\n-\n-gitcvs.logFile::\n-\tPath to a log file where the CVS server interface well... logs\n-\tvarious stuff. See linkgit:git-cvsserver[1].\n-\n-gitcvs.usecrlfattr::\n-\tIf true, the server will look up the end-of-line conversion\n-\tattributes for files to determine the `-k` modes to use. If\n-\tthe attributes force Git to treat a file as text,\n-\tthe `-k` mode will be left blank so CVS clients will\n-\ttreat it as text. If they suppress text conversion, the file\n-\twill be set with '-kb' mode, which suppresses any newline munging\n-\tthe client might otherwise do. If the attributes do not allow\n-\tthe file type to be determined, then `gitcvs.allBinary` is\n-\tused. See linkgit:gitattributes[5].\n-\n-gitcvs.allBinary::\n-\tThis is used if `gitcvs.usecrlfattr` does not resolve\n-\tthe correct '-kb' mode to use. If true, all\n-\tunresolved files are sent to the client in\n-\tmode '-kb'. This causes the client to treat them\n-\tas binary files, which suppresses any newline munging it\n-\totherwise might do. Alternatively, if it is set to \"guess\",\n-\tthen the contents of the file are examined to decide if\n-\tit is binary, similar to `core.autocrlf`.\n-\n-gitcvs.dbName::\n-\tDatabase used by git-cvsserver to cache revision information\n-\tderived from the Git repository. The exact meaning depends on the\n-\tused database driver, for SQLite (which is the default driver) this\n-\tis a filename. Supports variable substitution (see\n-\tlinkgit:git-cvsserver[1] for details). May not contain semicolons (`;`).\n-\tDefault: '%Ggitcvs.%m.sqlite'\n-\n-gitcvs.dbDriver::\n-\tUsed Perl DBI driver. You can specify any available driver\n-\tfor this here, but it might not work. git-cvsserver is tested\n-\twith 'DBD::SQLite', reported to work with 'DBD::Pg', and\n-\treported *not* to work with 'DBD::mysql'. Experimental feature.\n-\tMay not contain double colons (`:`). Default: 'SQLite'.\n-\tSee linkgit:git-cvsserver[1].\n-\n-gitcvs.dbUser, gitcvs.dbPass::\n-\tDatabase user and password. Only useful if setting `gitcvs.dbDriver`,\n-\tsince SQLite has no concept of database users and/or passwords.\n-\t'gitcvs.dbUser' supports variable substitution (see\n-\tlinkgit:git-cvsserver[1] for details).\n-\n-gitcvs.dbTableNamePrefix::\n-\tDatabase table name prefix.  Prepended to the names of any\n-\tdatabase tables used, allowing a single database to be used\n-\tfor several repositories.  Supports variable substitution (see\n-\tlinkgit:git-cvsserver[1] for details).  Any non-alphabetic\n-\tcharacters will be replaced with underscores.\n-\n-All gitcvs variables except for `gitcvs.usecrlfattr` and\n-`gitcvs.allBinary` can also be specified as\n-'gitcvs.<access_method>.<varname>' (where 'access_method'\n-is one of \"ext\" and \"pserver\") to make them apply only for the given\n-access method.\n+include::gitcvs-config.txt[]\n \n gitweb.category::\n gitweb.description::\ndiff --git a/Documentation/gitcvs-config.txt b/Documentation/gitcvs-config.txt\nnew file mode 100644\nindex 0000000000..02da427fd9\n--- /dev/null\n+++ b/Documentation/gitcvs-config.txt\n@@ -0,0 +1,67 @@\n+gitcvs.commitMsgAnnotation::\n+\tAppend this string to each commit message. Set to empty string\n+\tto disable this feature. Defaults to \"via git-CVS emulator\".\n+\n+gitcvs.enabled::\n+\tWhether the CVS server interface is enabled for this repository.\n+\tSee linkgit:git-cvsserver[1].\n+\n+gitcvs.logFile::\n+\tPath to a log file where the CVS server interface well... logs\n+\tvarious stuff. See linkgit:git-cvsserver[1].\n+\n+gitcvs.usecrlfattr::\n+\tIf true, the server will look up the end-of-line conversion\n+\tattributes for files to determine the `-k` modes to use. If\n+\tthe attributes force Git to treat a file as text,\n+\tthe `-k` mode will be left blank so CVS clients will\n+\ttreat it as text. If they suppress text conversion, the file\n+\twill be set with '-kb' mode, which suppresses any newline munging\n+\tthe client might otherwise do. If the attributes do not allow\n+\tthe file type to be determined, then `gitcvs.allBinary` is\n+\tused. See linkgit:gitattributes[5].\n+\n+gitcvs.allBinary::\n+\tThis is used if `gitcvs.usecrlfattr` does not resolve\n+\tthe correct '-kb' mode to use. If true, all\n+\tunresolved files are sent to the client in\n+\tmode '-kb'. This causes the client to treat them\n+\tas binary files, which suppresses any newline munging it\n+\totherwise might do. Alternatively, if it is set to \"guess\",\n+\tthen the contents of the file are examined to decide if\n+\tit is binary, similar to `core.autocrlf`.\n+\n+gitcvs.dbName::\n+\tDatabase used by git-cvsserver to cache revision information\n+\tderived from the Git repository. The exact meaning depends on the\n+\tused database driver, for SQLite (which is the default driver) this\n+\tis a filename. Supports variable substitution (see\n+\tlinkgit:git-cvsserver[1] for details). May not contain semicolons (`;`).\n+\tDefault: '%Ggitcvs.%m.sqlite'\n+\n+gitcvs.dbDriver::\n+\tUsed Perl DBI driver. You can specify any available driver\n+\tfor this here, but it might not work. git-cvsserver is tested\n+\twith 'DBD::SQLite', reported to work with 'DBD::Pg', and\n+\treported *not* to work with 'DBD::mysql'. Experimental feature.\n+\tMay not contain double colons (`:`). Default: 'SQLite'.\n+\tSee linkgit:git-cvsserver[1].\n+\n+gitcvs.dbUser, gitcvs.dbPass::\n+\tDatabase user and password. Only useful if setting `gitcvs.dbDriver`,\n+\tsince SQLite has no concept of database users and/or passwords.\n+\t'gitcvs.dbUser' supports variable substitution (see\n+\tlinkgit:git-cvsserver[1] for details).\n+\n+gitcvs.dbTableNamePrefix::\n+\tDatabase table name prefix.  Prepended to the names of any\n+\tdatabase tables used, allowing a single database to be used\n+\tfor several repositories.  Supports variable substitution (see\n+\tlinkgit:git-cvsserver[1] for details).  Any non-alphabetic\n+\tcharacters will be replaced with underscores.\n+\n+All gitcvs variables except for `gitcvs.usecrlfattr` and\n+`gitcvs.allBinary` can also be specified as\n+'gitcvs.<access_method>.<varname>' (where 'access_method'\n+is one of \"ext\" and \"pserver\") to make them apply only for the given\n+access method.\n-- \n2.19.0.rc0.335.ga73d156e9c\n\n"},{"id":"356267","messageId":"20180822160605.21864-7-pclouds@gmail.com","threadId":"49191","inReplyTo":"20180822160605.21864-1-pclouds@gmail.com","subject":"[PATCH 06/11] config.txt: move pull part out to a separate file","fromName":"Nguyễn Thái Ngọc Duy","fromEmail":"pclouds@gmail.com","sentAt":"2018-08-22T16:06:00Z","receivedAt":"2018-08-22T16:06:20Z","isPatch":true,"sender":{"key":"pclouds@gmail.com","avatar":"https://avatars.githubusercontent.com/u/720?v=4"},"body":"Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>\n---\n Documentation/config.txt      | 37 +----------------------------------\n Documentation/pull-config.txt | 36 ++++++++++++++++++++++++++++++++++\n 2 files changed, 37 insertions(+), 36 deletions(-)\n create mode 100644 Documentation/pull-config.txt\n\ndiff --git a/Documentation/config.txt b/Documentation/config.txt\nindex 4b1e9e830d..609b407afc 100644\n--- a/Documentation/config.txt\n+++ b/Documentation/config.txt\n@@ -2549,42 +2549,7 @@ protocol.version::\n \n --\n \n-pull.ff::\n-\tBy default, Git does not create an extra merge commit when merging\n-\ta commit that is a descendant of the current commit. Instead, the\n-\ttip of the current branch is fast-forwarded. When set to `false`,\n-\tthis variable tells Git to create an extra merge commit in such\n-\ta case (equivalent to giving the `--no-ff` option from the command\n-\tline). When set to `only`, only such fast-forward merges are\n-\tallowed (equivalent to giving the `--ff-only` option from the\n-\tcommand line). This setting overrides `merge.ff` when pulling.\n-\n-pull.rebase::\n-\tWhen true, rebase branches on top of the fetched branch, instead\n-\tof merging the default branch from the default remote when \"git\n-\tpull\" is run. See \"branch.<name>.rebase\" for setting this on a\n-\tper-branch basis.\n-+\n-When `merges`, pass the `--rebase-merges` option to 'git rebase'\n-so that the local merge commits are included in the rebase (see\n-linkgit:git-rebase[1] for details).\n-+\n-When preserve, also pass `--preserve-merges` along to 'git rebase'\n-so that locally committed merge commits will not be flattened\n-by running 'git pull'.\n-+\n-When the value is `interactive`, the rebase is run in interactive mode.\n-+\n-*NOTE*: this is a possibly dangerous operation; do *not* use\n-it unless you understand the implications (see linkgit:git-rebase[1]\n-for details).\n-\n-pull.octopus::\n-\tThe default merge strategy to use when pulling multiple branches\n-\tat once.\n-\n-pull.twohead::\n-\tThe default merge strategy to use when pulling a single branch.\n+include::pull-config.txt[]\n \n push.default::\n \tDefines the action `git push` should take if no refspec is\ndiff --git a/Documentation/pull-config.txt b/Documentation/pull-config.txt\nnew file mode 100644\nindex 0000000000..bb23a9947d\n--- /dev/null\n+++ b/Documentation/pull-config.txt\n@@ -0,0 +1,36 @@\n+pull.ff::\n+\tBy default, Git does not create an extra merge commit when merging\n+\ta commit that is a descendant of the current commit. Instead, the\n+\ttip of the current branch is fast-forwarded. When set to `false`,\n+\tthis variable tells Git to create an extra merge commit in such\n+\ta case (equivalent to giving the `--no-ff` option from the command\n+\tline). When set to `only`, only such fast-forward merges are\n+\tallowed (equivalent to giving the `--ff-only` option from the\n+\tcommand line). This setting overrides `merge.ff` when pulling.\n+\n+pull.rebase::\n+\tWhen true, rebase branches on top of the fetched branch, instead\n+\tof merging the default branch from the default remote when \"git\n+\tpull\" is run. See \"branch.<name>.rebase\" for setting this on a\n+\tper-branch basis.\n++\n+When `merges`, pass the `--rebase-merges` option to 'git rebase'\n+so that the local merge commits are included in the rebase (see\n+linkgit:git-rebase[1] for details).\n++\n+When preserve, also pass `--preserve-merges` along to 'git rebase'\n+so that locally committed merge commits will not be flattened\n+by running 'git pull'.\n++\n+When the value is `interactive`, the rebase is run in interactive mode.\n++\n+*NOTE*: this is a possibly dangerous operation; do *not* use\n+it unless you understand the implications (see linkgit:git-rebase[1]\n+for details).\n+\n+pull.octopus::\n+\tThe default merge strategy to use when pulling multiple branches\n+\tat once.\n+\n+pull.twohead::\n+\tThe default merge strategy to use when pulling a single branch.\n-- \n2.19.0.rc0.335.ga73d156e9c\n\n"},{"id":"356268","messageId":"20180822160605.21864-8-pclouds@gmail.com","threadId":"49191","inReplyTo":"20180822160605.21864-1-pclouds@gmail.com","subject":"[PATCH 07/11] config.txt: move push part out to a separate file","fromName":"Nguyễn Thái Ngọc Duy","fromEmail":"pclouds@gmail.com","sentAt":"2018-08-22T16:06:01Z","receivedAt":"2018-08-22T16:06:22Z","isPatch":true,"sender":{"key":"pclouds@gmail.com","avatar":"https://avatars.githubusercontent.com/u/720?v=4"},"body":"Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>\n---\n Documentation/config.txt      | 114 +---------------------------------\n Documentation/push-config.txt | 113 +++++++++++++++++++++++++++++++++\n 2 files changed, 114 insertions(+), 113 deletions(-)\n create mode 100644 Documentation/push-config.txt\n\ndiff --git a/Documentation/config.txt b/Documentation/config.txt\nindex 609b407afc..2d3baf43fb 100644\n--- a/Documentation/config.txt\n+++ b/Documentation/config.txt\n@@ -2551,119 +2551,7 @@ protocol.version::\n \n include::pull-config.txt[]\n \n-push.default::\n-\tDefines the action `git push` should take if no refspec is\n-\texplicitly given.  Different values are well-suited for\n-\tspecific workflows; for instance, in a purely central workflow\n-\t(i.e. the fetch source is equal to the push destination),\n-\t`upstream` is probably what you want.  Possible values are:\n-+\n---\n-\n-* `nothing` - do not push anything (error out) unless a refspec is\n-  explicitly given. This is primarily meant for people who want to\n-  avoid mistakes by always being explicit.\n-\n-* `current` - push the current branch to update a branch with the same\n-  name on the receiving end.  Works in both central and non-central\n-  workflows.\n-\n-* `upstream` - push the current branch back to the branch whose\n-  changes are usually integrated into the current branch (which is\n-  called `@{upstream}`).  This mode only makes sense if you are\n-  pushing to the same repository you would normally pull from\n-  (i.e. central workflow).\n-\n-* `tracking` - This is a deprecated synonym for `upstream`.\n-\n-* `simple` - in centralized workflow, work like `upstream` with an\n-  added safety to refuse to push if the upstream branch's name is\n-  different from the local one.\n-+\n-When pushing to a remote that is different from the remote you normally\n-pull from, work as `current`.  This is the safest option and is suited\n-for beginners.\n-+\n-This mode has become the default in Git 2.0.\n-\n-* `matching` - push all branches having the same name on both ends.\n-  This makes the repository you are pushing to remember the set of\n-  branches that will be pushed out (e.g. if you always push 'maint'\n-  and 'master' there and no other branches, the repository you push\n-  to will have these two branches, and your local 'maint' and\n-  'master' will be pushed there).\n-+\n-To use this mode effectively, you have to make sure _all_ the\n-branches you would push out are ready to be pushed out before\n-running 'git push', as the whole point of this mode is to allow you\n-to push all of the branches in one go.  If you usually finish work\n-on only one branch and push out the result, while other branches are\n-unfinished, this mode is not for you.  Also this mode is not\n-suitable for pushing into a shared central repository, as other\n-people may add new branches there, or update the tip of existing\n-branches outside your control.\n-+\n-This used to be the default, but not since Git 2.0 (`simple` is the\n-new default).\n-\n---\n-\n-push.followTags::\n-\tIf set to true enable `--follow-tags` option by default.  You\n-\tmay override this configuration at time of push by specifying\n-\t`--no-follow-tags`.\n-\n-push.gpgSign::\n-\tMay be set to a boolean value, or the string 'if-asked'. A true\n-\tvalue causes all pushes to be GPG signed, as if `--signed` is\n-\tpassed to linkgit:git-push[1]. The string 'if-asked' causes\n-\tpushes to be signed if the server supports it, as if\n-\t`--signed=if-asked` is passed to 'git push'. A false value may\n-\toverride a value from a lower-priority config file. An explicit\n-\tcommand-line flag always overrides this config option.\n-\n-push.pushOption::\n-\tWhen no `--push-option=<option>` argument is given from the\n-\tcommand line, `git push` behaves as if each <value> of\n-\tthis variable is given as `--push-option=<value>`.\n-+\n-This is a multi-valued variable, and an empty value can be used in a\n-higher priority configuration file (e.g. `.git/config` in a\n-repository) to clear the values inherited from a lower priority\n-configuration files (e.g. `$HOME/.gitconfig`).\n-+\n---\n-\n-Example:\n-\n-/etc/gitconfig\n-  push.pushoption = a\n-  push.pushoption = b\n-\n-~/.gitconfig\n-  push.pushoption = c\n-\n-repo/.git/config\n-  push.pushoption =\n-  push.pushoption = b\n-\n-This will result in only b (a and c are cleared).\n-\n---\n-\n-push.recurseSubmodules::\n-\tMake sure all submodule commits used by the revisions to be pushed\n-\tare available on a remote-tracking branch. If the value is 'check'\n-\tthen Git will verify that all submodule commits that changed in the\n-\trevisions to be pushed are available on at least one remote of the\n-\tsubmodule. If any commits are missing, the push will be aborted and\n-\texit with non-zero status. If the value is 'on-demand' then all\n-\tsubmodules that changed in the revisions to be pushed will be\n-\tpushed. If on-demand was not able to push all necessary revisions\n-\tit will also be aborted and exit with non-zero status. If the value\n-\tis 'no' then default behavior of ignoring submodules when pushing\n-\tis retained. You may override this configuration at time of push by\n-\tspecifying '--recurse-submodules=check|on-demand|no'.\n+include::push-config.txt[]\n \n include::rebase-config.txt[]\n \ndiff --git a/Documentation/push-config.txt b/Documentation/push-config.txt\nnew file mode 100644\nindex 0000000000..0a0e000569\n--- /dev/null\n+++ b/Documentation/push-config.txt\n@@ -0,0 +1,113 @@\n+push.default::\n+\tDefines the action `git push` should take if no refspec is\n+\texplicitly given.  Different values are well-suited for\n+\tspecific workflows; for instance, in a purely central workflow\n+\t(i.e. the fetch source is equal to the push destination),\n+\t`upstream` is probably what you want.  Possible values are:\n++\n+--\n+\n+* `nothing` - do not push anything (error out) unless a refspec is\n+  explicitly given. This is primarily meant for people who want to\n+  avoid mistakes by always being explicit.\n+\n+* `current` - push the current branch to update a branch with the same\n+  name on the receiving end.  Works in both central and non-central\n+  workflows.\n+\n+* `upstream` - push the current branch back to the branch whose\n+  changes are usually integrated into the current branch (which is\n+  called `@{upstream}`).  This mode only makes sense if you are\n+  pushing to the same repository you would normally pull from\n+  (i.e. central workflow).\n+\n+* `tracking` - This is a deprecated synonym for `upstream`.\n+\n+* `simple` - in centralized workflow, work like `upstream` with an\n+  added safety to refuse to push if the upstream branch's name is\n+  different from the local one.\n++\n+When pushing to a remote that is different from the remote you normally\n+pull from, work as `current`.  This is the safest option and is suited\n+for beginners.\n++\n+This mode has become the default in Git 2.0.\n+\n+* `matching` - push all branches having the same name on both ends.\n+  This makes the repository you are pushing to remember the set of\n+  branches that will be pushed out (e.g. if you always push 'maint'\n+  and 'master' there and no other branches, the repository you push\n+  to will have these two branches, and your local 'maint' and\n+  'master' will be pushed there).\n++\n+To use this mode effectively, you have to make sure _all_ the\n+branches you would push out are ready to be pushed out before\n+running 'git push', as the whole point of this mode is to allow you\n+to push all of the branches in one go.  If you usually finish work\n+on only one branch and push out the result, while other branches are\n+unfinished, this mode is not for you.  Also this mode is not\n+suitable for pushing into a shared central repository, as other\n+people may add new branches there, or update the tip of existing\n+branches outside your control.\n++\n+This used to be the default, but not since Git 2.0 (`simple` is the\n+new default).\n+\n+--\n+\n+push.followTags::\n+\tIf set to true enable `--follow-tags` option by default.  You\n+\tmay override this configuration at time of push by specifying\n+\t`--no-follow-tags`.\n+\n+push.gpgSign::\n+\tMay be set to a boolean value, or the string 'if-asked'. A true\n+\tvalue causes all pushes to be GPG signed, as if `--signed` is\n+\tpassed to linkgit:git-push[1]. The string 'if-asked' causes\n+\tpushes to be signed if the server supports it, as if\n+\t`--signed=if-asked` is passed to 'git push'. A false value may\n+\toverride a value from a lower-priority config file. An explicit\n+\tcommand-line flag always overrides this config option.\n+\n+push.pushOption::\n+\tWhen no `--push-option=<option>` argument is given from the\n+\tcommand line, `git push` behaves as if each <value> of\n+\tthis variable is given as `--push-option=<value>`.\n++\n+This is a multi-valued variable, and an empty value can be used in a\n+higher priority configuration file (e.g. `.git/config` in a\n+repository) to clear the values inherited from a lower priority\n+configuration files (e.g. `$HOME/.gitconfig`).\n++\n+--\n+\n+Example:\n+\n+/etc/gitconfig\n+  push.pushoption = a\n+  push.pushoption = b\n+\n+~/.gitconfig\n+  push.pushoption = c\n+\n+repo/.git/config\n+  push.pushoption =\n+  push.pushoption = b\n+\n+This will result in only b (a and c are cleared).\n+\n+--\n+\n+push.recurseSubmodules::\n+\tMake sure all submodule commits used by the revisions to be pushed\n+\tare available on a remote-tracking branch. If the value is 'check'\n+\tthen Git will verify that all submodule commits that changed in the\n+\trevisions to be pushed are available on at least one remote of the\n+\tsubmodule. If any commits are missing, the push will be aborted and\n+\texit with non-zero status. If the value is 'on-demand' then all\n+\tsubmodules that changed in the revisions to be pushed will be\n+\tpushed. If on-demand was not able to push all necessary revisions\n+\tit will also be aborted and exit with non-zero status. If the value\n+\tis 'no' then default behavior of ignoring submodules when pushing\n+\tis retained. You may override this configuration at time of push by\n+\tspecifying '--recurse-submodules=check|on-demand|no'.\n-- \n2.19.0.rc0.335.ga73d156e9c\n\n"},{"id":"356269","messageId":"20180822160605.21864-10-pclouds@gmail.com","threadId":"49191","inReplyTo":"20180822160605.21864-1-pclouds@gmail.com","subject":"[PATCH 09/11] config.txt: move sendemail part out to a separate file","fromName":"Nguyễn Thái Ngọc Duy","fromEmail":"pclouds@gmail.com","sentAt":"2018-08-22T16:06:03Z","receivedAt":"2018-08-22T16:06:23Z","isPatch":true,"sender":{"key":"pclouds@gmail.com","avatar":"https://avatars.githubusercontent.com/u/720?v=4"},"body":"Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>\n---\n Documentation/config.txt           | 64 +-----------------------------\n Documentation/sendemail-config.txt | 63 +++++++++++++++++++++++++++++\n 2 files changed, 64 insertions(+), 63 deletions(-)\n create mode 100644 Documentation/sendemail-config.txt\n\ndiff --git a/Documentation/config.txt b/Documentation/config.txt\nindex ed809dd245..414e28244e 100644\n--- a/Documentation/config.txt\n+++ b/Documentation/config.txt\n@@ -2677,69 +2677,7 @@ rerere.enabled::\n \t`$GIT_DIR`, e.g. if \"rerere\" was previously used in the\n \trepository.\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 (deprecated)::\n-\tDeprecated alias for 'sendemail.smtpEncryption = ssl'.\n-\n-sendemail.smtpsslcertpath::\n-\tPath to ca-certificates (either a directory or a single file).\n-\tSet it to an empty string to disable certificate verification.\n-\n-sendemail.<identity>.*::\n-\tIdentity-specific versions of the 'sendemail.*' parameters\n-\tfound below, taking precedence over those when this\n-\tidentity is selected, through either the command-line or\n-\t`sendemail.identity`.\n-\n-sendemail.aliasesFile::\n-sendemail.aliasFileType::\n-sendemail.annotate::\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.tocmd::\n-sendemail.smtpDomain::\n-sendemail.smtpServer::\n-sendemail.smtpServerPort::\n-sendemail.smtpServerOption::\n-sendemail.smtpUser::\n-sendemail.thread::\n-sendemail.transferEncoding::\n-sendemail.validate::\n-sendemail.xmailer::\n-\tSee linkgit:git-send-email[1] for description.\n-\n-sendemail.signedoffcc (deprecated)::\n-\tDeprecated alias for `sendemail.signedoffbycc`.\n-\n-sendemail.smtpBatchSize::\n-\tNumber of messages to be sent per connection, after that a relogin\n-\twill happen.  If the value is 0 or undefined, send all messages in\n-\tone connection.\n-\tSee also the `--batch-size` option of linkgit:git-send-email[1].\n-\n-sendemail.smtpReloginDelay::\n-\tSeconds wait before reconnecting to smtp server.\n-\tSee also the `--relogin-delay` option of linkgit:git-send-email[1].\n+include::sendemail-config.txt[]\n \n showBranch.default::\n \tThe default set of branches for linkgit:git-show-branch[1].\ndiff --git a/Documentation/sendemail-config.txt b/Documentation/sendemail-config.txt\nnew file mode 100644\nindex 0000000000..0006faf800\n--- /dev/null\n+++ b/Documentation/sendemail-config.txt\n@@ -0,0 +1,63 @@\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 (deprecated)::\n+\tDeprecated alias for 'sendemail.smtpEncryption = ssl'.\n+\n+sendemail.smtpsslcertpath::\n+\tPath to ca-certificates (either a directory or a single file).\n+\tSet it to an empty string to disable certificate verification.\n+\n+sendemail.<identity>.*::\n+\tIdentity-specific versions of the 'sendemail.*' parameters\n+\tfound below, taking precedence over those when this\n+\tidentity is selected, through either the command-line or\n+\t`sendemail.identity`.\n+\n+sendemail.aliasesFile::\n+sendemail.aliasFileType::\n+sendemail.annotate::\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.tocmd::\n+sendemail.smtpDomain::\n+sendemail.smtpServer::\n+sendemail.smtpServerPort::\n+sendemail.smtpServerOption::\n+sendemail.smtpUser::\n+sendemail.thread::\n+sendemail.transferEncoding::\n+sendemail.validate::\n+sendemail.xmailer::\n+\tSee linkgit:git-send-email[1] for description.\n+\n+sendemail.signedoffcc (deprecated)::\n+\tDeprecated alias for `sendemail.signedoffbycc`.\n+\n+sendemail.smtpBatchSize::\n+\tNumber of messages to be sent per connection, after that a relogin\n+\twill happen.  If the value is 0 or undefined, send all messages in\n+\tone connection.\n+\tSee also the `--batch-size` option of linkgit:git-send-email[1].\n+\n+sendemail.smtpReloginDelay::\n+\tSeconds wait before reconnecting to smtp server.\n+\tSee also the `--relogin-delay` option of linkgit:git-send-email[1].\n-- \n2.19.0.rc0.335.ga73d156e9c\n\n"},{"id":"356270","messageId":"20180822160605.21864-9-pclouds@gmail.com","threadId":"49191","inReplyTo":"20180822160605.21864-1-pclouds@gmail.com","subject":"[PATCH 08/11] config.txt: move receive part out to a separate file","fromName":"Nguyễn Thái Ngọc Duy","fromEmail":"pclouds@gmail.com","sentAt":"2018-08-22T16:06:02Z","receivedAt":"2018-08-22T16:06:24Z","isPatch":true,"sender":{"key":"pclouds@gmail.com","avatar":"https://avatars.githubusercontent.com/u/720?v=4"},"body":"Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>\n---\n Documentation/config.txt         | 124 +------------------------------\n Documentation/receive-config.txt | 123 ++++++++++++++++++++++++++++++\n 2 files changed, 124 insertions(+), 123 deletions(-)\n create mode 100644 Documentation/receive-config.txt\n\ndiff --git a/Documentation/config.txt b/Documentation/config.txt\nindex 2d3baf43fb..ed809dd245 100644\n--- a/Documentation/config.txt\n+++ b/Documentation/config.txt\n@@ -2555,129 +2555,7 @@ include::push-config.txt[]\n \n include::rebase-config.txt[]\n \n-receive.advertiseAtomic::\n-\tBy default, git-receive-pack will advertise the atomic push\n-\tcapability to its clients. If you don't want to advertise this\n-\tcapability, set this variable to false.\n-\n-receive.advertisePushOptions::\n-\tWhen set to true, git-receive-pack will advertise the push options\n-\tcapability to its clients. False by default.\n-\n-receive.autogc::\n-\tBy default, git-receive-pack will run \"git-gc --auto\" after\n-\treceiving data from git-push and updating refs.  You can stop\n-\tit by setting this variable to false.\n-\n-receive.certNonceSeed::\n-\tBy setting this variable to a string, `git receive-pack`\n-\twill accept a `git push --signed` and verifies it by using\n-\ta \"nonce\" protected by HMAC using this string as a secret\n-\tkey.\n-\n-receive.certNonceSlop::\n-\tWhen a `git push --signed` sent a push certificate with a\n-\t\"nonce\" that was issued by a receive-pack serving the same\n-\trepository within this many seconds, export the \"nonce\"\n-\tfound in the certificate to `GIT_PUSH_CERT_NONCE` to the\n-\thooks (instead of what the receive-pack asked the sending\n-\tside to include).  This may allow writing checks in\n-\t`pre-receive` and `post-receive` a bit easier.  Instead of\n-\tchecking `GIT_PUSH_CERT_NONCE_SLOP` environment variable\n-\tthat records by how many seconds the nonce is stale to\n-\tdecide if they want to accept the certificate, they only\n-\tcan check `GIT_PUSH_CERT_NONCE_STATUS` is `OK`.\n-\n-receive.fsckObjects::\n-\tIf it is set to true, git-receive-pack will check all received\n-\tobjects. See `transfer.fsckObjects` for what's checked.\n-\tDefaults to false. If not set, the value of\n-\t`transfer.fsckObjects` is used instead.\n-\n-receive.fsck.<msg-id>::\n-\tActs like `fsck.<msg-id>`, but is used by\n-\tlinkgit:git-receive-pack[1] instead of\n-\tlinkgit:git-fsck[1]. See the `fsck.<msg-id>` documentation for\n-\tdetails.\n-\n-receive.fsck.skipList::\n-\tActs like `fsck.skipList`, but is used by\n-\tlinkgit:git-receive-pack[1] instead of\n-\tlinkgit:git-fsck[1]. See the `fsck.skipList` documentation for\n-\tdetails.\n-\n-receive.keepAlive::\n-\tAfter receiving the pack from the client, `receive-pack` may\n-\tproduce no output (if `--quiet` was specified) while processing\n-\tthe pack, causing some networks to drop the TCP connection.\n-\tWith this option set, if `receive-pack` does not transmit\n-\tany data in this phase for `receive.keepAlive` seconds, it will\n-\tsend a short keepalive packet.  The default is 5 seconds; set\n-\tto 0 to disable keepalives entirely.\n-\n-receive.unpackLimit::\n-\tIf the number of objects received in a push is below this\n-\tlimit then the objects will be unpacked into loose object\n-\tfiles. However if the number of received objects equals or\n-\texceeds this limit then the received pack will be stored as\n-\ta pack, after adding any missing delta bases.  Storing the\n-\tpack from a push can make the push operation complete faster,\n-\tespecially on slow filesystems.  If not set, the value of\n-\t`transfer.unpackLimit` is used instead.\n-\n-receive.maxInputSize::\n-\tIf the size of the incoming pack stream is larger than this\n-\tlimit, then git-receive-pack will error out, instead of\n-\taccepting the pack file. If not set or set to 0, then the size\n-\tis unlimited.\n-\n-receive.denyDeletes::\n-\tIf set to true, git-receive-pack will deny a ref update that deletes\n-\tthe ref. Use this to prevent such a ref deletion via a push.\n-\n-receive.denyDeleteCurrent::\n-\tIf set to true, git-receive-pack will deny a ref update that\n-\tdeletes the currently checked out branch of a non-bare repository.\n-\n-receive.denyCurrentBranch::\n-\tIf set to true or \"refuse\", git-receive-pack will deny a ref update\n-\tto the currently checked out branch of a non-bare repository.\n-\tSuch a push is potentially dangerous because it brings the HEAD\n-\tout of sync with the index and working tree. If set to \"warn\",\n-\tprint a warning of such a push to stderr, but allow the push to\n-\tproceed. If set to false or \"ignore\", allow such pushes with no\n-\tmessage. Defaults to \"refuse\".\n-+\n-Another option is \"updateInstead\" which will update the working\n-tree if pushing into the current branch.  This option is\n-intended for synchronizing working directories when one side is not easily\n-accessible via interactive ssh (e.g. a live web site, hence the requirement\n-that the working directory be clean). This mode also comes in handy when\n-developing inside a VM to test and fix code on different Operating Systems.\n-+\n-By default, \"updateInstead\" will refuse the push if the working tree or\n-the index have any difference from the HEAD, but the `push-to-checkout`\n-hook can be used to customize this.  See linkgit:githooks[5].\n-\n-receive.denyNonFastForwards::\n-\tIf set to true, git-receive-pack will deny a ref update which is\n-\tnot a fast-forward. Use this to prevent such an update via a push,\n-\teven if that push is forced. This configuration variable is\n-\tset when initializing a shared repository.\n-\n-receive.hideRefs::\n-\tThis variable is the same as `transfer.hideRefs`, but applies\n-\tonly to `receive-pack` (and so affects pushes, but not fetches).\n-\tAn attempt to update or delete a hidden ref by `git push` is\n-\trejected.\n-\n-receive.updateServerInfo::\n-\tIf set to true, git-receive-pack will run git-update-server-info\n-\tafter receiving data from git-push and updating refs.\n-\n-receive.shallowUpdate::\n-\tIf set to true, .git/shallow can be updated when new refs\n-\trequire new shallow roots. Otherwise those refs are rejected.\n+include::receive-config.txt[]\n \n remote.pushDefault::\n \tThe remote to push to by default.  Overrides\ndiff --git a/Documentation/receive-config.txt b/Documentation/receive-config.txt\nnew file mode 100644\nindex 0000000000..65f78aac37\n--- /dev/null\n+++ b/Documentation/receive-config.txt\n@@ -0,0 +1,123 @@\n+receive.advertiseAtomic::\n+\tBy default, git-receive-pack will advertise the atomic push\n+\tcapability to its clients. If you don't want to advertise this\n+\tcapability, set this variable to false.\n+\n+receive.advertisePushOptions::\n+\tWhen set to true, git-receive-pack will advertise the push options\n+\tcapability to its clients. False by default.\n+\n+receive.autogc::\n+\tBy default, git-receive-pack will run \"git-gc --auto\" after\n+\treceiving data from git-push and updating refs.  You can stop\n+\tit by setting this variable to false.\n+\n+receive.certNonceSeed::\n+\tBy setting this variable to a string, `git receive-pack`\n+\twill accept a `git push --signed` and verifies it by using\n+\ta \"nonce\" protected by HMAC using this string as a secret\n+\tkey.\n+\n+receive.certNonceSlop::\n+\tWhen a `git push --signed` sent a push certificate with a\n+\t\"nonce\" that was issued by a receive-pack serving the same\n+\trepository within this many seconds, export the \"nonce\"\n+\tfound in the certificate to `GIT_PUSH_CERT_NONCE` to the\n+\thooks (instead of what the receive-pack asked the sending\n+\tside to include).  This may allow writing checks in\n+\t`pre-receive` and `post-receive` a bit easier.  Instead of\n+\tchecking `GIT_PUSH_CERT_NONCE_SLOP` environment variable\n+\tthat records by how many seconds the nonce is stale to\n+\tdecide if they want to accept the certificate, they only\n+\tcan check `GIT_PUSH_CERT_NONCE_STATUS` is `OK`.\n+\n+receive.fsckObjects::\n+\tIf it is set to true, git-receive-pack will check all received\n+\tobjects. See `transfer.fsckObjects` for what's checked.\n+\tDefaults to false. If not set, the value of\n+\t`transfer.fsckObjects` is used instead.\n+\n+receive.fsck.<msg-id>::\n+\tActs like `fsck.<msg-id>`, but is used by\n+\tlinkgit:git-receive-pack[1] instead of\n+\tlinkgit:git-fsck[1]. See the `fsck.<msg-id>` documentation for\n+\tdetails.\n+\n+receive.fsck.skipList::\n+\tActs like `fsck.skipList`, but is used by\n+\tlinkgit:git-receive-pack[1] instead of\n+\tlinkgit:git-fsck[1]. See the `fsck.skipList` documentation for\n+\tdetails.\n+\n+receive.keepAlive::\n+\tAfter receiving the pack from the client, `receive-pack` may\n+\tproduce no output (if `--quiet` was specified) while processing\n+\tthe pack, causing some networks to drop the TCP connection.\n+\tWith this option set, if `receive-pack` does not transmit\n+\tany data in this phase for `receive.keepAlive` seconds, it will\n+\tsend a short keepalive packet.  The default is 5 seconds; set\n+\tto 0 to disable keepalives entirely.\n+\n+receive.unpackLimit::\n+\tIf the number of objects received in a push is below this\n+\tlimit then the objects will be unpacked into loose object\n+\tfiles. However if the number of received objects equals or\n+\texceeds this limit then the received pack will be stored as\n+\ta pack, after adding any missing delta bases.  Storing the\n+\tpack from a push can make the push operation complete faster,\n+\tespecially on slow filesystems.  If not set, the value of\n+\t`transfer.unpackLimit` is used instead.\n+\n+receive.maxInputSize::\n+\tIf the size of the incoming pack stream is larger than this\n+\tlimit, then git-receive-pack will error out, instead of\n+\taccepting the pack file. If not set or set to 0, then the size\n+\tis unlimited.\n+\n+receive.denyDeletes::\n+\tIf set to true, git-receive-pack will deny a ref update that deletes\n+\tthe ref. Use this to prevent such a ref deletion via a push.\n+\n+receive.denyDeleteCurrent::\n+\tIf set to true, git-receive-pack will deny a ref update that\n+\tdeletes the currently checked out branch of a non-bare repository.\n+\n+receive.denyCurrentBranch::\n+\tIf set to true or \"refuse\", git-receive-pack will deny a ref update\n+\tto the currently checked out branch of a non-bare repository.\n+\tSuch a push is potentially dangerous because it brings the HEAD\n+\tout of sync with the index and working tree. If set to \"warn\",\n+\tprint a warning of such a push to stderr, but allow the push to\n+\tproceed. If set to false or \"ignore\", allow such pushes with no\n+\tmessage. Defaults to \"refuse\".\n++\n+Another option is \"updateInstead\" which will update the working\n+tree if pushing into the current branch.  This option is\n+intended for synchronizing working directories when one side is not easily\n+accessible via interactive ssh (e.g. a live web site, hence the requirement\n+that the working directory be clean). This mode also comes in handy when\n+developing inside a VM to test and fix code on different Operating Systems.\n++\n+By default, \"updateInstead\" will refuse the push if the working tree or\n+the index have any difference from the HEAD, but the `push-to-checkout`\n+hook can be used to customize this.  See linkgit:githooks[5].\n+\n+receive.denyNonFastForwards::\n+\tIf set to true, git-receive-pack will deny a ref update which is\n+\tnot a fast-forward. Use this to prevent such an update via a push,\n+\teven if that push is forced. This configuration variable is\n+\tset when initializing a shared repository.\n+\n+receive.hideRefs::\n+\tThis variable is the same as `transfer.hideRefs`, but applies\n+\tonly to `receive-pack` (and so affects pushes, but not fetches).\n+\tAn attempt to update or delete a hidden ref by `git push` is\n+\trejected.\n+\n+receive.updateServerInfo::\n+\tIf set to true, git-receive-pack will run git-update-server-info\n+\tafter receiving data from git-push and updating refs.\n+\n+receive.shallowUpdate::\n+\tIf set to true, .git/shallow can be updated when new refs\n+\trequire new shallow roots. Otherwise those refs are rejected.\n-- \n2.19.0.rc0.335.ga73d156e9c\n\n"},{"id":"356271","messageId":"20180822160605.21864-11-pclouds@gmail.com","threadId":"49191","inReplyTo":"20180822160605.21864-1-pclouds@gmail.com","subject":"[PATCH 10/11] config.txt: move sequence.editor out of \"core\" part","fromName":"Nguyễn Thái Ngọc Duy","fromEmail":"pclouds@gmail.com","sentAt":"2018-08-22T16:06:04Z","receivedAt":"2018-08-22T16:06:25Z","isPatch":true,"sender":{"key":"pclouds@gmail.com","avatar":"https://avatars.githubusercontent.com/u/720?v=4"},"body":"Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>\n---\n Documentation/config.txt | 12 ++++++------\n 1 file changed, 6 insertions(+), 6 deletions(-)\n\ndiff --git a/Documentation/config.txt b/Documentation/config.txt\nindex 414e28244e..a0eaf40564 100644\n--- a/Documentation/config.txt\n+++ b/Documentation/config.txt\n@@ -822,12 +822,6 @@ core.packedRefsTimeout::\n \tall; -1 means to try indefinitely. Default is 1000 (i.e.,\n \tretry for 1 second).\n \n-sequence.editor::\n-\tText editor used by `git rebase -i` for editing the rebase instruction file.\n-\tThe value is meant to be interpreted by the shell when it is used.\n-\tIt can be overridden by the `GIT_SEQUENCE_EDITOR` environment variable.\n-\tWhen not configured the default commit message editor is used instead.\n-\n core.pager::\n \tText viewer for use by Git commands (e.g., 'less').  The value\n \tis meant to be interpreted by the shell.  The order of preference\n@@ -2679,6 +2673,12 @@ rerere.enabled::\n \n include::sendemail-config.txt[]\n \n+sequence.editor::\n+\tText editor used by `git rebase -i` for editing the rebase instruction file.\n+\tThe value is meant to be interpreted by the shell when it is used.\n+\tIt can be overridden by the `GIT_SEQUENCE_EDITOR` environment variable.\n+\tWhen not configured the default commit message editor is used instead.\n+\n showBranch.default::\n \tThe default set of branches for linkgit:git-show-branch[1].\n \tSee linkgit:git-show-branch[1].\n-- \n2.19.0.rc0.335.ga73d156e9c\n\n"},{"id":"356272","messageId":"20180822160605.21864-12-pclouds@gmail.com","threadId":"49191","inReplyTo":"20180822160605.21864-1-pclouds@gmail.com","subject":"[PATCH 11/11] config.txt: move submodule part out to a separate file","fromName":"Nguyễn Thái Ngọc Duy","fromEmail":"pclouds@gmail.com","sentAt":"2018-08-22T16:06:05Z","receivedAt":"2018-08-22T16:06:26Z","isPatch":true,"sender":{"key":"pclouds@gmail.com","avatar":"https://avatars.githubusercontent.com/u/720?v=4"},"body":"Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>\n---\n Documentation/config.txt           | 83 +-----------------------------\n Documentation/submodule-config.txt | 82 +++++++++++++++++++++++++++++\n 2 files changed, 83 insertions(+), 82 deletions(-)\n create mode 100644 Documentation/submodule-config.txt\n\ndiff --git a/Documentation/config.txt b/Documentation/config.txt\nindex a0eaf40564..b7b557d0e7 100644\n--- a/Documentation/config.txt\n+++ b/Documentation/config.txt\n@@ -2791,88 +2791,7 @@ stash.showStat::\n \toption will show diffstat of the stash entry.  Defaults to true.\n \tSee description of 'show' command in linkgit:git-stash[1].\n \n-submodule.<name>.url::\n-\tThe URL for a submodule. This variable is copied from the .gitmodules\n-\tfile to the git config via 'git submodule init'. The user can change\n-\tthe configured URL before obtaining the submodule via 'git submodule\n-\tupdate'. If neither submodule.<name>.active or submodule.active are\n-\tset, the presence of this variable is used as a fallback to indicate\n-\twhether the submodule is of interest to git commands.\n-\tSee linkgit:git-submodule[1] and linkgit:gitmodules[5] for details.\n-\n-submodule.<name>.update::\n-\tThe method by which a submodule is updated by 'git submodule update',\n-\twhich is the only affected command, others such as\n-\t'git checkout --recurse-submodules' are unaffected. It exists for\n-\thistorical reasons, when 'git submodule' was the only command to\n-\tinteract with submodules; settings like `submodule.active`\n-\tand `pull.rebase` are more specific. It is populated by\n-\t`git submodule init` from the linkgit:gitmodules[5] file.\n-\tSee description of 'update' command in linkgit:git-submodule[1].\n-\n-submodule.<name>.branch::\n-\tThe remote branch name for a submodule, used by `git submodule\n-\tupdate --remote`.  Set this option to override the value found in\n-\tthe `.gitmodules` file.  See linkgit:git-submodule[1] and\n-\tlinkgit:gitmodules[5] for details.\n-\n-submodule.<name>.fetchRecurseSubmodules::\n-\tThis option can be used to control recursive fetching of this\n-\tsubmodule. It can be overridden by using the --[no-]recurse-submodules\n-\tcommand-line option to \"git fetch\" and \"git pull\".\n-\tThis setting will override that from in the linkgit:gitmodules[5]\n-\tfile.\n-\n-submodule.<name>.ignore::\n-\tDefines under what circumstances \"git status\" and the diff family show\n-\ta submodule as modified. When set to \"all\", it will never be considered\n-\tmodified (but it will nonetheless show up in the output of status and\n-\tcommit when it has been staged), \"dirty\" will ignore all changes\n-\tto the submodules work tree and\n-\ttakes only differences between the HEAD of the submodule and the commit\n-\trecorded in the superproject into account. \"untracked\" will additionally\n-\tlet submodules with modified tracked files in their work tree show up.\n-\tUsing \"none\" (the default when this option is not set) also shows\n-\tsubmodules that have untracked files in their work tree as changed.\n-\tThis setting overrides any setting made in .gitmodules for this submodule,\n-\tboth settings can be overridden on the command line by using the\n-\t\"--ignore-submodules\" option. The 'git submodule' commands are not\n-\taffected by this setting.\n-\n-submodule.<name>.active::\n-\tBoolean value indicating if the submodule is of interest to git\n-\tcommands.  This config option takes precedence over the\n-\tsubmodule.active config option. See linkgit:gitsubmodules[7] for\n-\tdetails.\n-\n-submodule.active::\n-\tA repeated field which contains a pathspec used to match against a\n-\tsubmodule's path to determine if the submodule is of interest to git\n-\tcommands. See linkgit:gitsubmodules[7] for details.\n-\n-submodule.recurse::\n-\tSpecifies if commands recurse into submodules by default. This\n-\tapplies to all commands that have a `--recurse-submodules` option,\n-\texcept `clone`.\n-\tDefaults to false.\n-\n-submodule.fetchJobs::\n-\tSpecifies how many submodules are fetched/cloned at the same time.\n-\tA positive integer allows up to that number of submodules fetched\n-\tin parallel. A value of 0 will give some reasonable default.\n-\tIf unset, it defaults to 1.\n-\n-submodule.alternateLocation::\n-\tSpecifies how the submodules obtain alternates when submodules are\n-\tcloned. Possible values are `no`, `superproject`.\n-\tBy default `no` is assumed, which doesn't add references. When the\n-\tvalue is set to `superproject` the submodule to be cloned computes\n-\tits alternates location relative to the superprojects alternate.\n-\n-submodule.alternateErrorStrategy::\n-\tSpecifies how to treat errors with the alternates for a submodule\n-\tas computed via `submodule.alternateLocation`. Possible values are\n-\t`ignore`, `info`, `die`. Default is `die`.\n+include::submodule-config.txt[]\n \n tag.forceSignAnnotated::\n \tA boolean to specify whether annotated tags created should be GPG signed.\ndiff --git a/Documentation/submodule-config.txt b/Documentation/submodule-config.txt\nnew file mode 100644\nindex 0000000000..0a1293b051\n--- /dev/null\n+++ b/Documentation/submodule-config.txt\n@@ -0,0 +1,82 @@\n+submodule.<name>.url::\n+\tThe URL for a submodule. This variable is copied from the .gitmodules\n+\tfile to the git config via 'git submodule init'. The user can change\n+\tthe configured URL before obtaining the submodule via 'git submodule\n+\tupdate'. If neither submodule.<name>.active or submodule.active are\n+\tset, the presence of this variable is used as a fallback to indicate\n+\twhether the submodule is of interest to git commands.\n+\tSee linkgit:git-submodule[1] and linkgit:gitmodules[5] for details.\n+\n+submodule.<name>.update::\n+\tThe method by which a submodule is updated by 'git submodule update',\n+\twhich is the only affected command, others such as\n+\t'git checkout --recurse-submodules' are unaffected. It exists for\n+\thistorical reasons, when 'git submodule' was the only command to\n+\tinteract with submodules; settings like `submodule.active`\n+\tand `pull.rebase` are more specific. It is populated by\n+\t`git submodule init` from the linkgit:gitmodules[5] file.\n+\tSee description of 'update' command in linkgit:git-submodule[1].\n+\n+submodule.<name>.branch::\n+\tThe remote branch name for a submodule, used by `git submodule\n+\tupdate --remote`.  Set this option to override the value found in\n+\tthe `.gitmodules` file.  See linkgit:git-submodule[1] and\n+\tlinkgit:gitmodules[5] for details.\n+\n+submodule.<name>.fetchRecurseSubmodules::\n+\tThis option can be used to control recursive fetching of this\n+\tsubmodule. It can be overridden by using the --[no-]recurse-submodules\n+\tcommand-line option to \"git fetch\" and \"git pull\".\n+\tThis setting will override that from in the linkgit:gitmodules[5]\n+\tfile.\n+\n+submodule.<name>.ignore::\n+\tDefines under what circumstances \"git status\" and the diff family show\n+\ta submodule as modified. When set to \"all\", it will never be considered\n+\tmodified (but it will nonetheless show up in the output of status and\n+\tcommit when it has been staged), \"dirty\" will ignore all changes\n+\tto the submodules work tree and\n+\ttakes only differences between the HEAD of the submodule and the commit\n+\trecorded in the superproject into account. \"untracked\" will additionally\n+\tlet submodules with modified tracked files in their work tree show up.\n+\tUsing \"none\" (the default when this option is not set) also shows\n+\tsubmodules that have untracked files in their work tree as changed.\n+\tThis setting overrides any setting made in .gitmodules for this submodule,\n+\tboth settings can be overridden on the command line by using the\n+\t\"--ignore-submodules\" option. The 'git submodule' commands are not\n+\taffected by this setting.\n+\n+submodule.<name>.active::\n+\tBoolean value indicating if the submodule is of interest to git\n+\tcommands.  This config option takes precedence over the\n+\tsubmodule.active config option. See linkgit:gitsubmodules[7] for\n+\tdetails.\n+\n+submodule.active::\n+\tA repeated field which contains a pathspec used to match against a\n+\tsubmodule's path to determine if the submodule is of interest to git\n+\tcommands. See linkgit:gitsubmodules[7] for details.\n+\n+submodule.recurse::\n+\tSpecifies if commands recurse into submodules by default. This\n+\tapplies to all commands that have a `--recurse-submodules` option,\n+\texcept `clone`.\n+\tDefaults to false.\n+\n+submodule.fetchJobs::\n+\tSpecifies how many submodules are fetched/cloned at the same time.\n+\tA positive integer allows up to that number of submodules fetched\n+\tin parallel. A value of 0 will give some reasonable default.\n+\tIf unset, it defaults to 1.\n+\n+submodule.alternateLocation::\n+\tSpecifies how the submodules obtain alternates when submodules are\n+\tcloned. Possible values are `no`, `superproject`.\n+\tBy default `no` is assumed, which doesn't add references. When the\n+\tvalue is set to `superproject` the submodule to be cloned computes\n+\tits alternates location relative to the superprojects alternate.\n+\n+submodule.alternateErrorStrategy::\n+\tSpecifies how to treat errors with the alternates for a submodule\n+\tas computed via `submodule.alternateLocation`. Possible values are\n+\t`ignore`, `info`, `die`. Default is `die`.\n-- \n2.19.0.rc0.335.ga73d156e9c\n\n"},{"id":"356278","messageId":"xmqqh8jm5pry.fsf@gitster-ct.c.googlers.com","threadId":"49191","inReplyTo":"20180822160605.21864-1-pclouds@gmail.com","subject":"Re: [PATCH/RFC 00/11] Break down Documentation/config.txt","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2018-08-22T16:28:49Z","receivedAt":"2018-08-22T16:28:53Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Nguyễn Thái Ngọc Duy  <pclouds@gmail.com> writes:\n\n> I notice a couple times lately that people added new config keys in\n> the wrong place, which is understandable since this file has become so\n> big, it's hard to see the structure of anything.\n>\n> Since we have broken down some parts of it into separate files\n> already, this continues in that direction and moves even more parts\n> out of config.txt.\n\nEspecially with <20180819105210.19296-1-pclouds@gmail.com>, which is\nyour recent update to the \"git help --config\" collection machinery\nin place, this sounds like a sensible move.\n"}]}