From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?B?U8OpYmFzdGllbiBHdWltbWFyYQ==?= Subject: Re: [PATCH 1/2] git help: group common commands by theme Date: Fri, 01 May 2015 17:04:34 +0200 Message-ID: <55439602.6000906@gmail.com> References: <554392E2.8000206@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: QUOTED-PRINTABLE To: git@vger.kernel.org X-From: git-owner@vger.kernel.org Fri May 01 17:04:47 2015 Return-path: Envelope-to: gcvg-git-2@plane.gmane.org Received: from vger.kernel.org ([209.132.180.67]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1YoCUd-0002rd-8n for gcvg-git-2@plane.gmane.org; Fri, 01 May 2015 17:04:43 +0200 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753543AbbEAPEi convert rfc822-to-quoted-printable (ORCPT ); Fri, 1 May 2015 11:04:38 -0400 Received: from mail-wi0-f181.google.com ([209.85.212.181]:35444 "EHLO mail-wi0-f181.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751311AbbEAPEh (ORCPT ); Fri, 1 May 2015 11:04:37 -0400 Received: by widdi4 with SMTP id di4so55141538wid.0 for ; Fri, 01 May 2015 08:04:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=message-id:date:from:user-agent:mime-version:to:subject:references :in-reply-to:content-type:content-transfer-encoding; bh=tEp12N/wR6CNuvwbhPEt3M4Rmb39QxTDVV6sF3Kt1sA=; b=VzHn+Mudb1ZbLyfPAu3SyCLZi12KctN5czAP46ZZkq8DqmRtUApJFjBCTkU1zk6NYK 9LZgtDTohO4KneZmxPNYqMrM6tgj9vcfzBIECLVxpP7mAZwRrETQj1xIMH+TuWE/xOPb 2JovvT7Jpm5sts0vCO6co0gbjQRD20XE3/zkAqYwl/i7IcozXbfF4NOJ0VPQRwoFFMcV 2KHTrXlzLD0ATnY4zD8AS26Q0+Wc1bovCzTbSnXtjiPYQYuOjkAg413W/FfN93igDrT5 RmgXkEJY9pvYiu9EA+qhkEEjcFDza4z+1gNQB0XU98HwlBlyKTfzlxkKvzO7zT16WWqb GhBg== X-Received: by 10.180.187.170 with SMTP id ft10mr4906643wic.75.1430492676401; Fri, 01 May 2015 08:04:36 -0700 (PDT) Received: from [192.168.0.10] (bd231-1-88-176-208-17.fbx.proxad.net. [88.176.208.17]) by mx.google.com with ESMTPSA id c5sm7903838wjf.40.2015.05.01.08.04.35 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 01 May 2015 08:04:35 -0700 (PDT) User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.6.0 In-Reply-To: <554392E2.8000206@gmail.com> Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Archived-At: (My mistake, the patch was in 3 parts, not 4) Author: S=C3=A9bastien Guimmara Date: Fri May 1 16:25:53 2015 +0200 generate-cmdlist.sh - Add command group information for common com= mands extract the $grp shell variable from command-list.txt (eg:=20 'common-3_worktree') and add this value to the output: before/after: {"add", N_("Add file contents to the index")} {"add", N_("Add file contents to the index"), "3_worktree"} So that when 'git' is called, we can display common commands group= ed by theme instead of a less useful alphabetical order. diff --git a/generate-cmdlist.sh b/generate-cmdlist.sh index 9a4c9b9..818b2f3 100755 --- a/generate-cmdlist.sh +++ b/generate-cmdlist.sh @@ -4,19 +4,22 @@ echo "/* Automatically generated by $0 */ struct cmdname_help { char name[16]; char help[80]; + char group[20]; }; static struct cmdname_help common_cmds[] =3D {" -sed -n -e 's/^git-\([^ ]*\)[ ].* common.*/\1/p' command-list.t= xt | +sed -n -e 's/^git-\([^ ]*\)[ ].* common-\(.*\)/\1:\2/p'=20 command-list.txt | sort | -while read cmd +while read line do + cmd=3D`echo $line | cut -d ':' -f 1` + grp=3D`echo $line | cut -d ':' -f 2` sed -n ' /^NAME/,/git-'"$cmd"'/H ${ x - s/.*git-'"$cmd"' - \(.*\)/ {"'"$cmd"'", N_("\1")},/ + s/.*git-'"$cmd"' - \(.*\)/ {"'"$cmd"'", N_("\1"), "'"$grp"'"}= ,/ p }' "Documentation/git-$cmd.txt" done On 05/01/2015 04:51 PM, S=C3=A9bastien Guimmara wrote: > Hello everyone, > This is my first contribution to an open source project. > I tackled the issue found here: > https://git.wiki.kernel.org/index.php/SmallProjectsIdeas#improve_.22g= it_help.22 > Namely, format the output of 'git help' so that > the commands are grouped by theme. > Author: S=C3=A9bastien Guimmara > Date: Fri May 1 15:48:57 2015 +0200 > command-list.txt - added command groups to common commands > groups are in the form: 'x_group', > where x is a number used to order (ascending) > commands in the displayed help. > example: git-add mainporcelain common-2_worktree > diff --git a/command-list.txt b/command-list.txt > index f1eae08..b0730a2 100644 > --- a/command-list.txt > +++ b/command-list.txt > @@ -1,29 +1,29 @@ > # List of known git commands. > # command name category [deprecated] [common] > -git-add mainporcelain common > +git-add mainporcelain common-3_workt= ree > git-am mainporcelain > git-annotate ancillaryinterrogators > git-apply plumbingmanipulators > git-archimport foreignscminterface > git-archive mainporcelain > -git-bisect mainporcelain common > +git-bisect mainporcelain common-7_searc= h > git-blame ancillaryinterrogators > -git-branch mainporcelain common > +git-branch mainporcelain common-6_branc= hing > git-bundle mainporcelain > git-cat-file plumbinginterrogators > git-check-attr purehelpers > git-check-ignore purehelpers > git-check-mailmap purehelpers > -git-checkout mainporcelain common > +git-checkout mainporcelain common-6_branc= hing > git-checkout-index plumbingmanipulators > git-check-ref-format purehelpers > git-cherry ancillaryinterrogators > git-cherry-pick mainporcelain > git-citool mainporcelain > git-clean mainporcelain > -git-clone mainporcelain common > +git-clone mainporcelain common-1_init > git-column purehelpers > -git-commit mainporcelain common > +git-commit mainporcelain common-5_histo= ry > git-commit-tree plumbingmanipulators > git-config ancillarymanipulators > git-count-objects ancillaryinterrogators > @@ -35,14 +35,14 @@ git-cvsimport foreignscminterface > git-cvsserver foreignscminterface > git-daemon synchingrepositories > git-describe mainporcelain > -git-diff mainporcelain common > +git-diff mainporcelain common-5_histo= ry > git-diff-files plumbinginterrogators > git-diff-index plumbinginterrogators > git-diff-tree plumbinginterrogators > git-difftool ancillaryinterrogators > git-fast-export ancillarymanipulators > git-fast-import ancillarymanipulators > -git-fetch mainporcelain common > +git-fetch mainporcelain common-4_remot= e > git-fetch-pack synchingrepositories > git-filter-branch ancillarymanipulators > git-fmt-merge-msg purehelpers > @@ -51,7 +51,7 @@ git-format-patch mainporcelain > git-fsck ancillaryinterrogators > git-gc mainporcelain > git-get-tar-commit-id ancillaryinterrogators > -git-grep mainporcelain common > +git-grep mainporcelain common-7_searc= h > git-gui mainporcelain > git-hash-object plumbingmanipulators > git-help ancillaryinterrogators > @@ -60,17 +60,17 @@ git-http-fetch synchelpers > git-http-push synchelpers > git-imap-send foreignscminterface > git-index-pack plumbingmanipulators > -git-init mainporcelain common > +git-init mainporcelain common-1_init > git-instaweb ancillaryinterrogators > git-interpret-trailers purehelpers > gitk mainporcelain > -git-log mainporcelain common > +git-log mainporcelain common-2_info > git-ls-files plumbinginterrogators > git-ls-remote plumbinginterrogators > git-ls-tree plumbinginterrogators > git-mailinfo purehelpers > git-mailsplit purehelpers > -git-merge mainporcelain common > +git-merge mainporcelain common-6_branc= hing > git-merge-base plumbinginterrogators > git-merge-file plumbingmanipulators > git-merge-index plumbingmanipulators > @@ -79,7 +79,7 @@ git-mergetool ancillarymanipulators > git-merge-tree ancillaryinterrogators > git-mktag plumbingmanipulators > git-mktree plumbingmanipulators > -git-mv mainporcelain common > +git-mv mainporcelain common-3_workt= ree > git-name-rev plumbinginterrogators > git-notes mainporcelain > git-p4 foreignscminterface > @@ -90,11 +90,11 @@ git-parse-remote synchelpers > git-patch-id purehelpers > git-prune ancillarymanipulators > git-prune-packed plumbingmanipulators > -git-pull mainporcelain common > -git-push mainporcelain common > +git-pull mainporcelain common-4_remot= e > +git-push mainporcelain common-4_remot= e > git-quiltimport foreignscminterface > git-read-tree plumbingmanipulators > -git-rebase mainporcelain common > +git-rebase mainporcelain common-5_histo= ry > git-receive-pack synchelpers > git-reflog ancillarymanipulators > git-relink ancillarymanipulators > @@ -103,28 +103,28 @@ git-repack ancillarymanipulators > git-replace ancillarymanipulators > git-request-pull foreignscminterface > git-rerere ancillaryinterrogators > -git-reset mainporcelain common > +git-reset mainporcelain common-3_workt= ree > git-revert mainporcelain > git-rev-list plumbinginterrogators > git-rev-parse ancillaryinterrogators > -git-rm mainporcelain common > +git-rm mainporcelain common-3_workt= ree > git-send-email foreignscminterface > git-send-pack synchingrepositories > git-shell synchelpers > git-shortlog mainporcelain > -git-show mainporcelain common > +git-show mainporcelain common-2_info > git-show-branch ancillaryinterrogators > git-show-index plumbinginterrogators > git-show-ref plumbinginterrogators > git-sh-i18n purehelpers > git-sh-setup purehelpers > git-stash mainporcelain > -git-status mainporcelain common > +git-status mainporcelain common-2_info > git-stripspace purehelpers > git-submodule mainporcelain > git-svn foreignscminterface > git-symbolic-ref plumbingmanipulators > -git-tag mainporcelain common > +git-tag mainporcelain common-5_histo= ry > git-unpack-file plumbinginterrogators > git-unpack-objects plumbingmanipulators > git-update-index plumbingmanipulators >