{"thread":{"id":"2805","subject":"[PATCH] cg-completion: improve options and command listing","startedAt":"2005-12-11T19:09:31Z","lastAt":"2005-12-20T02:13:52Z","messageCount":5,"participants":["Jonas Fonseca","Ben Clifford"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"13493","messageId":"20051211190931.GF2960@diku.dk","threadId":"2805","inReplyTo":null,"subject":"[PATCH] cg-completion: improve options and command listing","fromName":"Jonas Fonseca","fromEmail":"fonseca@diku.dk","sentAt":"2005-12-11T19:09:31Z","receivedAt":"2005-12-11T19:09:31Z","isPatch":true,"sender":{"key":"fonseca@diku.dk","avatar":"https://gravatar.com/avatar/f82f3ad698717c51873b020c750a92438c820a24056dc39fe4d07baa10a92264?d=mp&s=160"},"body":"Complete help options and improve filtering for command name completion.\n\nSigned-off-by: Jonas Fonseca <fonseca@diku.dk>\n\n---\n\n The current filtering causes all sorts of garbage to be listed in the\n command listing.\n\ncommit f0535e9952f1cace89d03649e8238aca69a6df44\ntree e05dfadb63bd92ead0dc29d326065b7a797e2109\nparent 3c14cded46e110396127fc5b5e65883eb5cd60b9\nauthor Jonas Fonseca <fonseca@diku.dk> Wed, 07 Dec 2005 20:58:50 +0100\ncommitter Jonas Fonseca <fonseca@antimatter.localdomain> Wed, 07 Dec 2005 20:58:50 +0100\n\n contrib/cg-completion.bash |   25 ++++++++++++-------------\n 1 files changed, 12 insertions(+), 13 deletions(-)\n\ndiff --git a/contrib/cg-completion.bash b/contrib/cg-completion.bash\nindex 428f320..20b758f 100644\n--- a/contrib/cg-completion.bash\n+++ b/contrib/cg-completion.bash\n@@ -23,8 +23,7 @@ __cg_branches()\n \n __cg_cmdlist()\n {\n-\t(cg help && cg help tag && cg help branch && cg help admin) | grep --regexp \"cg-[^ ]* \" | sed 's/^.*\\cg-\\([^ ]*\\) .*$/\\1/' | grep -v COMMAND\n-\n+\t(cg help && cg help tag && cg help branch && cg help admin) | sed -n 's/.*cg-\\([^ ]*\\) .*/\\1/p' | sort -u\n }\n \n _cg ()\n@@ -33,17 +32,17 @@ _cg ()\n     cur=${COMP_WORDS[COMP_CWORD]}\n     COMPREPLY=()\n     if [ $COMP_CWORD -eq 1 ]; then\n-\tCOMPREPLY=( $(compgen -W \"$(__cg_cmdlist)\" -- $cur) )\n+\tCOMPREPLY=( $(compgen -W \"$(__cg_cmdlist) -h --help --version\" -- $cur) )\n     else\n \tlocal cmd=${COMP_WORDS[1]}\n \tlocal prev=${COMP_WORDS[COMP_CWORD-1]}\n-\tlocal o_help=\"-h --help\"\n+\tlocal o_help=\"-h --help --long-help\"\n \tlocal o_branch=\"-b --branch\"\n \tcase $cmd in\n \t    add)\n \t    # cg-add [-N] [-r] file...\n \t    # XXX here could generate list of files and dirs excluding .git\n-\t    opts=\"-N -r\"\n+\t    opts=\"-N -r $o_help\"\n \t    COMPREPLY=( $(compgen -d -f -W \"${opts}\" -- $cur ) )\n \t    ;;\n \n@@ -58,18 +57,18 @@ _cg ()\n \n \t    clean)\n \t    # Usage: cg-clean [-d] [-D] [-q] [-x]\n-\t    opts=\"-d -D -q -x\"\n+\t    opts=\"-d -D -q -x $o_help\"\n \t    COMPREPLY=( $(compgen -W \"${opts}\" -- $cur ) )\n \t    ;;\n \n \t    help)\n-\t    opts=\"-c\"\n+\t    opts=\"-c $o_help\"\n \t    COMPREPLY=( $(compgen -W \"$(__cg_cmdlist) ${opts}\" -- $cur) )\n \t    ;;\n \n \t    push)\n \t    # cg-push [BRANCH_NAME] [-t TAG]\n-\t    opts=\"-t\" \n+\t    opts=\"-t $o_help\" \n \t    if [ \"$prev\" = \"-t\" ]; then \n \t        COMPREPLY=( $(compgen -W \"$(__git_tags)\" -- $cur) )\n \t    else\n@@ -79,7 +78,7 @@ _cg ()\n \n \t    merge)\n \t    # cg-merge [-c] [-b BASE_COMMIT] [BRANCH_NAME]\n-\t    opts=\"-c -b\" \n+\t    opts=\"-c -b $o_help\" \n \t    if [ \"$prev\" = \"-b\" ]; then \n \t        COMPREPLY=( $(compgen -W \"$(__git_refs)\" -- $cur) )\n \t    else\n@@ -89,7 +88,7 @@ _cg ()\n \n \t    commit) \n             # cg-commit [-m MESSAGE]... [-C] [-e | -E] [-c COMMIT_ID] [FILE]\n-\t    opts=\"-m -C -e -E -c\" \n+\t    opts=\"-m -C -e -E -c $o_help\" \n \t    if [ \"$prev\" = \"-m\" ]; then \n \t\tCOMPREPLY=\"\\\"\\\"\"\n \t    elif [ \"$prev\" = \"-c\" ]; then \n@@ -101,7 +100,7 @@ _cg ()\n \n \t    diff)\n             # cg-diff [-c] [-m] [-s] [-p] [-r FROM_ID[:TO_ID]] [FILE]...\n-            opts=\"-c -m -s -p -r\"\n+            opts=\"-c -m -s -p -r $o_help\"\n \t    if [ \"$prev\" = \"-r\" ]; then \n             # TODO need some kinkiness to handle -r FROM:TO completion\n \t\tCOMPREPLY=( $(compgen -W \"$(__git_refs)\" -- $cur) )\n@@ -111,7 +110,7 @@ _cg ()\n \t    ;;\n \n \t    log)\n-            opts=\"-c -f -r -d -m -s -u --summary\"\n+            opts=\"-c -f -r -d -m -s -u --summary $o_help\"\n \t    if [ \"$prev\" = \"-r\" ]; then \n             # TODO need some kinkiness to handle -r FROM:TO completion\n \t\tCOMPREPLY=( $(compgen -W \"$(__git_refs)\" -- $cur) )\n@@ -131,7 +130,7 @@ _cg ()\n \t    ;;\n \t    switch)\n \t    # Usage: cg-switch [-f] [-n] [-r COMMIT_ID] BRANCH\n-\t    opts=\"-f -n -r\"  # TODO -r \n+\t    opts=\"-f -n -r $o_help\"  # TODO -r \n \t    COMPREPLY=( $(compgen -W \"${opts} $(__git_heads)\" -- $cur) )\n \t    ;;\n \n\n-- \nJonas Fonseca\n"},{"id":"13772","messageId":"EF827EE8-7B7A-4D19-A08D-8C67D6B74195@hawaga.org.uk","threadId":"2805","inReplyTo":"20051211190931.GF2960@diku.dk","subject":"Re: [PATCH] cg-completion: improve options and command listing","fromName":"Ben Clifford","fromEmail":"benc@hawaga.org.uk","sentAt":"2005-12-17T23:25:00Z","receivedAt":"2005-12-17T23:25:00Z","isPatch":true,"sender":{"key":"benc@hawaga.org.uk","avatar":"https://gravatar.com/avatar/c7ce083471287f8e77b69dd147f757799d1efdd740727fd7e3003f33e88be898?d=mp&s=160"},"body":"\nOn 12 Dec 2005, at 04:39, Jonas Fonseca wrote:\n\n> Complete help options and improve filtering for command name  \n> completion.\n>\n> Signed-off-by: Jonas Fonseca <fonseca@diku.dk>\n>\n\nHi. I've applied this patch to the dev branch cg-compl in my  \ngitcompletion repo.\n\nI'm interested by what you mean by 'all sorts of garbage' - it seems  \nok on my machine.\n\nBen\n\n\n> ---\n>\n>  The current filtering causes all sorts of garbage to be listed in the\n>  command listing.\n>\n> commit f0535e9952f1cace89d03649e8238aca69a6df44\n> tree e05dfadb63bd92ead0dc29d326065b7a797e2109\n> parent 3c14cded46e110396127fc5b5e65883eb5cd60b9\n> author Jonas Fonseca <fonseca@diku.dk> Wed, 07 Dec 2005 20:58:50 +0100\n> committer Jonas Fonseca <fonseca@antimatter.localdomain> Wed, 07  \n> Dec 2005 20:58:50 +0100\n\n\n\n-- \nBen • ベン • Бэн • 벤 • 班明\nhttp://www.hawaga.org.uk/ben/\nMy email is high latency but best way to contact me. Alternatively,  \nSMS number(s) at above URL.\n"},{"id":"13783","messageId":"20051218143439.GA7064@diku.dk","threadId":"2805","inReplyTo":"EF827EE8-7B7A-4D19-A08D-8C67D6B74195@hawaga.org.uk","subject":"Re: [PATCH] cg-completion: improve options and command listing","fromName":"Jonas Fonseca","fromEmail":"fonseca@diku.dk","sentAt":"2005-12-18T14:34:39Z","receivedAt":"2005-12-18T14:34:39Z","isPatch":true,"sender":{"key":"fonseca@diku.dk","avatar":"https://gravatar.com/avatar/f82f3ad698717c51873b020c750a92438c820a24056dc39fe4d07baa10a92264?d=mp&s=160"},"body":"Ben Clifford <benc@hawaga.org.uk> wrote Sun, Dec 18, 2005:\n> \n> On 12 Dec 2005, at 04:39, Jonas Fonseca wrote:\n> \n> >Complete help options and improve filtering for command name  \n> >completion.\n> >\n> >Signed-off-by: Jonas Fonseca <fonseca@diku.dk>\n> >\n> \n> Hi. I've applied this patch to the dev branch cg-compl in my  \n> gitcompletion repo.\n> \n> I'm interested by what you mean by 'all sorts of garbage' - it seems  \n> ok on my machine.\n\n~/src/cogito/cogito > __cg_cmdlist | head\n        cg-add             Add files to the GIT repository.\n        cg-clean           Clean unknown files from the working tree.\n        cg-clone           Clone a remote GIT repository.\n        cg-commit          Commit into a GIT repository.\n        cg-diff            Make a diff between two GIT trees.\n        cg-export          Exports a particular revision from a GIT repository.\n        cg-fetch           Fetch changes from a remote branch to the local GIT repository.\n        cg-help            Show help for Cogito commands.\n        cg-init            Initialize a GIT repository.\n        cg-log             Make a log of changes in a GIT branch.\n\nElse I was thinking of maybe adding --list parameter to cg-help to have\nit list all known commands.\n\n-- \nJonas Fonseca\n"},{"id":"13794","messageId":"Pine.LNX.4.60.0512190102330.13536@mundungus.clifford.ac","threadId":"2805","inReplyTo":"20051218143439.GA7064@diku.dk","subject":"Re: [PATCH] cg-completion: improve options and command listing","fromName":"Ben Clifford","fromEmail":"benc@hawaga.org.uk","sentAt":"2005-12-19T01:03:04Z","receivedAt":"2005-12-19T01:03:04Z","isPatch":true,"sender":{"key":"benc@hawaga.org.uk","avatar":"https://gravatar.com/avatar/c7ce083471287f8e77b69dd147f757799d1efdd740727fd7e3003f33e88be898?d=mp&s=160"},"body":"On Sun, 18 Dec 2005, Jonas Fonseca wrote:\n\n> Else I was thinking of maybe adding --list parameter to cg-help to have\n> it list all known commands.\n\nyeah, that would be nice.\n\n-- \nhttp://www.hawaga.org.uk/ben/\n"},{"id":"13913","messageId":"FB1B98E9-58B8-44BE-AC08-606C30A5F61A@hawaga.org.uk","threadId":"2805","inReplyTo":"20051218143439.GA7064@diku.dk","subject":"Re: [PATCH] cg-completion: improve options and command listing","fromName":"Ben Clifford","fromEmail":"benc@hawaga.org.uk","sentAt":"2005-12-20T02:13:52Z","receivedAt":"2005-12-20T02:13:52Z","isPatch":true,"sender":{"key":"benc@hawaga.org.uk","avatar":"https://gravatar.com/avatar/c7ce083471287f8e77b69dd147f757799d1efdd740727fd7e3003f33e88be898?d=mp&s=160"},"body":"\nOn 19 Dec 2005, at 00:04, Jonas Fonseca wrote:\n>>\n>> I'm interested by what you mean by 'all sorts of garbage' - it seems\n>> ok on my machine.\n>\n> ~/src/cogito/cogito > __cg_cmdlist | head\n>         cg-add             Add files to the GIT repository.\n>         cg-clean           Clean unknown files from the working tree.\n>         cg-clone           Clone a remote GIT repository.\n\nI definitely don't get that here. Bleugh!\n\n> Else I was thinking of maybe adding --list parameter to cg-help to  \n> have\n> it list all known commands.\n\nOne thing that seemed kinda neat that I saw somewhere (perhaps in  \ndarcs?) is that it will tab complete only commands that would make  \nsense in the present location (so cg <tab> would perhaps only bring  \nup 'init' and 'help' in a non-git directory) - that would be rather  \nmore invasive to implement, I expect.\n\nAnother thing that has been mooted is autogenerating the completion  \ncode based on USAGE info - I've had a hack about in the past with  \nthat (its in the autogen branch in the gitcompletion repo on  \nhawaga.org.uk) but then I reached the point where it seemed too icky  \nfor my tastes...\n\n-- \nBen • ベン • Бэн • 벤 • 班明\nhttp://www.hawaga.org.uk/ben/\nMy email is high latency but best way to contact me. Alternatively,  \nSMS number(s) at above URL.\n"}]}