{"thread":{"id":"38443","subject":"[GUILT 0/5] doc: less guilt-foo invocations, minor Makefile fixes","startedAt":"2015-01-23T13:24:54Z","lastAt":"2015-01-23T14:36:14Z","messageCount":13,"participants":["Per Cederqvist","Jeff Sipek"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"255183","messageId":"1422019499-2012-1-git-send-email-cederp@opera.com","threadId":"38443","inReplyTo":null,"subject":"[GUILT 0/5] doc: less guilt-foo invocations, minor Makefile fixes","fromName":"Per Cederqvist","fromEmail":"cederp@opera.com","sentAt":"2015-01-23T13:24:54Z","receivedAt":"2015-01-23T13:24:54Z","isPatch":false,"sender":{"key":"cederp@opera.com","avatar":"https://gravatar.com/avatar/008fe28caedea0ba34042cd5157705267934f4ba7a9b29fb248ae18ec5b3055e?d=mp&s=160"},"body":"guilt no longer supports running commands on the \"guilt-add\" form.\nYou need to use \"guilt add\" instead.\n\nThis patch series updates most of the documentation to use the\nsupported \"guilt add\" form.\n\nThere is one known instance where I did not change the style: in the\nNAME section in Documentation/guilt-*.txt.  The reason is that if I\nchange it there, xmlto will create the man pages as e.g. guilt_add.1\ninstead of guilt-add.1, and I don't know how to fix that.  Also, the\ngit man pages (as of Git 2.1.0) still have \"git-add\" under the NAME\nheading of git-add(1), so it might be wise to follow suite.\n\nWhile working on this, I also found two minor issues with\nDocumentation/Makefile.\n\n    /ceder\n\nPer Cederqvist (5):\n  Fix generation of Documentation/usage-%.txt.\n  doc: guilt.xml depends on cmds.txt.\n  doc: don't use guilt-foo invocations in examples.\n  doc: don't use guilt-foo invocations in usage messages.\n  doc: git doesn't use git-foo invocations.\n\n Documentation/.gitignore        | 3 +++\n Documentation/Makefile          | 6 ++++--\n Documentation/guilt-add.txt     | 4 ++--\n Documentation/guilt-delete.txt  | 2 +-\n Documentation/guilt-diff.txt    | 2 +-\n Documentation/guilt-help.txt    | 4 ++--\n Documentation/guilt-new.txt     | 6 +++---\n Documentation/guilt-refresh.txt | 2 +-\n Documentation/guilt-repair.txt  | 2 +-\n Documentation/guilt-rm.txt      | 2 +-\n Documentation/guilt-select.txt  | 4 ++--\n Documentation/usage.sh          | 8 +++-----\n 12 files changed, 24 insertions(+), 21 deletions(-)\n\n-- \n2.1.0\n"},{"id":"255184","messageId":"1422019499-2012-2-git-send-email-cederp@opera.com","threadId":"38443","inReplyTo":"1422019499-2012-1-git-send-email-cederp@opera.com","subject":"[GUILT 1/5] Fix generation of Documentation/usage-%.txt.","fromName":"Per Cederqvist","fromEmail":"cederp@opera.com","sentAt":"2015-01-23T13:24:55Z","receivedAt":"2015-01-23T13:24:55Z","isPatch":false,"sender":{"key":"cederp@opera.com","avatar":"https://gravatar.com/avatar/008fe28caedea0ba34042cd5157705267934f4ba7a9b29fb248ae18ec5b3055e?d=mp&s=160"},"body":"The old rule worked, most of the time, but had several issues:\n\n - It depended on the corresponding guilt-*.txt file, but the usage.sh\n   script actually reads ../guilt-foo.\n\n - Actually, each usage-%.txt depended on all guilt-*.txt files, so\n   make had to do more work than necessary if a single file was\n   altered.\n\n - The construct broke parallel make, which would spawn several\n   usage.sh at once.  This leads to unnecessary work, and could\n   potentially result in broken usage files if the \"echo some_string >\n   some_file\" construct used by usage.sh isn't atomic.\n\nFixed by letting the usage.sh script update a single file, and writing\na proper implicit make rule.  This makes parallel make work a lot\nbetter.\n\nThere is a small downside, though, as usage.sh will now be run once\nfor each command (if everything is regenerated).  I think it is worth\nto pay that price to get the correctness.  This command is still very\nfast compared to the docbook processing.\n\nSigned-off-by: Per Cederqvist <cederp@opera.com>\n---\n Documentation/Makefile | 4 ++--\n Documentation/usage.sh | 8 +++-----\n 2 files changed, 5 insertions(+), 7 deletions(-)\n\ndiff --git a/Documentation/Makefile b/Documentation/Makefile\nindex b6c3285..ec3c9e8 100644\n--- a/Documentation/Makefile\n+++ b/Documentation/Makefile\n@@ -66,8 +66,8 @@ clean:\n \trm -f usage-*.txt\n \trm -f version.txt\n \n-usage-%.txt: $(MAN1_TXT) usage.sh\n-\tsh ./usage.sh\n+usage-guilt-%.txt: ../guilt-% usage.sh\n+\tsh ./usage.sh $<\n \n %.html : %.txt footer.txt version.txt\n \t$(ASCIIDOC) -b xhtml11 -d manpage -f asciidoc.conf $(ASCIIDOC_EXTRA) $<\ndiff --git a/Documentation/usage.sh b/Documentation/usage.sh\nindex 20fdca4..629f546 100644\n--- a/Documentation/usage.sh\n+++ b/Documentation/usage.sh\n@@ -1,7 +1,5 @@\n #!/bin/sh\n \n-for i in `ls ../guilt-*`; do\n-\tname=$(basename $i)\n-\tu=$(grep USAGE $i |  sed 's/USAGE=\"//' | sed 's/\"$//') \n-\techo \"'$name' $u\"  > usage-$name.txt\n-done\n+name=$(basename $1)\n+u=$(grep USAGE $1 |  sed 's/USAGE=\"//' | sed 's/\"$//') \n+echo \"'$name' $u\"  > usage-$name.txt\n-- \n2.1.0\n"},{"id":"255185","messageId":"1422019499-2012-3-git-send-email-cederp@opera.com","threadId":"38443","inReplyTo":"1422019499-2012-1-git-send-email-cederp@opera.com","subject":"[GUILT 2/5] doc: guilt.xml depends on cmds.txt.","fromName":"Per Cederqvist","fromEmail":"cederp@opera.com","sentAt":"2015-01-23T13:24:56Z","receivedAt":"2015-01-23T13:24:56Z","isPatch":false,"sender":{"key":"cederp@opera.com","avatar":"https://gravatar.com/avatar/008fe28caedea0ba34042cd5157705267934f4ba7a9b29fb248ae18ec5b3055e?d=mp&s=160"},"body":"Specify an explicit dependency, to stop make from trying to generate\nguilt.xml if cmds.txt could not be created.  The asciidoc will fail\nand produce an error message that might hide the original error\nmessage.\n\nThe added dependency causes make to not remove the guilt.xml file.\nAdd *.xml to .gitignore.\n\nSigned-off-by: Per Cederqvist <cederp@opera.com>\n---\n Documentation/.gitignore | 3 +++\n Documentation/Makefile   | 2 ++\n 2 files changed, 5 insertions(+)\n\ndiff --git a/Documentation/.gitignore b/Documentation/.gitignore\nindex c4f0588..9b8d4da 100644\n--- a/Documentation/.gitignore\n+++ b/Documentation/.gitignore\n@@ -11,3 +11,6 @@ version.txt\n \n # Generated file dependency list\n doc.dep\n+\n+# Intermediate generated files\n+*.xml\ndiff --git a/Documentation/Makefile b/Documentation/Makefile\nindex ec3c9e8..2574125 100644\n--- a/Documentation/Makefile\n+++ b/Documentation/Makefile\n@@ -60,6 +60,8 @@ cmds.txt: cmd-list.sh $(MAN1_TXT)\n \n guilt.7 guilt.html: guilt.txt footer.txt version.txt\n \n+guilt.xml: cmds.txt\n+\n clean:\n \trm -f *.xml *.html *.1 *.7 doc.dep\n \trm -f cmds.txt\n-- \n2.1.0\n"},{"id":"255186","messageId":"1422019499-2012-4-git-send-email-cederp@opera.com","threadId":"38443","inReplyTo":"1422019499-2012-1-git-send-email-cederp@opera.com","subject":"[GUILT 3/5] doc: don't use guilt-foo invocations in examples.","fromName":"Per Cederqvist","fromEmail":"cederp@opera.com","sentAt":"2015-01-23T13:24:57Z","receivedAt":"2015-01-23T13:24:57Z","isPatch":false,"sender":{"key":"cederp@opera.com","avatar":"https://gravatar.com/avatar/008fe28caedea0ba34042cd5157705267934f4ba7a9b29fb248ae18ec5b3055e?d=mp&s=160"},"body":"Note: there is one place where I replace guilt-repair with \"guilt\nrepair\" instead of \"+guilt repair+\".  At least the version of docbook\nI'm using mishandles the \"+\" signs in that particular spot (even\nthough it works properly for \"+guilt select+\" in another file.  I know\ntoo little docbook to be able to find the cause.\n\nSigned-off-by: Per Cederqvist <cederp@opera.com>\n---\n Documentation/guilt-add.txt    | 2 +-\n Documentation/guilt-delete.txt | 2 +-\n Documentation/guilt-diff.txt   | 2 +-\n Documentation/guilt-help.txt   | 4 ++--\n Documentation/guilt-new.txt    | 6 +++---\n Documentation/guilt-repair.txt | 2 +-\n Documentation/guilt-select.txt | 4 ++--\n 7 files changed, 11 insertions(+), 11 deletions(-)\n\ndiff --git a/Documentation/guilt-add.txt b/Documentation/guilt-add.txt\nindex 6d2785a..a276f09 100644\n--- a/Documentation/guilt-add.txt\n+++ b/Documentation/guilt-add.txt\n@@ -24,7 +24,7 @@ EXAMPLES\n Create and add a new file example.c\n \n \t$ touch example.c\n-\t$ guilt-add example.c\n+\t$ guilt add example.c\n \n Author\n ------\ndiff --git a/Documentation/guilt-delete.txt b/Documentation/guilt-delete.txt\nindex ef57dc6..4e8c28c 100644\n--- a/Documentation/guilt-delete.txt\n+++ b/Documentation/guilt-delete.txt\n@@ -25,7 +25,7 @@ EXAMPLES\n --------\n Delete a patch called 'foobar':\n \n-\t$ guilt-delete foobar\n+\t$ guilt delete foobar\n \n Author\n ------\ndiff --git a/Documentation/guilt-diff.txt b/Documentation/guilt-diff.txt\nindex 986ceca..0ee062c 100644\n--- a/Documentation/guilt-diff.txt\n+++ b/Documentation/guilt-diff.txt\n@@ -18,7 +18,7 @@ OPTIONS\n -------\n -z::\n \tOutput a interdiff against the top-most applied patch. This should\n-\tproduce the same diff as \"+guilt-new -f foo+\".\n+\tproduce the same diff as \"+guilt new -f foo+\".\n \n <path>...::\n \tRestrict diff output to a given set of files.\ndiff --git a/Documentation/guilt-help.txt b/Documentation/guilt-help.txt\nindex ed6a5cf..df0e0fb 100644\n--- a/Documentation/guilt-help.txt\n+++ b/Documentation/guilt-help.txt\n@@ -18,11 +18,11 @@ EXAMPLES\n \n Open the guilt-status man page \n \n-\t$ guilt-help status\n+\t$ guilt help status\n \n Open the guilt man page \n \n-\t$ guilt-help\n+\t$ guilt help\n \n Author\n ------\ndiff --git a/Documentation/guilt-new.txt b/Documentation/guilt-new.txt\nindex a2c8a4c..698dcb7 100644\n--- a/Documentation/guilt-new.txt\n+++ b/Documentation/guilt-new.txt\n@@ -42,16 +42,16 @@ EXAMPLES\n \n Create a new patch called 'foobar':\n \n-\t$ guilt-new foobar\n+\t$ guilt new foobar\n \n Create a patch called 'foo' and supply a patch description interactively:\n \n-\t$ guilt-new -e foo\n+\t$ guilt new -e foo\n \n Create a patch called 'bar' with a provided patch description and sign off\n on the patch:\n \n-\t$ guilt-new -s -m patch-fu bar\n+\t$ guilt new -s -m patch-fu bar\n \n Author\n ------\ndiff --git a/Documentation/guilt-repair.txt b/Documentation/guilt-repair.txt\nindex 4aa472b..4faf113 100644\n--- a/Documentation/guilt-repair.txt\n+++ b/Documentation/guilt-repair.txt\n@@ -22,7 +22,7 @@ Perform various repository repairs. You must specify one mode of repair:\n \tWARNING: Running this command may result in commits and working\n \tdirectory changes being lost. You may want to create a new reference\n \t(e.g., branch, or reflog) to the original HEAD before using\n-\tguilt-repair.\n+\t\"guilt repair\".\n \n --status::\n \tUpgrade the status file from old format to new.\ndiff --git a/Documentation/guilt-select.txt b/Documentation/guilt-select.txt\nindex f7fb5f7..dd5833e 100644\n--- a/Documentation/guilt-select.txt\n+++ b/Documentation/guilt-select.txt\n@@ -19,10 +19,10 @@ the following way:\n * An unguarded patch is always applied.\n \n * A patch with a positive guard is applied *only* if the guard is\n-selected with guilt-select.\n+selected with \"+guilt select+\".\n \n * A patch with a negative guard is applied *unless* the guard is\n-selected with guilt-select.\n+selected with \"+guilt select+\".\n \n OPTIONS\n -------\n-- \n2.1.0\n"},{"id":"255187","messageId":"1422019499-2012-5-git-send-email-cederp@opera.com","threadId":"38443","inReplyTo":"1422019499-2012-1-git-send-email-cederp@opera.com","subject":"[GUILT 4/5] doc: don't use guilt-foo invocations in usage messages.","fromName":"Per Cederqvist","fromEmail":"cederp@opera.com","sentAt":"2015-01-23T13:24:58Z","receivedAt":"2015-01-23T13:24:58Z","isPatch":false,"sender":{"key":"cederp@opera.com","avatar":"https://gravatar.com/avatar/008fe28caedea0ba34042cd5157705267934f4ba7a9b29fb248ae18ec5b3055e?d=mp&s=160"},"body":"Signed-off-by: Per Cederqvist <cederp@opera.com>\n---\n Documentation/usage.sh | 2 +-\n 1 file changed, 1 insertion(+), 1 deletion(-)\n\ndiff --git a/Documentation/usage.sh b/Documentation/usage.sh\nindex 629f546..9cc49f7\n--- a/Documentation/usage.sh\n+++ b/Documentation/usage.sh\n@@ -2,4 +2,4 @@\n \n name=$(basename $1)\n u=$(grep USAGE $1 |  sed 's/USAGE=\"//' | sed 's/\"$//') \n-echo \"'$name' $u\"  > usage-$name.txt\n+echo \"'`echo $name|sed -e 's/^guilt-/guilt /'`' $u\"  > usage-$name.txt\n-- \n2.1.0\n"},{"id":"255188","messageId":"1422019499-2012-6-git-send-email-cederp@opera.com","threadId":"38443","inReplyTo":"1422019499-2012-1-git-send-email-cederp@opera.com","subject":"[GUILT 5/5] doc: git doesn't use git-foo invocations.","fromName":"Per Cederqvist","fromEmail":"cederp@opera.com","sentAt":"2015-01-23T13:24:59Z","receivedAt":"2015-01-23T13:24:59Z","isPatch":false,"sender":{"key":"cederp@opera.com","avatar":"https://gravatar.com/avatar/008fe28caedea0ba34042cd5157705267934f4ba7a9b29fb248ae18ec5b3055e?d=mp&s=160"},"body":"Make them into reference to the man pages instead.\n\nSigned-off-by: Per Cederqvist <cederp@opera.com>\n---\n Documentation/guilt-add.txt     | 2 +-\n Documentation/guilt-refresh.txt | 2 +-\n Documentation/guilt-rm.txt      | 2 +-\n 3 files changed, 3 insertions(+), 3 deletions(-)\n\ndiff --git a/Documentation/guilt-add.txt b/Documentation/guilt-add.txt\nindex a276f09..067b6ca 100644\n--- a/Documentation/guilt-add.txt\n+++ b/Documentation/guilt-add.txt\n@@ -11,7 +11,7 @@ include::usage-guilt-add.txt[]\n \n DESCRIPTION\n -----------\n-Adds the files specified to git using git-add making it available to guilt.\n+Adds the files specified to git using git-add(1) making it available to guilt.\n \n OPTIONS\n -------\ndiff --git a/Documentation/guilt-refresh.txt b/Documentation/guilt-refresh.txt\nindex 7757bdc..98076e3 100644\n--- a/Documentation/guilt-refresh.txt\n+++ b/Documentation/guilt-refresh.txt\n@@ -23,7 +23,7 @@ OPTIONS\n Include a diffstat output in the patch file. Useful for cases where\n patches will be submitted with other tools.\n +\n-If the command line option is omitted, the corresponding git-config\n+If the command line option is omitted, the corresponding git-config(1)\n option \"guilt.diffstat\" will be queried. So this would enable diffstat\n output by default:\n \ndiff --git a/Documentation/guilt-rm.txt b/Documentation/guilt-rm.txt\nindex 71b49fe..cfe471e 100644\n--- a/Documentation/guilt-rm.txt\n+++ b/Documentation/guilt-rm.txt\n@@ -11,7 +11,7 @@ include::usage-guilt-rm.txt[]\n \n DESCRIPTION\n -----------\n-Removes the files specified from git using git-rm\n+Removes the files specified from git using git-rm(1).\n \n OPTIONS\n -------\n-- \n2.1.0\n"},{"id":"255190","messageId":"20150123142103.GA101465@meili.jeffnet.31bits.net","threadId":"38443","inReplyTo":"1422019499-2012-2-git-send-email-cederp@opera.com","subject":"Re: [GUILT 1/5] Fix generation of Documentation/usage-%.txt.","fromName":"Jeff Sipek","fromEmail":"jeffpc@josefsipek.net","sentAt":"2015-01-23T14:21:03Z","receivedAt":"2015-01-23T14:21:03Z","isPatch":false,"sender":{"key":"jeffpc@josefsipek.net","avatar":null},"body":"On Fri, Jan 23, 2015 at 02:24:55PM +0100, Per Cederqvist wrote:\n> The old rule worked, most of the time, but had several issues:\n> \n>  - It depended on the corresponding guilt-*.txt file, but the usage.sh\n>    script actually reads ../guilt-foo.\n> \n>  - Actually, each usage-%.txt depended on all guilt-*.txt files, so\n>    make had to do more work than necessary if a single file was\n>    altered.\n> \n>  - The construct broke parallel make, which would spawn several\n>    usage.sh at once.  This leads to unnecessary work, and could\n>    potentially result in broken usage files if the \"echo some_string >\n>    some_file\" construct used by usage.sh isn't atomic.\n>\n> Fixed by letting the usage.sh script update a single file, and writing\n> a proper implicit make rule.  This makes parallel make work a lot\n> better.\n\nNice!\n\n> There is a small downside, though, as usage.sh will now be run once\n> for each command (if everything is regenerated).  I think it is worth\n> to pay that price to get the correctness.  This command is still very\n> fast compared to the docbook processing.\n\nGiven how much simple usage.sh got, I'm thinking it might be worth it to\njust remove it, and just shove the rule into the makefile itself.\n\nOk, I tried to write it.  I came up with the following.  (Note: I have *not*\ntested it.)  It's not *that* ugly.\n\nusage-guilt-%.txt: ../guilt-% usage.sh\n\techo \"'$(basename $<)' `sed -n -e '/^USAGE=/{s/USAGE=\"//; s/\"$//; p; q}' $<`\" > $@\n\nWhat do you think?  Too opaque?  Your change looks good.\n\nJeff.\n\n> Signed-off-by: Per Cederqvist <cederp@opera.com>\n> ---\n>  Documentation/Makefile | 4 ++--\n>  Documentation/usage.sh | 8 +++-----\n>  2 files changed, 5 insertions(+), 7 deletions(-)\n> \n> diff --git a/Documentation/Makefile b/Documentation/Makefile\n> index b6c3285..ec3c9e8 100644\n> --- a/Documentation/Makefile\n> +++ b/Documentation/Makefile\n> @@ -66,8 +66,8 @@ clean:\n>  \trm -f usage-*.txt\n>  \trm -f version.txt\n>  \n> -usage-%.txt: $(MAN1_TXT) usage.sh\n> -\tsh ./usage.sh\n> +usage-guilt-%.txt: ../guilt-% usage.sh\n> +\tsh ./usage.sh $<\n>\n>  %.html : %.txt footer.txt version.txt\n>  \t$(ASCIIDOC) -b xhtml11 -d manpage -f asciidoc.conf $(ASCIIDOC_EXTRA) $<\n> diff --git a/Documentation/usage.sh b/Documentation/usage.sh\n> index 20fdca4..629f546 100644\n> --- a/Documentation/usage.sh\n> +++ b/Documentation/usage.sh\n> @@ -1,7 +1,5 @@\n>  #!/bin/sh\n>  \n> -for i in `ls ../guilt-*`; do\n> -\tname=$(basename $i)\n> -\tu=$(grep USAGE $i |  sed 's/USAGE=\"//' | sed 's/\"$//') \n> -\techo \"'$name' $u\"  > usage-$name.txt\n> -done\n> +name=$(basename $1)\n> +u=$(grep USAGE $1 |  sed 's/USAGE=\"//' | sed 's/\"$//') \n> +echo \"'$name' $u\"  > usage-$name.txt\n> -- \n> 2.1.0\n> \n\n-- \nThe reasonable man adapts himself to the world; the unreasonable one\npersists in trying to adapt the world to himself. Therefore all progress\ndepends on the unreasonable man.\n\t\t- George Bernard Shaw\n"},{"id":"255194","messageId":"20150123142304.GB101465@meili.jeffnet.31bits.net","threadId":"38443","inReplyTo":"1422019499-2012-3-git-send-email-cederp@opera.com","subject":"Re: [GUILT 2/5] doc: guilt.xml depends on cmds.txt.","fromName":"Jeff Sipek","fromEmail":"jeffpc@josefsipek.net","sentAt":"2015-01-23T14:23:05Z","receivedAt":"2015-01-23T14:23:05Z","isPatch":false,"sender":{"key":"jeffpc@josefsipek.net","avatar":null},"body":"Signed-off-by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net>\n\nOn Fri, Jan 23, 2015 at 02:24:56PM +0100, Per Cederqvist wrote:\n> Specify an explicit dependency, to stop make from trying to generate\n> guilt.xml if cmds.txt could not be created.  The asciidoc will fail\n> and produce an error message that might hide the original error\n> message.\n> \n> The added dependency causes make to not remove the guilt.xml file.\n> Add *.xml to .gitignore.\n> \n> Signed-off-by: Per Cederqvist <cederp@opera.com>\n> ---\n>  Documentation/.gitignore | 3 +++\n>  Documentation/Makefile   | 2 ++\n>  2 files changed, 5 insertions(+)\n> \n> diff --git a/Documentation/.gitignore b/Documentation/.gitignore\n> index c4f0588..9b8d4da 100644\n> --- a/Documentation/.gitignore\n> +++ b/Documentation/.gitignore\n> @@ -11,3 +11,6 @@ version.txt\n>  \n>  # Generated file dependency list\n>  doc.dep\n> +\n> +# Intermediate generated files\n> +*.xml\n> diff --git a/Documentation/Makefile b/Documentation/Makefile\n> index ec3c9e8..2574125 100644\n> --- a/Documentation/Makefile\n> +++ b/Documentation/Makefile\n> @@ -60,6 +60,8 @@ cmds.txt: cmd-list.sh $(MAN1_TXT)\n>  \n>  guilt.7 guilt.html: guilt.txt footer.txt version.txt\n>  \n> +guilt.xml: cmds.txt\n> +\n>  clean:\n>  \trm -f *.xml *.html *.1 *.7 doc.dep\n>  \trm -f cmds.txt\n> -- \n> 2.1.0\n> \n\n-- \nThe obvious mathematical breakthrough would be development of an easy way to\nfactor large prime numbers.\n\t\t- Bill Gates, The Road Ahead, pg. 265\n"},{"id":"255195","messageId":"20150123142545.GC101465@meili.jeffnet.31bits.net","threadId":"38443","inReplyTo":"1422019499-2012-4-git-send-email-cederp@opera.com","subject":"Re: [GUILT 3/5] doc: don't use guilt-foo invocations in examples.","fromName":"Jeff Sipek","fromEmail":"jeffpc@josefsipek.net","sentAt":"2015-01-23T14:25:45Z","receivedAt":"2015-01-23T14:25:45Z","isPatch":false,"sender":{"key":"jeffpc@josefsipek.net","avatar":null},"body":"On Fri, Jan 23, 2015 at 02:24:57PM +0100, Per Cederqvist wrote:\n> Note: there is one place where I replace guilt-repair with \"guilt\n> repair\" instead of \"+guilt repair+\".  At least the version of docbook\n> I'm using mishandles the \"+\" signs in that particular spot (even\n> though it works properly for \"+guilt select+\" in another file.  I know\n> too little docbook to be able to find the cause.\n\nYeah, a bit of a mystery to me too.  Regardless,\n\nSigned-off-by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net>\n\n\n> Signed-off-by: Per Cederqvist <cederp@opera.com>\n> ---\n>  Documentation/guilt-add.txt    | 2 +-\n>  Documentation/guilt-delete.txt | 2 +-\n>  Documentation/guilt-diff.txt   | 2 +-\n>  Documentation/guilt-help.txt   | 4 ++--\n>  Documentation/guilt-new.txt    | 6 +++---\n>  Documentation/guilt-repair.txt | 2 +-\n>  Documentation/guilt-select.txt | 4 ++--\n>  7 files changed, 11 insertions(+), 11 deletions(-)\n> \n> diff --git a/Documentation/guilt-add.txt b/Documentation/guilt-add.txt\n> index 6d2785a..a276f09 100644\n> --- a/Documentation/guilt-add.txt\n> +++ b/Documentation/guilt-add.txt\n> @@ -24,7 +24,7 @@ EXAMPLES\n>  Create and add a new file example.c\n>  \n>  \t$ touch example.c\n> -\t$ guilt-add example.c\n> +\t$ guilt add example.c\n>  \n>  Author\n>  ------\n> diff --git a/Documentation/guilt-delete.txt b/Documentation/guilt-delete.txt\n> index ef57dc6..4e8c28c 100644\n> --- a/Documentation/guilt-delete.txt\n> +++ b/Documentation/guilt-delete.txt\n> @@ -25,7 +25,7 @@ EXAMPLES\n>  --------\n>  Delete a patch called 'foobar':\n>  \n> -\t$ guilt-delete foobar\n> +\t$ guilt delete foobar\n>  \n>  Author\n>  ------\n> diff --git a/Documentation/guilt-diff.txt b/Documentation/guilt-diff.txt\n> index 986ceca..0ee062c 100644\n> --- a/Documentation/guilt-diff.txt\n> +++ b/Documentation/guilt-diff.txt\n> @@ -18,7 +18,7 @@ OPTIONS\n>  -------\n>  -z::\n>  \tOutput a interdiff against the top-most applied patch. This should\n> -\tproduce the same diff as \"+guilt-new -f foo+\".\n> +\tproduce the same diff as \"+guilt new -f foo+\".\n>  \n>  <path>...::\n>  \tRestrict diff output to a given set of files.\n> diff --git a/Documentation/guilt-help.txt b/Documentation/guilt-help.txt\n> index ed6a5cf..df0e0fb 100644\n> --- a/Documentation/guilt-help.txt\n> +++ b/Documentation/guilt-help.txt\n> @@ -18,11 +18,11 @@ EXAMPLES\n>  \n>  Open the guilt-status man page \n>  \n> -\t$ guilt-help status\n> +\t$ guilt help status\n>  \n>  Open the guilt man page \n>  \n> -\t$ guilt-help\n> +\t$ guilt help\n>  \n>  Author\n>  ------\n> diff --git a/Documentation/guilt-new.txt b/Documentation/guilt-new.txt\n> index a2c8a4c..698dcb7 100644\n> --- a/Documentation/guilt-new.txt\n> +++ b/Documentation/guilt-new.txt\n> @@ -42,16 +42,16 @@ EXAMPLES\n>  \n>  Create a new patch called 'foobar':\n>  \n> -\t$ guilt-new foobar\n> +\t$ guilt new foobar\n>  \n>  Create a patch called 'foo' and supply a patch description interactively:\n>  \n> -\t$ guilt-new -e foo\n> +\t$ guilt new -e foo\n>  \n>  Create a patch called 'bar' with a provided patch description and sign off\n>  on the patch:\n>  \n> -\t$ guilt-new -s -m patch-fu bar\n> +\t$ guilt new -s -m patch-fu bar\n>  \n>  Author\n>  ------\n> diff --git a/Documentation/guilt-repair.txt b/Documentation/guilt-repair.txt\n> index 4aa472b..4faf113 100644\n> --- a/Documentation/guilt-repair.txt\n> +++ b/Documentation/guilt-repair.txt\n> @@ -22,7 +22,7 @@ Perform various repository repairs. You must specify one mode of repair:\n>  \tWARNING: Running this command may result in commits and working\n>  \tdirectory changes being lost. You may want to create a new reference\n>  \t(e.g., branch, or reflog) to the original HEAD before using\n> -\tguilt-repair.\n> +\t\"guilt repair\".\n>  \n>  --status::\n>  \tUpgrade the status file from old format to new.\n> diff --git a/Documentation/guilt-select.txt b/Documentation/guilt-select.txt\n> index f7fb5f7..dd5833e 100644\n> --- a/Documentation/guilt-select.txt\n> +++ b/Documentation/guilt-select.txt\n> @@ -19,10 +19,10 @@ the following way:\n>  * An unguarded patch is always applied.\n>  \n>  * A patch with a positive guard is applied *only* if the guard is\n> -selected with guilt-select.\n> +selected with \"+guilt select+\".\n>  \n>  * A patch with a negative guard is applied *unless* the guard is\n> -selected with guilt-select.\n> +selected with \"+guilt select+\".\n>  \n>  OPTIONS\n>  -------\n> -- \n> 2.1.0\n> \n\n-- \nmainframe, n.:\n  An obsolete device still used by thousands of obsolete companies serving\n  billions of obsolete customers and making huge obsolete profits for their\n  obsolete shareholders. And this year's run twice as fast as last year's.\n"},{"id":"255196","messageId":"20150123142731.GD101465@meili.jeffnet.31bits.net","threadId":"38443","inReplyTo":"1422019499-2012-5-git-send-email-cederp@opera.com","subject":"Re: [GUILT 4/5] doc: don't use guilt-foo invocations in usage messages.","fromName":"Jeff Sipek","fromEmail":"jeffpc@josefsipek.net","sentAt":"2015-01-23T14:27:31Z","receivedAt":"2015-01-23T14:27:31Z","isPatch":false,"sender":{"key":"jeffpc@josefsipek.net","avatar":null},"body":"Ah, I see you changed usage.sh here.  I guess that kinda invalidates my\ncomment for patch 1/5.\n\nOn Fri, Jan 23, 2015 at 02:24:58PM +0100, Per Cederqvist wrote:\n> Signed-off-by: Per Cederqvist <cederp@opera.com>\n> ---\n>  Documentation/usage.sh | 2 +-\n>  1 file changed, 1 insertion(+), 1 deletion(-)\n> \n> diff --git a/Documentation/usage.sh b/Documentation/usage.sh\n> index 629f546..9cc49f7\n> --- a/Documentation/usage.sh\n> +++ b/Documentation/usage.sh\n> @@ -2,4 +2,4 @@\n>  \n>  name=$(basename $1)\n>  u=$(grep USAGE $1 |  sed 's/USAGE=\"//' | sed 's/\"$//') \n> -echo \"'$name' $u\"  > usage-$name.txt\n> +echo \"'`echo $name|sed -e 's/^guilt-/guilt /'`' $u\"  > usage-$name.txt\n\nTiny nitpick: spaces around the |, otherwise looks good.\n\nSigned-off-by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net>\n\n\n> -- \n> 2.1.0\n> \n\n-- \nSi hoc legere scis nimium eruditionis habes.\n"},{"id":"255197","messageId":"20150123142911.GE101465@meili.jeffnet.31bits.net","threadId":"38443","inReplyTo":"1422019499-2012-6-git-send-email-cederp@opera.com","subject":"Re: [GUILT 5/5] doc: git doesn't use git-foo invocations.","fromName":"Jeff Sipek","fromEmail":"jeffpc@josefsipek.net","sentAt":"2015-01-23T14:29:12Z","receivedAt":"2015-01-23T14:29:12Z","isPatch":false,"sender":{"key":"jeffpc@josefsipek.net","avatar":null},"body":"Signed-off-by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net>\n\nOn Fri, Jan 23, 2015 at 02:24:59PM +0100, Per Cederqvist wrote:\n> Make them into reference to the man pages instead.\n> \n> Signed-off-by: Per Cederqvist <cederp@opera.com>\n> ---\n>  Documentation/guilt-add.txt     | 2 +-\n>  Documentation/guilt-refresh.txt | 2 +-\n>  Documentation/guilt-rm.txt      | 2 +-\n>  3 files changed, 3 insertions(+), 3 deletions(-)\n> \n> diff --git a/Documentation/guilt-add.txt b/Documentation/guilt-add.txt\n> index a276f09..067b6ca 100644\n> --- a/Documentation/guilt-add.txt\n> +++ b/Documentation/guilt-add.txt\n> @@ -11,7 +11,7 @@ include::usage-guilt-add.txt[]\n>  \n>  DESCRIPTION\n>  -----------\n> -Adds the files specified to git using git-add making it available to guilt.\n> +Adds the files specified to git using git-add(1) making it available to guilt.\n>  \n>  OPTIONS\n>  -------\n> diff --git a/Documentation/guilt-refresh.txt b/Documentation/guilt-refresh.txt\n> index 7757bdc..98076e3 100644\n> --- a/Documentation/guilt-refresh.txt\n> +++ b/Documentation/guilt-refresh.txt\n> @@ -23,7 +23,7 @@ OPTIONS\n>  Include a diffstat output in the patch file. Useful for cases where\n>  patches will be submitted with other tools.\n>  +\n> -If the command line option is omitted, the corresponding git-config\n> +If the command line option is omitted, the corresponding git-config(1)\n>  option \"guilt.diffstat\" will be queried. So this would enable diffstat\n>  output by default:\n>  \n> diff --git a/Documentation/guilt-rm.txt b/Documentation/guilt-rm.txt\n> index 71b49fe..cfe471e 100644\n> --- a/Documentation/guilt-rm.txt\n> +++ b/Documentation/guilt-rm.txt\n> @@ -11,7 +11,7 @@ include::usage-guilt-rm.txt[]\n>  \n>  DESCRIPTION\n>  -----------\n> -Removes the files specified from git using git-rm\n> +Removes the files specified from git using git-rm(1).\n>  \n>  OPTIONS\n>  -------\n> -- \n> 2.1.0\n> \n\n-- \nThe obvious mathematical breakthrough would be development of an easy way to\nfactor large prime numbers.\n\t\t- Bill Gates, The Road Ahead, pg. 265\n"},{"id":"255198","messageId":"CAP=KgsSMT7Wniek1FgRGkrxa9+45hxcDtE-C1B4sQMvUviKJ1g@mail.gmail.com","threadId":"38443","inReplyTo":"20150123142103.GA101465@meili.jeffnet.31bits.net","subject":"Re: [GUILT 1/5] Fix generation of Documentation/usage-%.txt.","fromName":"Per Cederqvist","fromEmail":"cederp@opera.com","sentAt":"2015-01-23T14:33:03Z","receivedAt":"2015-01-23T14:33:03Z","isPatch":false,"sender":{"key":"cederp@opera.com","avatar":"https://gravatar.com/avatar/008fe28caedea0ba34042cd5157705267934f4ba7a9b29fb248ae18ec5b3055e?d=mp&s=160"},"body":"On Fri, Jan 23, 2015 at 3:21 PM, Jeff Sipek <jeffpc@josefsipek.net> wrote:\n> On Fri, Jan 23, 2015 at 02:24:55PM +0100, Per Cederqvist wrote:\n>> The old rule worked, most of the time, but had several issues:\n>>\n>>  - It depended on the corresponding guilt-*.txt file, but the usage.sh\n>>    script actually reads ../guilt-foo.\n>>\n>>  - Actually, each usage-%.txt depended on all guilt-*.txt files, so\n>>    make had to do more work than necessary if a single file was\n>>    altered.\n>>\n>>  - The construct broke parallel make, which would spawn several\n>>    usage.sh at once.  This leads to unnecessary work, and could\n>>    potentially result in broken usage files if the \"echo some_string >\n>>    some_file\" construct used by usage.sh isn't atomic.\n>>\n>> Fixed by letting the usage.sh script update a single file, and writing\n>> a proper implicit make rule.  This makes parallel make work a lot\n>> better.\n>\n> Nice!\n>\n>> There is a small downside, though, as usage.sh will now be run once\n>> for each command (if everything is regenerated).  I think it is worth\n>> to pay that price to get the correctness.  This command is still very\n>> fast compared to the docbook processing.\n>\n> Given how much simple usage.sh got, I'm thinking it might be worth it to\n> just remove it, and just shove the rule into the makefile itself.\n>\n> Ok, I tried to write it.  I came up with the following.  (Note: I have *not*\n> tested it.)  It's not *that* ugly.\n>\n> usage-guilt-%.txt: ../guilt-% usage.sh\n>         echo \"'$(basename $<)' `sed -n -e '/^USAGE=/{s/USAGE=\"//; s/\"$//; p; q}' $<`\" > $@\n>\n> What do you think?  Too opaque?  Your change looks good.\n\nToo opaque, and not tested enough. It doesn't work, since make will\nhandle all $.  You need to write $$ instead of $ in at least one of the\nplaces.  I would stick with usage.sh, as getting the quoting right when\nyou have make, shell, subshells, and sed all at the same time is just\ntoo painful.\n\nBut it is of course up to you. You are the maintainer. :-)\n\n    /ceder\n\n> Jeff.\n>\n>> Signed-off-by: Per Cederqvist <cederp@opera.com>\n>> ---\n>>  Documentation/Makefile | 4 ++--\n>>  Documentation/usage.sh | 8 +++-----\n>>  2 files changed, 5 insertions(+), 7 deletions(-)\n>>\n>> diff --git a/Documentation/Makefile b/Documentation/Makefile\n>> index b6c3285..ec3c9e8 100644\n>> --- a/Documentation/Makefile\n>> +++ b/Documentation/Makefile\n>> @@ -66,8 +66,8 @@ clean:\n>>       rm -f usage-*.txt\n>>       rm -f version.txt\n>>\n>> -usage-%.txt: $(MAN1_TXT) usage.sh\n>> -     sh ./usage.sh\n>> +usage-guilt-%.txt: ../guilt-% usage.sh\n>> +     sh ./usage.sh $<\n>>\n>>  %.html : %.txt footer.txt version.txt\n>>       $(ASCIIDOC) -b xhtml11 -d manpage -f asciidoc.conf $(ASCIIDOC_EXTRA) $<\n>> diff --git a/Documentation/usage.sh b/Documentation/usage.sh\n>> index 20fdca4..629f546 100644\n>> --- a/Documentation/usage.sh\n>> +++ b/Documentation/usage.sh\n>> @@ -1,7 +1,5 @@\n>>  #!/bin/sh\n>>\n>> -for i in `ls ../guilt-*`; do\n>> -     name=$(basename $i)\n>> -     u=$(grep USAGE $i |  sed 's/USAGE=\"//' | sed 's/\"$//')\n>> -     echo \"'$name' $u\"  > usage-$name.txt\n>> -done\n>> +name=$(basename $1)\n>> +u=$(grep USAGE $1 |  sed 's/USAGE=\"//' | sed 's/\"$//')\n>> +echo \"'$name' $u\"  > usage-$name.txt\n>> --\n>> 2.1.0\n>>\n>\n> --\n> The reasonable man adapts himself to the world; the unreasonable one\n> persists in trying to adapt the world to himself. Therefore all progress\n> depends on the unreasonable man.\n>                 - George Bernard Shaw\n"},{"id":"255199","messageId":"20150123143614.GG101465@meili.jeffnet.31bits.net","threadId":"38443","inReplyTo":"CAP=KgsSMT7Wniek1FgRGkrxa9+45hxcDtE-C1B4sQMvUviKJ1g@mail.gmail.com","subject":"Re: [GUILT 1/5] Fix generation of Documentation/usage-%.txt.","fromName":"Jeff Sipek","fromEmail":"jeffpc@josefsipek.net","sentAt":"2015-01-23T14:36:14Z","receivedAt":"2015-01-23T14:36:14Z","isPatch":false,"sender":{"key":"jeffpc@josefsipek.net","avatar":null},"body":"On Fri, Jan 23, 2015 at 03:33:03PM +0100, Per Cederqvist wrote:\n> On Fri, Jan 23, 2015 at 3:21 PM, Jeff Sipek <jeffpc@josefsipek.net> wrote:\n> > On Fri, Jan 23, 2015 at 02:24:55PM +0100, Per Cederqvist wrote:\n> >> The old rule worked, most of the time, but had several issues:\n> >>\n> >>  - It depended on the corresponding guilt-*.txt file, but the usage.sh\n> >>    script actually reads ../guilt-foo.\n> >>\n> >>  - Actually, each usage-%.txt depended on all guilt-*.txt files, so\n> >>    make had to do more work than necessary if a single file was\n> >>    altered.\n> >>\n> >>  - The construct broke parallel make, which would spawn several\n> >>    usage.sh at once.  This leads to unnecessary work, and could\n> >>    potentially result in broken usage files if the \"echo some_string >\n> >>    some_file\" construct used by usage.sh isn't atomic.\n> >>\n> >> Fixed by letting the usage.sh script update a single file, and writing\n> >> a proper implicit make rule.  This makes parallel make work a lot\n> >> better.\n> >\n> > Nice!\n> >\n> >> There is a small downside, though, as usage.sh will now be run once\n> >> for each command (if everything is regenerated).  I think it is worth\n> >> to pay that price to get the correctness.  This command is still very\n> >> fast compared to the docbook processing.\n> >\n> > Given how much simple usage.sh got, I'm thinking it might be worth it to\n> > just remove it, and just shove the rule into the makefile itself.\n> >\n> > Ok, I tried to write it.  I came up with the following.  (Note: I have *not*\n> > tested it.)  It's not *that* ugly.\n> >\n> > usage-guilt-%.txt: ../guilt-% usage.sh\n> >         echo \"'$(basename $<)' `sed -n -e '/^USAGE=/{s/USAGE=\"//; s/\"$//; p; q}' $<`\" > $@\n> >\n> > What do you think?  Too opaque?  Your change looks good.\n> \n> Too opaque,\n\nBetween that and the other patch in the series that modifies usage.sh, your\npatch is good as is.\n\nSigned-off-by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net>\n\n> and not tested enough. It doesn't work, since make will\n> handle all $.  You need to write $$ instead of $ in at least one of the\n> places.  I would stick with usage.sh, as getting the quoting right when\n> you have make, shell, subshells, and sed all at the same time is just\n> too painful.\n\nAnd this is comming from the person that rewrote cmd/shouldfail in a way\nthat the average shell user will go \"whaaa??\" :P  (To be fair, I don't know\nof a simpler way to make cmd/shouldfail.)\n\n> But it is of course up to you. You are the maintainer. :-)\n\nHeh.\n\nJeff.\n\n-- \nReal Programmers consider \"what you see is what you get\" to be just as bad a\nconcept in Text Editors as it is in women. No, the Real Programmer wants a\n\"you asked for it, you got it\" text editor -- complicated, cryptic,\npowerful, unforgiving, dangerous.\n"}]}