{"thread":{"id":"24083","subject":"[PATCH v2] Group the default git help message by topic","startedAt":"2010-06-11T16:03:44Z","lastAt":"2010-06-14T17:24:41Z","messageCount":16,"participants":["Scott Chacon","Wincent Colaiuta","Ævar Arnfjörð Bjarmason","A Large Angry SCM","Junio C Hamano","Matthieu Moy","Tay Ray Chuan"],"isPatch":true,"patchVersion":2,"patchTotal":null},"messages":[{"id":"143518","messageId":"AANLkTiloErvcWS1hW80cIV9SiWu_7CBdNSx_iAppcGOd@mail.gmail.com","threadId":"24083","inReplyTo":null,"subject":"[PATCH v2] Group the default git help message by topic","fromName":"Scott Chacon","fromEmail":"schacon@gmail.com","sentAt":"2010-06-11T16:03:44Z","receivedAt":"2010-06-11T16:03:44Z","isPatch":true,"sender":{"key":"schacon@gmail.com","avatar":"https://gravatar.com/avatar/9b13a8a078e1dcf8588c4eea9554445d51ebed6c41b51f56f4d96738130b05c6?d=mp&s=160"},"body":"It's difficult to process 21 commands (which is what is output\nby default for git when no command is given).  They have been\nre-grouped into 4 groups of 5-6 commands each, which is clearer\nand easier for new users to process.  More advanced commands\nsuch as bisect and rebase have also been removed as this should\nbe output for beginners.\n\nSigned-off-by: Scott Chacon <schacon@gmail.com>\n---\n\nHere is the second version of this patch.  Instead of hard-coding\nall the descriptions, I'm just pulling them from the common-cmds.h\nfile.\n\n builtin/help.c |   54 ++++++++++++++++++++++++++++++++++++++++++------------\n 1 files changed, 42 insertions(+), 12 deletions(-)\n\ndiff --git a/builtin/help.c b/builtin/help.c\nindex 3182a2b..2975b3d 100644\n--- a/builtin/help.c\n+++ b/builtin/help.c\n@@ -269,23 +269,53 @@ static int git_help_config(const char *var,\nconst char *value, void *cb)\n \treturn git_default_config(var, value, cb);\n }\n\n-static struct cmdnames main_cmds, other_cmds;\n-\n-void list_common_cmds_help(void)\n+void print_command(const char *s)\n {\n-\tint i, longest = 0;\n+\tint i = 0;\n+\tint longest = 10;\n\n \tfor (i = 0; i < ARRAY_SIZE(common_cmds); i++) {\n-\t\tif (longest < strlen(common_cmds[i].name))\n-\t\t\tlongest = strlen(common_cmds[i].name);\n+\t\tif (!strcmp(s, common_cmds[i].name)) {\n+\t\t\tprintf(\"   %s   \", common_cmds[i].name);\n+\t\t\tmput_char(' ', longest - strlen(common_cmds[i].name));\n+\t\t\tputs(common_cmds[i].help);\n+\t\t}\n \t}\n+}\n\n-\tputs(\"The most commonly used git commands are:\");\n-\tfor (i = 0; i < ARRAY_SIZE(common_cmds); i++) {\n-\t\tprintf(\"   %s   \", common_cmds[i].name);\n-\t\tmput_char(' ', longest - strlen(common_cmds[i].name));\n-\t\tputs(common_cmds[i].help);\n-\t}\n+static struct cmdnames main_cmds, other_cmds;\n+\n+void list_common_cmds_help(void)\n+{\n+\tputs(\"The most commonly used git commands are:\\n\");\n+\n+\tputs(\"Basic Commands:\");\n+\tprint_command(\"init\");\n+\tprint_command(\"clone\");\n+\tprint_command(\"add\");\n+\tprint_command(\"status\");\n+\tprint_command(\"commit\");\n+\tputs(\"\");\n+\n+\tputs(\"Branch Commands:\");\n+\tprint_command(\"branch\");\n+\tprint_command(\"checkout\");\n+\tprint_command(\"merge\");\n+\tprint_command(\"tag\");\n+\tputs(\"\");\n+\n+\tputs(\"History Commands:\");\n+\tprint_command(\"log\");\n+\tprint_command(\"diff\");\n+\tprint_command(\"reset\");\n+\tprint_command(\"show\");\n+\tputs(\"\");\n+\n+\tputs(\"Remote Commands:\");\n+\tprint_command(\"remote\");\n+\tprint_command(\"fetch\");\n+\tprint_command(\"pull\");\n+\tprint_command(\"push\");\n }\n\n static int is_git_command(const char *s)\n-- \n1.7.0.1\n"},{"id":"143523","messageId":"422F3619-25EC-4509-8EE3-78B6C765AB2A@wincent.com","threadId":"24083","inReplyTo":"AANLkTiloErvcWS1hW80cIV9SiWu_7CBdNSx_iAppcGOd@mail.gmail.com","subject":"Re: [PATCH v2] Group the default git help message by topic","fromName":"Wincent Colaiuta","fromEmail":"win@wincent.com","sentAt":"2010-06-11T16:26:18Z","receivedAt":"2010-06-11T16:26:18Z","isPatch":true,"sender":{"key":"greg@hurrell.net","avatar":"https://avatars.githubusercontent.com/u/7074?v=4"},"body":"El 11/06/2010, a las 18:03, Scott Chacon escribió:\n\n> +\tputs(\"The most commonly used git commands are:\\n\");\n> +\n> +\tputs(\"Basic Commands:\");\n> +\tprint_command(\"init\");\n> +\tprint_command(\"clone\");\n> +\tprint_command(\"add\");\n> +\tprint_command(\"status\");\n> +\tprint_command(\"commit\");\n> +\tputs(\"\");\n> +\n> +\tputs(\"Branch Commands:\");\n> +\tprint_command(\"branch\");\n> +\tprint_command(\"checkout\");\n> +\tprint_command(\"merge\");\n> +\tprint_command(\"tag\");\n> +\tputs(\"\");\n> +\n> +\tputs(\"History Commands:\");\n> +\tprint_command(\"log\");\n> +\tprint_command(\"diff\");\n> +\tprint_command(\"reset\");\n> +\tprint_command(\"show\");\n> +\tputs(\"\");\n> +\n> +\tputs(\"Remote Commands:\");\n> +\tprint_command(\"remote\");\n> +\tprint_command(\"fetch\");\n> +\tprint_command(\"pull\");\n> +\tprint_command(\"push\");\n\nNice. I'm sure the output will be a bit less intimidating, but I am not sure about some of the grouping choices you've made here.\n\n\"git checkout\" is almost certainly a \"Basic\" command, even though it's used for creating and switching branches.\n\n\"git tag\" doesn't really seem to be a \"Branch\" command, as it's for tagging objects (usually commits), and not branches.\n\n\"git reset\" is the odd one out in the \"History\" commands group. The other three commands are about _inspecting_ history, whereas \"git reset\" is about changing the current HEAD. I actually think \"git reset\" fits better with the \"Branch\" commands.\n\nI think I'd be inclined to use more descriptive headings and group the commands like this:\n\n  Basic operation:\n    init\n    add\n    status\n    commit\n    checkout\n\n  Inspecting repository state and history:\n    log\n    diff\n    show\n\n  Working with branches:\n    branch\n    merge\n    reset\n\n  Interacting with other repositories:\n    clone\n    fetch\n    pull\n    push\n    remote\n\n...</end of my 2 cents>\n\nCheers,\nWincent\n"},{"id":"143524","messageId":"AANLkTilX5HWm3Om349Cbe397B6EKmu_nJijEvqdq38iw@mail.gmail.com","threadId":"24083","inReplyTo":"AANLkTiloErvcWS1hW80cIV9SiWu_7CBdNSx_iAppcGOd@mail.gmail.com","subject":"Re: [PATCH v2] Group the default git help message by topic","fromName":"Ævar Arnfjörð Bjarmason","fromEmail":"avarab@gmail.com","sentAt":"2010-06-11T16:46:14Z","receivedAt":"2010-06-11T16:46:14Z","isPatch":true,"sender":{"key":"avarab@gmail.com","avatar":"https://avatars.githubusercontent.com/u/45301?v=4"},"body":"On Fri, Jun 11, 2010 at 16:03, Scott Chacon <schacon@gmail.com> wrote:\n\nI like the basic idea behind this patch, i.e. grouping the help\noutput.\n\n> It's difficult to process 21 commands (which is what is output\n> by default for git when no command is given).  They have been\n> re-grouped into 4 groups of 5-6 commands each, which is clearer\n> and easier for new users to process.  More advanced commands\n> such as bisect and rebase have also been removed as this should\n> be output for beginners.\n\n\"should not\"\n\n> Here is the second version of this patch.  Instead of hard-coding\n> all the descriptions, I'm just pulling them from the common-cmds.h\n> file.\n\nThe reason there are 21 is:\n\n    $ grep -c \"mainporcelain common\" command-list.txt\n    21\n\nPerhaps if `git help` is going to be some subset of that aimed at\nnewbies a new command-list.txt category should be introduced as part\nof the patch? E.g. \"mainporcelain common newbie\"?\n\nAs a further suggestion for future improvements, perhaps we should\ndocument *all* commands in the future, or at least those in\nmainporcelain and make a full summary available through `git help\n--full` or something like that.\n\nAs far as I can see with this patch the the description for the\ncommands you removed in the `cmdname_help common_cmds` struct is now\ndead code. If that's the case shouldn't they strings be removed from\nthere?\n\nThese are the commands you removed (I think the commit message should\nbe changed to explicitly mention this):\n\n    git-bisect                              mainporcelain common\n    git-grep                                mainporcelain common\n    git-mv                                  mainporcelain common\n    git-rebase                              mainporcelain common\n    git-rm                                  mainporcelain common\n\n\"mv\" and \"rm\" are certainly something a newbie might frequently\nused. Why not list it under \"Basic commands\" along with \"add\"?\n\nI use \"rebase\" much more than some of the commands now listed, it's\none of the main distinguishing features of git, so perhaps it should\nbe under \"Branch Commands\", if for no other reason than to give users\na peek down the rabbit hole.\n\n>  builtin/help.c |   54 ++++++++++++++++++++++++++++++++++++++++++------------\n>  1 files changed, 42 insertions(+), 12 deletions(-)\n>\n> diff --git a/builtin/help.c b/builtin/help.c\n> index 3182a2b..2975b3d 100644\n> --- a/builtin/help.c\n> +++ b/builtin/help.c\n> @@ -269,23 +269,53 @@ static int git_help_config(const char *var,\n> const char *value, void *cb)\n>        return git_default_config(var, value, cb);\n>  }\n>\n> -static struct cmdnames main_cmds, other_cmds;\n> -\n> -void list_common_cmds_help(void)\n> +void print_command(const char *s)\n>  {\n> -       int i, longest = 0;\n> +       int i = 0;\n> +       int longest = 10;\n>\n>        for (i = 0; i < ARRAY_SIZE(common_cmds); i++) {\n> -               if (longest < strlen(common_cmds[i].name))\n> -                       longest = strlen(common_cmds[i].name);\n> +               if (!strcmp(s, common_cmds[i].name)) {\n> +                       printf(\"   %s   \", common_cmds[i].name);\n> +                       mput_char(' ', longest - strlen(common_cmds[i].name));\n> +                       puts(common_cmds[i].help);\n> +               }\n>        }\n> +}\n>\n> -       puts(\"The most commonly used git commands are:\");\n> -       for (i = 0; i < ARRAY_SIZE(common_cmds); i++) {\n> -               printf(\"   %s   \", common_cmds[i].name);\n> -               mput_char(' ', longest - strlen(common_cmds[i].name));\n> -               puts(common_cmds[i].help);\n> -       }\n> +static struct cmdnames main_cmds, other_cmds;\n> +\n> +void list_common_cmds_help(void)\n> +{\n> +       puts(\"The most commonly used git commands are:\\n\");\n> +\n> +       puts(\"Basic Commands:\");\n\nWhy capitalize \"Commands\" when it's not at the beginning of a\nsentence? 'bzr help' doesn't do this. And For What It's Worth I Find\nIt Uncomfortable To Read Text Formatted Like That.\n\n> +       print_command(\"init\");\n> +       print_command(\"clone\");\n> +       print_command(\"add\");\n> +       print_command(\"status\");\n> +       print_command(\"commit\");\n> +       puts(\"\");\n> +\n> +       puts(\"Branch Commands:\");\n> +       print_command(\"branch\");\n> +       print_command(\"checkout\");\n> +       print_command(\"merge\");\n> +       print_command(\"tag\");\n> +       puts(\"\");\n> +\n> +       puts(\"History Commands:\");\n> +       print_command(\"log\");\n> +       print_command(\"diff\");\n> +       print_command(\"reset\");\n> +       print_command(\"show\");\n> +       puts(\"\");\n> +\n> +       puts(\"Remote Commands:\");\n> +       print_command(\"remote\");\n> +       print_command(\"fetch\");\n> +       print_command(\"pull\");\n> +       print_command(\"push\");\n>  }\n"},{"id":"143535","messageId":"4C12B20F.3080709@gmail.com","threadId":"24083","inReplyTo":"422F3619-25EC-4509-8EE3-78B6C765AB2A@wincent.com","subject":"Re: [PATCH v2] Group the default git help message by topic","fromName":"A Large Angry SCM","fromEmail":"gitzilla@gmail.com","sentAt":"2010-06-11T22:00:47Z","receivedAt":"2010-06-11T22:00:47Z","isPatch":true,"sender":{"key":"gitzilla@gmail.com","avatar":"https://gravatar.com/avatar/354625c442439908ff3dd99757dee330e29e9df7847472384faf7a00add247fb?d=mp&s=160"},"body":"Wincent Colaiuta wrote:\n> El 11/06/2010, a las 18:03, Scott Chacon escribió:\n> \n>> +\tputs(\"The most commonly used git commands are:\\n\");\n>> +\n>> +\tputs(\"Basic Commands:\");\n>> +\tprint_command(\"init\");\n>> +\tprint_command(\"clone\");\n>> +\tprint_command(\"add\");\n>> +\tprint_command(\"status\");\n>> +\tprint_command(\"commit\");\n>> +\tputs(\"\");\n>> +\n>> +\tputs(\"Branch Commands:\");\n>> +\tprint_command(\"branch\");\n>> +\tprint_command(\"checkout\");\n>> +\tprint_command(\"merge\");\n>> +\tprint_command(\"tag\");\n>> +\tputs(\"\");\n>> +\n>> +\tputs(\"History Commands:\");\n>> +\tprint_command(\"log\");\n>> +\tprint_command(\"diff\");\n>> +\tprint_command(\"reset\");\n>> +\tprint_command(\"show\");\n>> +\tputs(\"\");\n>> +\n>> +\tputs(\"Remote Commands:\");\n>> +\tprint_command(\"remote\");\n>> +\tprint_command(\"fetch\");\n>> +\tprint_command(\"pull\");\n>> +\tprint_command(\"push\");\n> \n> Nice. I'm sure the output will be a bit less intimidating, but I am not sure about some of the grouping choices you've made here.\n> \n> \"git checkout\" is almost certainly a \"Basic\" command, even though it's used for creating and switching branches.\n> \n> \"git tag\" doesn't really seem to be a \"Branch\" command, as it's for tagging objects (usually commits), and not branches.\n> \n> \"git reset\" is the odd one out in the \"History\" commands group. The other three commands are about _inspecting_ history, whereas \"git reset\" is about changing the current HEAD. I actually think \"git reset\" fits better with the \"Branch\" commands.\n> \n> I think I'd be inclined to use more descriptive headings and group the commands like this:\n> \n>   Basic operation:\n>     init\n>     add\n>     status\n>     commit\n>     checkout\n> \n>   Inspecting repository state and history:\n>     log\n>     diff\n>     show\n> \n>   Working with branches:\n>     branch\n>     merge\n>     reset\n> \n>   Interacting with other repositories:\n>     clone\n>     fetch\n>     pull\n>     push\n>     remote\n> \n> ...</end of my 2 cents>\n\nCan a command be listed twice? Some of these commands _really_ belong in \nmore than one category.\n"},{"id":"143536","messageId":"AANLkTinec7_D-WHRfetVRVvmG0EGoW4ZTdiTvoGMgJvQ@mail.gmail.com","threadId":"24083","inReplyTo":"4C12B20F.3080709@gmail.com","subject":"Re: [PATCH v2] Group the default git help message by topic","fromName":"Ævar Arnfjörð Bjarmason","fromEmail":"avarab@gmail.com","sentAt":"2010-06-11T22:28:24Z","receivedAt":"2010-06-11T22:28:24Z","isPatch":true,"sender":{"key":"avarab@gmail.com","avatar":"https://avatars.githubusercontent.com/u/45301?v=4"},"body":"On Fri, Jun 11, 2010 at 22:00, A Large Angry SCM <gitzilla@gmail.com> wrote:\n> Can a command be listed twice? Some of these commands _really_ belong in\n> more than one category.\n\nOf course it can. But what specific commands do you mean?\n"},{"id":"143571","messageId":"AANLkTikYIePjF-ZMKh4fS_Gs6AEcImbCY1X7M4FYaEwy@mail.gmail.com","threadId":"24083","inReplyTo":"422F3619-25EC-4509-8EE3-78B6C765AB2A@wincent.com","subject":"Re: [PATCH v2] Group the default git help message by topic","fromName":"Scott Chacon","fromEmail":"schacon@gmail.com","sentAt":"2010-06-12T16:17:29Z","receivedAt":"2010-06-12T16:17:29Z","isPatch":true,"sender":{"key":"schacon@gmail.com","avatar":"https://gravatar.com/avatar/9b13a8a078e1dcf8588c4eea9554445d51ebed6c41b51f56f4d96738130b05c6?d=mp&s=160"},"body":"Hey,\n\nOn Fri, Jun 11, 2010 at 9:26 AM, Wincent Colaiuta <win@wincent.com> wrote:\n>\n> Nice. I'm sure the output will be a bit less intimidating, but I am not sure about some of the grouping choices you've made here.\n>\n> \"git checkout\" is almost certainly a \"Basic\" command, even though it's used for creating and switching branches.\n\nI wanted the basic commands to be commands that you had to know to use\ngit.  You really don't actually *have* to know 'checkout' - you only\nneed to know it if you're using branches, or in a more advanced case,\nwant to revert file contents.  To just commit snapshots, 'checkout' is\nnot a necessary command.\n\n>\n> \"git tag\" doesn't really seem to be a \"Branch\" command, as it's for tagging objects (usually commits), and not branches.\n\nThis is true - I suppose it probably actually fits better under\n'history', since that's what you're doing is bookmarking a point in\nhistory.\n\n>\n> \"git reset\" is the odd one out in the \"History\" commands group. The other three commands are about _inspecting_ history, whereas \"git reset\" is about changing the current HEAD. I actually think \"git reset\" fits better with the \"Branch\" commands.\n>\n\nI guess - I suppose I put it there because I mainly use it to rewind\nmy history (reset HEAD~) but it could go under branches.  While we're\nat it, I'm not sure 'show' is really necessary in this list at all.  I\nrarely use it, which I guess means it's not *terribly* important for\nday to day use.\n\n> I think I'd be inclined to use more descriptive headings and group the commands like this:\n>\n>  Basic operation:\n>    init\n>    add\n>    status\n>    commit\n>    checkout\n>\n>  Inspecting repository state and history:\n>    log\n>    diff\n>    show\n>\n>  Working with branches:\n>    branch\n>    merge\n>    reset\n>\n>  Interacting with other repositories:\n>    clone\n>    fetch\n>    pull\n>    push\n>    remote\n>\n\nI kind of like the more descriptive headings, but I still think\n'clone' should be in the 'basics' section, because everyone needs to\nknow that, but I had it in the 'remotes' section at first too, so I\nwouldn't be terribly opposed to moving it back down there.  I really\ndon't want 'checkout' in 'basic' - there is no good reason I can see\nto not have it in 'branches'.\n\nScott\n"},{"id":"143572","messageId":"AANLkTilPq8JYTodCA17Wt2G1QZZValgPlbC7sM_neHU4@mail.gmail.com","threadId":"24083","inReplyTo":"AANLkTinec7_D-WHRfetVRVvmG0EGoW4ZTdiTvoGMgJvQ@mail.gmail.com","subject":"Re: [PATCH v2] Group the default git help message by topic","fromName":"Scott Chacon","fromEmail":"schacon@gmail.com","sentAt":"2010-06-12T16:19:50Z","receivedAt":"2010-06-12T16:19:50Z","isPatch":true,"sender":{"key":"schacon@gmail.com","avatar":"https://gravatar.com/avatar/9b13a8a078e1dcf8588c4eea9554445d51ebed6c41b51f56f4d96738130b05c6?d=mp&s=160"},"body":"Hey,\n\nOn Fri, Jun 11, 2010 at 3:28 PM, Ævar Arnfjörð Bjarmason\n<avarab@gmail.com> wrote:\n> On Fri, Jun 11, 2010 at 22:00, A Large Angry SCM <gitzilla@gmail.com> wrote:\n>> Can a command be listed twice? Some of these commands _really_ belong in\n>> more than one category.\n>\n> Of course it can. But what specific commands do you mean?\n>\n\nFor the sake of brevity and clarity I would prefer just choosing the\nmost appropriate category rather than putting any in there twice.  I'm\ntrying to stay as close to 25 lines as possible, which is also why I\nnow think we should remove 'show' from the list, too.  The point is\nnot to be as accurate as technically possible, but instead to just be\na bit more presentable to new users - help them parse the needed\ncommand set a little easier than one big list.\n\nScott\n"},{"id":"143579","messageId":"AANLkTin3RHtU9tNHPKFyY3WJPhUZCr2AC9sLpn33Nkc4@mail.gmail.com","threadId":"24083","inReplyTo":"AANLkTilPq8JYTodCA17Wt2G1QZZValgPlbC7sM_neHU4@mail.gmail.com","subject":"Re: [PATCH v2] Group the default git help message by topic","fromName":"Ævar Arnfjörð Bjarmason","fromEmail":"avarab@gmail.com","sentAt":"2010-06-12T16:35:57Z","receivedAt":"2010-06-12T16:35:57Z","isPatch":true,"sender":{"key":"avarab@gmail.com","avatar":"https://avatars.githubusercontent.com/u/45301?v=4"},"body":"On Sat, Jun 12, 2010 at 16:19, Scott Chacon <schacon@gmail.com> wrote:\n> Hey,\n>\n> On Fri, Jun 11, 2010 at 3:28 PM, Ævar Arnfjörð Bjarmason\n> <avarab@gmail.com> wrote:\n>> On Fri, Jun 11, 2010 at 22:00, A Large Angry SCM <gitzilla@gmail.com> wrote:\n>>> Can a command be listed twice? Some of these commands _really_ belong in\n>>> more than one category.\n>>\n>> Of course it can. But what specific commands do you mean?\n>>\n>\n> For the sake of brevity and clarity I would prefer just choosing the\n> most appropriate category rather than putting any in there twice.  I'm\n> trying to stay as close to 25 lines as possible, which is also why I\n> now think we should remove 'show' from the list, too.  The point is\n> not to be as accurate as technically possible, but instead to just be\n> a bit more presentable to new users - help them parse the needed\n> command set a little easier than one big list.\n\nFWIW `git show` is among my top 5 commands according to my bash\nhistory.\n\nI think it's definitely among the commands that should be listed by\n`git help` by default. It's needed whenever you want to inspect a\ngiven revision.\n"},{"id":"143587","messageId":"6FE00F97-CB7D-49A1-89CA-23C3C7FFD0D6@wincent.com","threadId":"24083","inReplyTo":"AANLkTikYIePjF-ZMKh4fS_Gs6AEcImbCY1X7M4FYaEwy@mail.gmail.com","subject":"Re: [PATCH v2] Group the default git help message by topic","fromName":"Wincent Colaiuta","fromEmail":"win@wincent.com","sentAt":"2010-06-12T17:53:55Z","receivedAt":"2010-06-12T17:53:55Z","isPatch":true,"sender":{"key":"greg@hurrell.net","avatar":"https://avatars.githubusercontent.com/u/7074?v=4"},"body":"El 12/06/2010, a las 18:17, Scott Chacon escribió:\n\n> Hey,\n> \n> On Fri, Jun 11, 2010 at 9:26 AM, Wincent Colaiuta <win@wincent.com> wrote:\n>> \n>> Nice. I'm sure the output will be a bit less intimidating, but I am not sure about some of the grouping choices you've made here.\n>> \n>> \"git checkout\" is almost certainly a \"Basic\" command, even though it's used for creating and switching branches.\n> \n> I wanted the basic commands to be commands that you had to know to use\n> git.  You really don't actually *have* to know 'checkout' - you only\n> need to know it if you're using branches, or in a more advanced case,\n> want to revert file contents.  To just commit snapshots, 'checkout' is\n> not a necessary command.\n\nI think that's an overly restrictive criterion. By that standard, \"git status\" shouldn't be there either because you don't *have* to know that to use Git either.\n\n>> \"git tag\" doesn't really seem to be a \"Branch\" command, as it's for tagging objects (usually commits), and not branches.\n> \n> This is true - I suppose it probably actually fits better under\n> 'history', since that's what you're doing is bookmarking a point in\n> history.\n\nIn any case, now that you mention it I see that I forgot to include \"git tag\" anywhere in the listing. I don't think it belongs clearly in any of the categories mentioned so far, despite the fact that it is still a fairly basic command. Perhaps there's a need for a final section called \"Other commands:\"...\n\n>> \"git reset\" is the odd one out in the \"History\" commands group. The other three commands are about _inspecting_ history, whereas \"git reset\" is about changing the current HEAD. I actually think \"git reset\" fits better with the \"Branch\" commands.\n> \n> I guess - I suppose I put it there because I mainly use it to rewind\n> my history (reset HEAD~) but it could go under branches.  While we're\n> at it, I'm not sure 'show' is really necessary in this list at all.  I\n> rarely use it, which I guess means it's not *terribly* important for\n> day to day use.\n\nWell, it's a pretty useful tool IMO as you can point \"git show\" at just about anything and get something informative back. I use it all the time with no params to get a quick look at the latest change in a repo, and point it at tags and such to give me a quick indication of when/what they were applied to.\n\nFor me \"git reset\" is a much more advanced command and one of the _last_ things I would show a beginning user, seeing as it actually requires them to have a proper grasp of branches and heads in Git (and that may take a little while for them to sink in).\n\n>> I think I'd be inclined to use more descriptive headings and group the commands like this:\n>> \n>>  Basic operation:\n>>    init\n>>    add\n>>    status\n>>    commit\n>>    checkout\n>> \n>>  Inspecting repository state and history:\n>>    log\n>>    diff\n>>    show\n>> \n>>  Working with branches:\n>>    branch\n>>    merge\n>>    reset\n>> \n>>  Interacting with other repositories:\n>>    clone\n>>    fetch\n>>    pull\n>>    push\n>>    remote\n>> \n> \n> I kind of like the more descriptive headings, but I still think\n> 'clone' should be in the 'basics' section, because everyone needs to\n> know that\n\nThat's not true. You can start learning to use Git in an empty directory with \"git init\", and in fact you could quite happily use Git for weeks without using \"git clone\". Some people use Git to track their home directories or \"/etc\" or whatever, and never work collaboratively with other repositories at all. So there's nothing \"fundamental\" about \"git clone\" IMO.\n\n> but I had it in the 'remotes' section at first too, so I\n> wouldn't be terribly opposed to moving it back down there.\n\nWell it is kind of nice to have those five commands grouped together seeing as, unlike some of the other commands under discussion here, they are all indisputably about \"Interacting with other repositories\".\n\n> I really don't want 'checkout' in 'basic' - there is no good reason I can see\n> to not have it in 'branches'.\n\nWell, it seems pretty basic to me. Have you ever seen a Git tutorial that didn't teach \"git checkout\" in the first 5 minutes? And once the user gets started using Git it's a command they'll use literally all the time. Sticking it in \"branches\" seems wrong to me seeing as it is a multi-purpose command that does a lot more than just work with branches.\n\nWincent\n"},{"id":"143589","messageId":"4C13D584.1000604@gmail.com","threadId":"24083","inReplyTo":"AANLkTinec7_D-WHRfetVRVvmG0EGoW4ZTdiTvoGMgJvQ@mail.gmail.com","subject":"Re: [PATCH v2] Group the default git help message by topic","fromName":"A Large Angry SCM","fromEmail":"gitzilla@gmail.com","sentAt":"2010-06-12T18:44:20Z","receivedAt":"2010-06-12T18:44:20Z","isPatch":true,"sender":{"key":"gitzilla@gmail.com","avatar":"https://gravatar.com/avatar/354625c442439908ff3dd99757dee330e29e9df7847472384faf7a00add247fb?d=mp&s=160"},"body":"Ævar Arnfjörð Bjarmason wrote:\n> On Fri, Jun 11, 2010 at 22:00, A Large Angry SCM <gitzilla@gmail.com> wrote:\n>> Can a command be listed twice? Some of these commands _really_ belong in\n>> more than one category.\n> \n> Of course it can. But what specific commands do you mean?\n> \n\nStart with git-checkout since it's a basic command and a branching command.\n"},{"id":"143638","messageId":"7vbpbeazy5.fsf@alter.siamese.dyndns.org","threadId":"24083","inReplyTo":"AANLkTiloErvcWS1hW80cIV9SiWu_7CBdNSx_iAppcGOd@mail.gmail.com","subject":"Re: [PATCH v2] Group the default git help message by topic","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2010-06-14T06:30:26Z","receivedAt":"2010-06-14T06:30:26Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Scott Chacon <schacon@gmail.com> writes:\n\n> It's difficult to process 21 commands (which is what is output\n> by default for git when no command is given).  They have been\n> re-grouped into 4 groups of 5-6 commands each, which is clearer\n> and easier for new users to process.  More advanced commands\n> such as bisect and rebase have also been removed as this should\n> be output for beginners.\n\nI am lazy, and I loathe having to maintain another hardcoded table (let\nalone sequence of print_command() calls, like this patch does, yuck).\n\nThe two words, \"21\" and \"group\", in your proposed commit log message have\nbeen nagging me for a while, and I finally figured out why this patch made\nme feel very disturbed.  We already have a perfect source to generate the\nnecessary most commonly used command list with a good grouping hint, but\nthe patch does not make use of it.\n\nSo here is a counterproposal.\n\nIf readers notice that there are some commands that are out of fashion\n(e.g. I don't think many people use show-branch anymore in the presence of\n\"log --oneline --graph\" and friends) listed in the \"git help\" output, that\nis a _good thing_.  It will give us an incentive to keep the Everyday\ndocument up to date, and with the effort spent for that, \"git help\" will\nautomatically be kept up to date as well for free ;-)\n\n-- >8 --\nSubject: generate \"git help\" command list using the \"Everyday\" document\n\nAlphabetized list of \"commonly used commands\" we currently give is hard to\napproach.  Instead, using the \"Everyday\" document as a template, group\ncommands by the role the user plays, and present the commands in the order\nthey typically used while playing each role.\n\nSigned-off-by: Junio C Hamano <gitster@pobox.com>\n---\n\n Makefile            |    2 +-\n builtin/help.c      |   14 ++++++++---\n generate-cmdlist.sh |   64 +++++++++++++++++++++++++++++++++++---------------\n 3 files changed, 56 insertions(+), 24 deletions(-)\n\ndiff --git a/Makefile b/Makefile\nindex 5fa893c..770bea8 100644\n--- a/Makefile\n+++ b/Makefile\n@@ -1529,7 +1529,7 @@ $(BUILT_INS): git$X\n \n common-cmds.h: ./generate-cmdlist.sh command-list.txt\n \n-common-cmds.h: $(wildcard Documentation/git-*.txt)\n+common-cmds.h: $(wildcard Documentation/git-*.txt) Documentation/everyday.txt\n \t$(QUIET_GEN)./generate-cmdlist.sh > $@+ && mv $@+ $@\n \n define cmd_munge_script\ndiff --git a/builtin/help.c b/builtin/help.c\nindex 3182a2b..546b3a7 100644\n--- a/builtin/help.c\n+++ b/builtin/help.c\n@@ -276,15 +276,21 @@ void list_common_cmds_help(void)\n \tint i, longest = 0;\n \n \tfor (i = 0; i < ARRAY_SIZE(common_cmds); i++) {\n+\t\tif (!common_cmds[i].help)\n+\t\t\tcontinue;\n \t\tif (longest < strlen(common_cmds[i].name))\n \t\t\tlongest = strlen(common_cmds[i].name);\n \t}\n \n-\tputs(\"The most commonly used git commands are:\");\n+\tputs(\"Some commonly used git commands per developer roles are:\");\n \tfor (i = 0; i < ARRAY_SIZE(common_cmds); i++) {\n-\t\tprintf(\"   %s   \", common_cmds[i].name);\n-\t\tmput_char(' ', longest - strlen(common_cmds[i].name));\n-\t\tputs(common_cmds[i].help);\n+\t\tif (!common_cmds[i].help) {\n+\t\t\tprintf(\" * %s\\n\", common_cmds[i].name);\n+\t\t} else {\n+\t\t\tprintf(\"   %s  \", common_cmds[i].name);\n+\t\t\tmput_char(' ', longest - strlen(common_cmds[i].name));\n+\t\t\tputs(common_cmds[i].help);\n+\t\t}\n \t}\n }\n \ndiff --git a/generate-cmdlist.sh b/generate-cmdlist.sh\nindex 75c68d9..c6cab26 100755\n--- a/generate-cmdlist.sh\n+++ b/generate-cmdlist.sh\n@@ -1,24 +1,50 @@\n #!/bin/sh\n \n-echo \"/* Automatically generated by $0 */\n-struct cmdname_help\n+echo \"/* Automatically generated by $0 - do not edit */\n+\n+/*\n+ * Special entries without 'help' are section headers.\n+ */\n+static struct cmdname_help\n {\n-    char name[16];\n-    char help[80];\n-};\n+\tconst char *name;\n+\tconst char *help;\n+} common_cmds[] = {\"\n+\n+perl -e '\n+my %seen = ();\n+my $section = undef;\n+\n+while (<STDIN>) {\n+\tchomp;\n+\tif (/^\\S.*\\[\\[(.+)\\]\\]$/) {\n+\t\tprint \"\\n  { \\\"$1\\\", NULL },\\n\\n\";\n+\t\tnext;\n+\t}\n+\twhile (s/linkgit:git-([-a-z]*)//) {\n+\t\tmy $cmd = $1;\n+\t\tnext if ($seen{$cmd}++);\n \n-static struct cmdname_help common_cmds[] = {\"\n+\t\tmy $desc = undef;\n+\t\topen I, \"<\", \"Documentation/git-$cmd.txt\"\n+\t\t\tor die \"Cannot read Documentation/git-$cmd.txt: $!\";\n+\t\twhile (<I>) {\n+\t\t\tnext if (1../^NAME/);\n+\t\t\tif (/^git-$cmd /) {\n+\t\t\t\ts/^git-$cmd - //;\n+\t\t\t\tchomp;\n+\t\t\t\t$desc = $_;\n+\t\t\t\tlast;\n+\t\t\t}\n+\t\t}\n+\t\tclose I;\n+\t\tif (!defined $desc) {\n+\t\t\tdie \"Cannot read description for $cmd\";\n+\t\t}\n+\t\tprint \"  { \\\"$cmd\\\", \\\"$desc\\\" },\\n\";\n+\t}\n+}\n+' <Documentation/everyday.txt\n \n-sed -n -e 's/^git-\\([^ \t]*\\)[ \t].* common.*/\\1/p' command-list.txt |\n-sort |\n-while read cmd\n-do\n-     sed -n '\n-     /^NAME/,/git-'\"$cmd\"'/H\n-     ${\n-            x\n-            s/.*git-'\"$cmd\"' - \\(.*\\)/  {\"'\"$cmd\"'\", \"\\1\"},/\n-\t    p\n-     }' \"Documentation/git-$cmd.txt\"\n-done\n-echo \"};\"\n+echo \"\n+};\"\n"},{"id":"143643","messageId":"vpqljaiukab.fsf@bauges.imag.fr","threadId":"24083","inReplyTo":"AANLkTiloErvcWS1hW80cIV9SiWu_7CBdNSx_iAppcGOd@mail.gmail.com","subject":"Re: [PATCH v2] Group the default git help message by topic","fromName":"Matthieu Moy","fromEmail":"matthieu.moy@grenoble-inp.fr","sentAt":"2010-06-14T07:48:28Z","receivedAt":"2010-06-14T07:48:28Z","isPatch":true,"sender":{"key":"matthieu.moy@grenoble-inp.fr","avatar":"https://gravatar.com/avatar/72c8a2705971a25dfaff23cece15130d405685845d911aedd5667ace277f3fc5?d=mp&s=160"},"body":"Scott Chacon <schacon@gmail.com> writes:\n\n> +\tputs(\"Basic Commands:\");\n> +\tprint_command(\"init\");\n> +\tprint_command(\"clone\");\n> +\tprint_command(\"add\");\n> +\tprint_command(\"status\");\n> +\tprint_command(\"commit\");\n> +\tputs(\"\");\n\nShouldn't \"git rm\" be listed next to \"git add\"?\n\n-- \nMatthieu Moy\nhttp://www-verimag.imag.fr/~moy/\n"},{"id":"143660","messageId":"AANLkTimFUGkYeZaXA7BqX8ghsHX_gGYRK69ScHMXbw2l@mail.gmail.com","threadId":"24083","inReplyTo":"7vbpbeazy5.fsf@alter.siamese.dyndns.org","subject":"Re: [PATCH v2] Group the default git help message by topic","fromName":"Scott Chacon","fromEmail":"schacon@gmail.com","sentAt":"2010-06-14T15:31:55Z","receivedAt":"2010-06-14T15:31:55Z","isPatch":true,"sender":{"key":"schacon@gmail.com","avatar":"https://gravatar.com/avatar/9b13a8a078e1dcf8588c4eea9554445d51ebed6c41b51f56f4d96738130b05c6?d=mp&s=160"},"body":"Hey,\n\nOn Sun, Jun 13, 2010 at 11:30 PM, Junio C Hamano <gitster@pobox.com> wrote:\n>\n> I am lazy, and I loathe having to maintain another hardcoded table (let\n> alone sequence of print_command() calls, like this patch does, yuck).\n>\n\nSorry, but it seemed to me this would have to be separately maintained\nanyhow, plus it doesn't change much.  How often are basic commands\ngoing to be added or removed?  Also, it may not be that pretty, but\nit's undeniably clear.\n\n> The two words, \"21\" and \"group\", in your proposed commit log message have\n> been nagging me for a while, and I finally figured out why this patch made\n> me feel very disturbed.  We already have a perfect source to generate the\n> necessary most commonly used command list with a good grouping hint, but\n> the patch does not make use of it.\n\nThe only issue I would have with this statement is the word 'perfect'.\n\nTo disambiguate what we're talking about here, this is the output that\nis generated from this new patch:\n\nSome commonly used git commands per developer roles are:\n * Individual Developer (Standalone)\n   init          Create an empty git repository or reinitialize an existing one\n   show-branch   Show branches and their commits\n   log           Show commit logs\n   checkout      Checkout a branch or paths to the working tree\n   add           Add file contents to the index\n   diff          Show changes between commits, commit and working tree, etc\n   commit        Record changes to the repository\n   reset         Reset current HEAD to the specified state\n   merge         Join two or more development histories together\n   rebase        Forward-port local commits to the updated upstream head\n   tag           Create, list, delete or verify a tag object signed with GPG\n * Individual Developer (Participant)\n   clone         Clone a repository into a new directory\n   pull          Fetch from and merge with another repository or a local branch\n   push          Update remote refs along with associated objects\n   format-patch  Prepare patches for e-mail submission\n * Integrator\n   am            Apply a series of patches from a mailbox\n   revert        Revert an existing commit\n * Repository Administration\n   daemon        A really simple server for git repositories\n   shell         Restricted login shell for GIT-only SSH access\n\nThough the implementation of the solution is undeniably more elegant,\nI have some serious issues with the output.  As you mention next,\n'show-branches' is second in the list, which is an issue, but there\nare several more.  'am', 'revert', 'daemon', 'shell', 'rebase' - none\nof these are appropriate for someone running 'git' and trying to see\nwhere to start.  If we put those aside, all we have is a big list of\ncommands again which adds almost no value to what we had before.\n\n> If readers notice that there are some commands that are out of fashion\n> (e.g. I don't think many people use show-branch anymore in the presence of\n> \"log --oneline --graph\" and friends) listed in the \"git help\" output, that\n> is a _good thing_.  It will give us an incentive to keep the Everyday\n> document up to date, and with the effort spent for that, \"git help\" will\n> automatically be kept up to date as well for free ;-)\n\nThat's a fine goal, but I feel like it shouldn't be an \"everyday\"\ndocument that generates that output, it should be a \"beginner\"\ndocument or a \"how to start using Git\" document that isn't really in\nthe Git source.  I mean, I suppose we could write one with the goal of\nusing it to generate the help output, but given how much people\ndisagreed with even the basic grouping of the first patch I sent, I\ncan't see how we're going to agree on a new help doc.  Perhaps we\nshould decide on what we would ultimately like the basic help output\nto look like and then I can craft a document that would produce it\ngiven this patch and then the list can rip it apart until it's\nbasically acceptable.\n\nThoughts?\n\nScott\n"},{"id":"143686","messageId":"AANLkTimNdZO8-lesiGmGm2DeHdhAKbTwzjct-U5P5LLJ@mail.gmail.com","threadId":"24083","inReplyTo":"AANLkTimFUGkYeZaXA7BqX8ghsHX_gGYRK69ScHMXbw2l@mail.gmail.com","subject":"Re: [PATCH v2] Group the default git help message by topic","fromName":"Tay Ray Chuan","fromEmail":"rctay89@gmail.com","sentAt":"2010-06-14T16:49:35Z","receivedAt":"2010-06-14T16:49:35Z","isPatch":true,"sender":{"key":"rctay89@gmail.com","avatar":"https://avatars.githubusercontent.com/u/61553?v=4"},"body":"Hi,\n\nOn Mon, Jun 14, 2010 at 11:31 PM, Scott Chacon <schacon@gmail.com> wrote:\n> [snip]\n> On Sun, Jun 13, 2010 at 11:30 PM, Junio C Hamano <gitster@pobox.com> wrote:\n> [snip]\n> To disambiguate what we're talking about here, this is the output that\n> is generated from this new patch:\n>\n> Some commonly used git commands per developer roles are:\n>  * Individual Developer (Standalone)\n>   init          Create an empty git repository or reinitialize an existing one\n>   show-branch   Show branches and their commits\n>   log           Show commit logs\n>   checkout      Checkout a branch or paths to the working tree\n>   add           Add file contents to the index\n>   diff          Show changes between commits, commit and working tree, etc\n>   commit        Record changes to the repository\n>   reset         Reset current HEAD to the specified state\n>   merge         Join two or more development histories together\n>   rebase        Forward-port local commits to the updated upstream head\n>   tag           Create, list, delete or verify a tag object signed with GPG\n>  * Individual Developer (Participant)\n>   clone         Clone a repository into a new directory\n>   pull          Fetch from and merge with another repository or a local branch\n>   push          Update remote refs along with associated objects\n>   format-patch  Prepare patches for e-mail submission\n>  * Integrator\n>   am            Apply a series of patches from a mailbox\n>   revert        Revert an existing commit\n>  * Repository Administration\n>   daemon        A really simple server for git repositories\n>   shell         Restricted login shell for GIT-only SSH access\n\nOn behalf of people too lazy to patch and compile, like myself - thanks.\n\n> [snip]\n> As you mention next,\n> 'show-branches' is second in the list, which is an issue,\n\nThen perhaps we should do something about Documentation/everyday.txt.\n\n> but there\n> are several more.  'am', 'revert', 'daemon', 'shell', 'rebase' - none\n> of these are appropriate for someone running 'git' and trying to see\n> where to start.  If we put those aside, all we have is a big list of\n> commands again which adds almost no value to what we had before.\n\nThey are placed under the titles 'Integrator' and 'Repository\nAdministration', which, I think, is enough to serve as a 'warning!\ngit-fu ahead' for users who wish to preserve their sanity.\n\nOn 'big' - mercurial, which is associated with 'user-friendly', shows\na list of 50 commands.\n\n>> If readers notice that there are some commands that are out of fashion\n>> (e.g. I don't think many people use show-branch anymore in the presence of\n>> \"log --oneline --graph\" and friends) listed in the \"git help\" output, that\n>> is a _good thing_.  It will give us an incentive to keep the Everyday\n>> document up to date, and with the effort spent for that, \"git help\" will\n>> automatically be kept up to date as well for free ;-)\n>\n> That's a fine goal, but I feel like it shouldn't be an \"everyday\"\n> document that generates that output, it should be a \"beginner\"\n> document or a \"how to start using Git\" document that isn't really in\n> the Git source.\n\nI, for one, don't think \"git help\" is the place beginners go to when\nthey first start off - I sure didn't.\n\nThe goal of re-grouping and having a short list of commands is nice,\nand I see this as useful for people starting to use git, but not for\npeople learning it.\n\n-- \nCheers,\nRay Chuan\n"},{"id":"143687","messageId":"AANLkTilGhVCWJ9NdFqZD7_XOmAlPz8Wy5TN4Qkqvf5yU@mail.gmail.com","threadId":"24083","inReplyTo":"AANLkTimNdZO8-lesiGmGm2DeHdhAKbTwzjct-U5P5LLJ@mail.gmail.com","subject":"Re: [PATCH v2] Group the default git help message by topic","fromName":"Scott Chacon","fromEmail":"schacon@gmail.com","sentAt":"2010-06-14T16:59:51Z","receivedAt":"2010-06-14T16:59:51Z","isPatch":true,"sender":{"key":"schacon@gmail.com","avatar":"https://gravatar.com/avatar/9b13a8a078e1dcf8588c4eea9554445d51ebed6c41b51f56f4d96738130b05c6?d=mp&s=160"},"body":"Hey,\n\nOn Mon, Jun 14, 2010 at 9:49 AM, Tay Ray Chuan <rctay89@gmail.com> wrote:\n>\n> I, for one, don't think \"git help\" is the place beginners go to when\n> they first start off - I sure didn't.\n>\n> The goal of re-grouping and having a short list of commands is nice,\n> and I see this as useful for people starting to use git, but not for\n> people learning it.\n>\n\nI would still argue that 'git daemon' and friends are not what people\nstarting to use Git need to see.\n\nScott\n"},{"id":"143691","messageId":"7vvd9la5nq.fsf@alter.siamese.dyndns.org","threadId":"24083","inReplyTo":"AANLkTimFUGkYeZaXA7BqX8ghsHX_gGYRK69ScHMXbw2l@mail.gmail.com","subject":"Re: [PATCH v2] Group the default git help message by topic","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2010-06-14T17:24:41Z","receivedAt":"2010-06-14T17:24:41Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Scott Chacon <schacon@gmail.com> writes:\n\n> Though the implementation of the solution is undeniably more elegant,\n> I have some serious issues with the output.  As you mention next,\n> 'show-branches' is second in the list, which is an issue, but there\n> are several more.  'am', 'revert', 'daemon', 'shell', 'rebase' - none\n> of these are appropriate for someone running 'git' and trying to see\n> where to start.  If we put those aside, all we have is a big list of\n> commands again which adds almost no value to what we had before.\n> ...\n>> If readers notice that there are some commands that are out of fashion\n>> (e.g. I don't think many people use show-branch anymore in the presence of\n>> \"log --oneline --graph\" and friends) listed in the \"git help\" output, that\n>> is a _good thing_.  It will give us an incentive to keep the Everyday\n>> document up to date, and with the effort spent for that, \"git help\" will\n>> automatically be kept up to date as well for free ;-)\n>\n> That's a fine goal, but I feel like it shouldn't be an \"everyday\"\n> document that generates that output, it should be a \"beginner\"\n> document or a \"how to start using Git\" document that isn't really in\n> the Git source.\n>\n> Thoughts?\n\nThree points.\n\n - The fact that you noticed \"show-branches\" is _a good thing_.  If it\n   doesn't deserve to be \"this is the list of often used commands\" given\n   by \"git help\", it shouldn't be in (an early part of) Everyday either.\n\n - I think the \"git help\" list and \"Everyday\" document should serve the\n   same purpose for two classes of audiences, ones that prefer online vs\n   ones that prefer offline.  \"Repository Maintenance\" are pushed down in\n   the Everyday document as they are sometimes needed but should not be\n   necessary in \"Everyday\" operation.  I think it may be a good idea to\n   stop generate-cmdlist.sh early before reading Everyday to the end,\n   which would cut the cruft from \"git help\" output.\n\n - I do not necessarily agree with your notion that \"git help\" output is\n   for \"someone trying to see where to start\".  To me, it is primarily to\n   serve as a reminder for people who have been casually using git for\n   some time (i.e. \"I know what I do but I don't offhand recall how it is\n   spelled\").  Not everybody will stay as a newbie.\n\nI think the last point is the crux of disagreement between us.  You have\nbeen in the \"git teaching\" business for a long time, and I am very much\nwilling to be pursuaded, together with other participants on the list.\n"}]}