git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] Documentation: revisit command qualification in git.txt
@ 2007-01-18 22:25 Nicolas Pitre
  2007-01-19  6:32 ` [PATCH] Documentation/git.txt: command re-classification Junio C Hamano
  0 siblings, 1 reply; 10+ messages in thread
From: Nicolas Pitre @ 2007-01-18 22:25 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git

In particular, the "Main porcelain commands" section should focus on the 
minimum subset of obvious commands an average user is likely to ever 
need.

Commands that are not useful on their own should definitely be in the 
plumbing section.

Signed-off-by: Nicolas Pitre <nico@cam.org>
---
diff --git a/Documentation/git.txt b/Documentation/git.txt
index a0bcef7..db83b69 100644
--- a/Documentation/git.txt
+++ b/Documentation/git.txt
@@ -102,9 +102,6 @@ gitlink:git-branch[1]::
 gitlink:git-checkout[1]::
 	Checkout and switch to a branch.
 
-gitlink:git-cherry-pick[1]::
-	Cherry-pick the effect of an existing commit.
-
 gitlink:git-clean[1]::
 	Remove untracked files from the working tree.
 
@@ -123,27 +120,28 @@ gitlink:git-fetch[1]::
 gitlink:git-format-patch[1]::
 	Prepare patches for e-mail submission.
 
+gitlink:git-gc[1]::
+	Cleanup unnecessary files and optimize the local repository.
+
 gitlink:git-grep[1]::
 	Print lines matching a pattern.
 
+gitlink:git-init[1]::
+	Creates an empty git repository, or reinitialize an
+	existing one.
+
 gitlink:gitk[1]::
 	The git repository browser.
 
 gitlink:git-log[1]::
 	Shows commit logs.
 
-gitlink:git-ls-remote[1]::
-	Shows references in a remote or local repository.
-
 gitlink:git-merge[1]::
 	Grand unified merge driver.
 
 gitlink:git-mv[1]::
 	Move or rename a file, a directory, or a symlink.
 
-gitlink:git-pack-refs[1]::
-	Pack heads and tags for efficient repository access.
-
 gitlink:git-pull[1]::
 	Fetch from and merge with a remote repository or a local branch.
 
@@ -153,9 +151,6 @@ gitlink:git-push[1]::
 gitlink:git-rebase[1]::
 	Rebase local commits to the updated upstream head.
 
-gitlink:git-repack[1]::
-	Pack unpacked objects in a repository.
-
 gitlink:git-rerere[1]::
 	Reuse recorded resolution of conflicted merges.
 
@@ -177,14 +172,11 @@ gitlink:git-shortlog[1]::
 gitlink:git-show[1]::
 	Show one commit log and its diff.
 
-gitlink:git-show-branch[1]::
-	Show branches and their commits.
-
 gitlink:git-status[1]::
 	Shows the working tree status.
 
-gitlink:git-verify-tag[1]::
-	Check the GPG signature of tag.
+gitlink:git-tag[1]::
+	Create or verify a tag object signed with GPG.
 
 gitlink:git-whatchanged[1]::
 	Shows commit logs and differences they introduce.
@@ -192,6 +184,7 @@ gitlink:git-whatchanged[1]::
 
 Ancillary Commands
 ~~~~~~~~~~~~~~~~~~
+
 Manipulators:
 
 gitlink:git-applypatch[1]::
@@ -200,6 +193,9 @@ gitlink:git-applypatch[1]::
 gitlink:git-archimport[1]::
 	Import an arch repository into git.
 
+gitlink:git-cherry-pick[1]::
+	Cherry-pick the effect of an existing commit.
+
 gitlink:git-convert-objects[1]::
 	Converts old-style git repository.
 
@@ -212,18 +208,18 @@ gitlink:git-cvsexportcommit[1]::
 gitlink:git-cvsserver[1]::
 	A CVS server emulator for git.
 
-gitlink:git-gc[1]::
-	Cleanup unnecessary files and optimize the local repository.
-
 gitlink:git-lost-found[1]::
 	Recover lost refs that luckily have not yet been pruned.
 
-gitlink:git-merge-one-file[1]::
-	The standard helper program to use with `git-merge-index`.
+gitlink:git-pack-refs[1]::
+	Pack heads and tags for efficient repository access.
 
 gitlink:git-prune[1]::
 	Prunes all unreachable objects from the object database.
 
+gitlink:git-repack[1]::
+	Pack unpacked objects in a repository.
+
 gitlink:git-quiltimport[1]::
 	Applies a quilt patchset onto the current branch.
 
@@ -239,18 +235,6 @@ gitlink:git-svn[1]::
 gitlink:git-svnimport[1]::
 	Import a SVN repository into git.
 
-gitlink:git-sh-setup[1]::
-	Common git shell script setup code.
-
-gitlink:git-symbolic-ref[1]::
-	Read and modify symbolic refs.
-
-gitlink:git-tag[1]::
-	Create or verify a tag object signed with GPG.
-
-gitlink:git-update-ref[1]::
-	Update the object name stored in a ref safely.
-
 
 Interrogators:
 
@@ -260,20 +244,14 @@ gitlink:git-annotate[1]::
 gitlink:git-blame[1]::
 	Find out where each line in a file came from.
 
-gitlink:git-check-ref-format[1]::
-	Make sure ref name is well formed.
-
 gitlink:git-cherry[1]::
 	Find commits not merged upstream.
 
-gitlink:git-count-objects[1]::
-	Count unpacked number of objects and their disk consumption.
-
-gitlink:git-daemon[1]::
-	A really simple server for git repositories.
+gitlink:git-describe[1]::
+	Show the most recent tag that is reachable from a commit.
 
-gitlink:git-fmt-merge-msg[1]::
-	Produce a merge commit message.
+gitlink:git-fsck-objects[1]::
+	Verifies the connectivity and validity of the objects in the database.
 
 gitlink:git-get-tar-commit-id[1]::
 	Extract commit ID from an archive created using git-tar-tree.
@@ -284,6 +262,9 @@ gitlink:git-imap-send[1]::
 gitlink:git-instaweb[1]::
 	Instantly browse your working repository in gitweb.
 
+gitlink:git-ls-remote[1]::
+	Shows references in a remote or local repository.
+
 gitlink:git-mailinfo[1]::
 	Extracts patch and authorship information from a single
 	e-mail message, optionally transliterating the commit
@@ -296,29 +277,17 @@ gitlink:git-mailsplit[1]::
 gitlink:git-merge-tree[1]::
 	Show three-way merge without touching index.
 
-gitlink:git-patch-id[1]::
-	Compute unique ID for a patch.
-
-gitlink:git-parse-remote[1]::
-	Routines to help parsing `$GIT_DIR/remotes/` files.
-
 gitlink:git-request-pull[1]::
 	git-request-pull.
 
-gitlink:git-rev-parse[1]::
-	Pick out and massage parameters.
-
-gitlink:git-runstatus[1]::
-	A helper for git-status and git-commit.
-
 gitlink:git-send-email[1]::
 	Send patch e-mails out of "format-patch --mbox" output.
 
-gitlink:git-symbolic-ref[1]::
-	Read and modify symbolic refs.
+gitlink:git-show-branch[1]::
+	Show branches and their commits.
 
-gitlink:git-stripspace[1]::
-	Filter out empty lines.
+gitlink:git-verify-tag[1]::
+	Check the GPG signature of tag.
 
 
 Low-level commands (plumbing)
@@ -337,6 +306,7 @@ repositories.
 
 Manipulation commands
 ~~~~~~~~~~~~~~~~~~~~~
+
 gitlink:git-apply[1]::
 	Reads a "diff -up1" or git generated patch file and
 	applies it to the working tree.
@@ -353,16 +323,15 @@ gitlink:git-hash-object[1]::
 gitlink:git-index-pack[1]::
 	Build pack idx file for an existing packed archive.
 
-gitlink:git-init[1]::
-	Creates an empty git repository, or reinitialize an
-	existing one.
-
 gitlink:git-merge-file[1]::
 	Runs a threeway merge.
 
 gitlink:git-merge-index[1]::
 	Runs a merge for files needing merging.
 
+gitlink:git-merge-one-file[1]::
+	The standard helper program to use with `git-merge-index`.
+
 gitlink:git-mktag[1]::
 	Creates a tag object.
 
@@ -381,12 +350,24 @@ gitlink:git-read-tree[1]::
 gitlink:git-repo-config[1]::
 	Get and set options in .git/config.
 
+gitlink:git-sh-setup[1]::
+	Common git shell script setup code.
+
+gitlink:git-stripspace[1]::
+	Filter out empty lines.
+
+gitlink:git-symbolic-ref[1]::
+	Read and modify symbolic refs.
+
 gitlink:git-unpack-objects[1]::
 	Unpacks objects out of a packed archive.
 
 gitlink:git-update-index[1]::
 	Registers files in the working tree to the index.
 
+gitlink:git-update-ref[1]::
+	Update the object name stored in a ref safely.
+
 gitlink:git-write-tree[1]::
 	Creates a tree from the index.
 
@@ -397,8 +378,11 @@ Interrogation commands
 gitlink:git-cat-file[1]::
 	Provide content or type/size information for repository objects.
 
-gitlink:git-describe[1]::
-	Show the most recent tag that is reachable from a commit.
+gitlink:git-check-ref-format[1]::
+	Make sure ref name is well formed.
+
+gitlink:git-count-objects[1]::
+	Count unpacked number of objects and their disk consumption.
 
 gitlink:git-diff-index[1]::
 	Compares content and mode of blobs between the index and repository.
@@ -415,8 +399,8 @@ gitlink:git-diff-tree[1]::
 gitlink:git-for-each-ref[1]::
 	Output information on each ref.
 
-gitlink:git-fsck-objects[1]::
-	Verifies the connectivity and validity of the objects in the database.
+gitlink:git-fmt-merge-msg[1]::
+	Produce a merge commit message.
 
 gitlink:git-ls-files[1]::
 	Information about files in the index and the working tree.
@@ -433,9 +417,18 @@ gitlink:git-name-rev[1]::
 gitlink:git-pack-redundant[1]::
 	Find redundant pack files.
 
+gitlink:git-patch-id[1]::
+	Compute unique ID for a patch.
+
 gitlink:git-rev-list[1]::
 	Lists commit objects in reverse chronological order.
 
+gitlink:git-rev-parse[1]::
+	Pick out and massage parameters.
+
+gitlink:git-runstatus[1]::
+	A helper for git-status and git-commit.
+
 gitlink:git-show-index[1]::
 	Displays contents of a pack idx file.
 
@@ -461,6 +454,9 @@ the working tree.
 Synching repositories
 ~~~~~~~~~~~~~~~~~~~~~
 
+gitlink:git-daemon[1]::
+	A really simple server for git repositories.
+
 gitlink:git-fetch-pack[1]::
 	Updates from a remote repository (engine for ssh and
 	local transport).
@@ -473,6 +469,9 @@ gitlink:git-local-fetch[1]::
 	Duplicates another git repository on a local system by
 	walking commit chain.
 
+gitlink:git-parse-remote[1]::
+	Routines to help parsing `$GIT_DIR/remotes/` files.
+
 gitlink:git-peek-remote[1]::
 	Lists references on a remote repository using
 	upload-pack protocol (engine for ssh and local

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH] Documentation/git.txt: command re-classification
  2007-01-18 22:25 [PATCH] Documentation: revisit command qualification in git.txt Nicolas Pitre
@ 2007-01-19  6:32 ` Junio C Hamano
  2007-01-19 22:08   ` Nicolas Pitre
  0 siblings, 1 reply; 10+ messages in thread
From: Junio C Hamano @ 2007-01-19  6:32 UTC (permalink / raw)
  To: Nicolas Pitre; +Cc: git

This adds two new classes (pure-helpers and "Interacting with
Others") to the command list in the main manual page.  The
latter class is primarily about foreign SCM interface and is
placed before low-level (plumbing) commands.

Also it promotes a handful commands to mainporcelain category
while demotes some others.

Signed-off-by: Junio C Hamano <junkio@cox.net>
---

 * I unfortunately had to drop your patch on the floor, because
   I was cooking a few patches to automate the maintenance of
   the command list (which are now in 'master' and the product is
   being served at www.kernel.org/pub/software/scm/git/docs/),
   which majorly conflicted with your work.

   So here is a counterproposal; I moved commands across groups
   after looking at what your patch did, but classified some of
   them differently.

 Documentation/Makefile      |    5 ++-
 Documentation/cmd-list.perl |   88 ++++++++++++++++++++++---------------------
 Documentation/git.txt       |   35 ++++++++++++++++-
 3 files changed, 83 insertions(+), 45 deletions(-)

diff --git a/Documentation/Makefile b/Documentation/Makefile
index 96755ad..19b2505 100644
--- a/Documentation/Makefile
+++ b/Documentation/Makefile
@@ -76,7 +76,10 @@ cmds_txt = cmds-ancillaryinterrogators.txt \
 	cmds-mainporcelain.txt \
 	cmds-plumbinginterrogators.txt \
 	cmds-plumbingmanipulators.txt \
-	cmds-synchingrepositories.txt
+	cmds-synchingrepositories.txt \
+	cmds-synchelpers.txt \
+	cmds-purehelpers.txt \
+	cmds-foreignscminterface.txt
 
 $(cmds_txt): cmd-list.perl $(MAN1_TXT) $(MAN7_TXT)
 	perl ./cmd-list.perl
diff --git a/Documentation/cmd-list.perl b/Documentation/cmd-list.perl
index 5680dcb..9443ab3 100755
--- a/Documentation/cmd-list.perl
+++ b/Documentation/cmd-list.perl
@@ -45,7 +45,10 @@ for my $cat (qw(ancillaryinterrogators
 		mainporcelain
 		plumbinginterrogators
 		plumbingmanipulators
-		synchingrepositories)) {
+		synchingrepositories
+		foreignscminterface
+		purehelpers
+		synchelpers)) {
 	my $out = "cmds-$cat.txt";
 	open O, '>', "$out+" or die "Cannot open output file $out+";
 	for (@{$cmds{$cat}}) {
@@ -60,9 +63,9 @@ git-add                                 mainporcelain
 git-am                                  mainporcelain
 git-annotate                            ancillaryinterrogators
 git-applymbox                           mainporcelain
-git-applypatch                          ancillarymanipulators
+git-applypatch                          purehelpers
 git-apply                               plumbingmanipulators
-git-archimport                          ancillarymanipulators
+git-archimport                          foreignscminterface
 git-archive                             mainporcelain
 git-bisect                              mainporcelain
 git-blame                               ancillaryinterrogators
@@ -70,7 +73,7 @@ git-branch                              mainporcelain
 git-cat-file                            plumbinginterrogators
 git-checkout-index                      plumbingmanipulators
 git-checkout                            mainporcelain
-git-check-ref-format                    ancillaryinterrogators
+git-check-ref-format                    purehelpers
 git-cherry                              ancillaryinterrogators
 git-cherry-pick                         mainporcelain
 git-clean                               mainporcelain
@@ -79,11 +82,11 @@ git-commit                              mainporcelain
 git-commit-tree                         plumbingmanipulators
 git-convert-objects                     ancillarymanipulators
 git-count-objects                       ancillaryinterrogators
-git-cvsexportcommit                     ancillarymanipulators
-git-cvsimport                           ancillarymanipulators
-git-cvsserver                           ancillarymanipulators
-git-daemon                              ancillaryinterrogators
-git-describe                            plumbinginterrogators
+git-cvsexportcommit                     foreignscminterface
+git-cvsimport                           foreignscminterface
+git-cvsserver                           foreignscminterface
+git-daemon                              synchingrepositories
+git-describe                            mainporcelain
 git-diff-files                          plumbinginterrogators
 git-diff-index                          plumbinginterrogators
 git-diff                                mainporcelain
@@ -91,34 +94,34 @@ git-diff-stages                         plumbinginterrogators
 git-diff-tree                           plumbinginterrogators
 git-fetch                               mainporcelain
 git-fetch-pack                          synchingrepositories
-git-fmt-merge-msg                       ancillaryinterrogators
+git-fmt-merge-msg                       purehelpers
 git-for-each-ref                        plumbinginterrogators
 git-format-patch                        mainporcelain
 git-fsck-objects                        plumbinginterrogators
-git-gc                                  ancillarymanipulators
+git-gc                                  mainporcelain
 git-get-tar-commit-id                   ancillaryinterrogators
 git-grep                                mainporcelain
 git-hash-object                         plumbingmanipulators
-git-http-fetch                          synchingrepositories
-git-http-push                           synchingrepositories
-git-imap-send                           ancillaryinterrogators
+git-http-fetch                          synchelpers
+git-http-push                           synchelpers
+git-imap-send                           foreignscminterface
 git-index-pack                          plumbingmanipulators
-git-init                                plumbingmanipulators
+git-init                                mainporcelain
 git-instaweb                            ancillaryinterrogators
 gitk                                    mainporcelain
 git-local-fetch                         synchingrepositories
 git-log                                 mainporcelain
 git-lost-found                          ancillarymanipulators
 git-ls-files                            plumbinginterrogators
-git-ls-remote                           mainporcelain
+git-ls-remote                           plumbinginterrogators
 git-ls-tree                             plumbinginterrogators
-git-mailinfo                            ancillaryinterrogators
-git-mailsplit                           ancillaryinterrogators
+git-mailinfo                            purehelpers
+git-mailsplit                           purehelpers
 git-merge-base                          plumbinginterrogators
 git-merge-file                          plumbingmanipulators
 git-merge-index                         plumbingmanipulators
 git-merge                               mainporcelain
-git-merge-one-file                      ancillarymanipulators
+git-merge-one-file                      purehelpers
 git-merge-tree                          ancillaryinterrogators
 git-mktag                               plumbingmanipulators
 git-mktree                              plumbingmanipulators
@@ -126,24 +129,24 @@ git-mv                                  mainporcelain
 git-name-rev                            plumbinginterrogators
 git-pack-objects                        plumbingmanipulators
 git-pack-redundant                      plumbinginterrogators
-git-pack-refs                           mainporcelain
-git-parse-remote                        ancillaryinterrogators
-git-patch-id                            ancillaryinterrogators
-git-peek-remote                         synchingrepositories
+git-pack-refs                           ancillarymanipulators
+git-parse-remote                        synchelpers
+git-patch-id                            purehelpers
+git-peek-remote                         purehelpers
 git-prune                               ancillarymanipulators
 git-prune-packed                        plumbingmanipulators
 git-pull                                mainporcelain
 git-push                                mainporcelain
-git-quiltimport                         ancillarymanipulators
+git-quiltimport                         foreignscminterface
 git-read-tree                           plumbingmanipulators
 git-rebase                              mainporcelain
-git-receive-pack                        synchingrepositories
+git-receive-pack                        synchelpers
 git-reflog                              ancillarymanipulators
 git-relink                              ancillarymanipulators
-git-repack                              mainporcelain
-git-repo-config                         plumbingmanipulators
-git-request-pull                        ancillaryinterrogators
-git-rerere                              mainporcelain
+git-repack                              ancillarymanipulators
+git-repo-config                         ancillarymanipulators
+git-request-pull                        foreignscminterface
+git-rerere                              ancillaryinterrogators
 git-reset                               mainporcelain
 git-resolve                             mainporcelain
 git-revert                              mainporcelain
@@ -151,34 +154,33 @@ git-rev-list                            plumbinginterrogators
 git-rev-parse                           ancillaryinterrogators
 git-rm                                  mainporcelain
 git-runstatus                           ancillaryinterrogators
-git-send-email                          ancillaryinterrogators
+git-send-email                          foreignscminterface
 git-send-pack                           synchingrepositories
-git-shell                               synchingrepositories
+git-shell                               synchelpers
 git-shortlog                            mainporcelain
 git-show                                mainporcelain
 git-show-branch                         mainporcelain
 git-show-index                          plumbinginterrogators
 git-show-ref                            plumbinginterrogators
-git-sh-setup                            ancillarymanipulators
+git-sh-setup                            purehelpers
 git-ssh-fetch                           synchingrepositories
 git-ssh-upload                          synchingrepositories
 git-status                              mainporcelain
-git-stripspace                          ancillaryinterrogators
-git-svn                                 ancillarymanipulators
-git-svnimport                           ancillarymanipulators
-git-symbolic-ref                        ancillaryinterrogators
-git-symbolic-ref                        ancillarymanipulators
-git-tag                                 ancillarymanipulators
+git-stripspace                          purehelpers
+git-svn                                 foreignscminterface
+git-svnimport                           foreignscminterface
+git-symbolic-ref                        plumbingmanipulators
+git-tag                                 mainporcelain
 git-tar-tree                            plumbinginterrogators
 git-unpack-file                         plumbinginterrogators
 git-unpack-objects                      plumbingmanipulators
 git-update-index                        plumbingmanipulators
-git-update-ref                          ancillarymanipulators
+git-update-ref                          plumbingmanipulators
 git-update-server-info                  synchingrepositories
-git-upload-archive                      synchingrepositories
-git-upload-pack                         synchingrepositories
+git-upload-archive                      synchelpers
+git-upload-pack                         synchelpers
 git-var                                 plumbinginterrogators
 git-verify-pack                         plumbinginterrogators
-git-verify-tag                          mainporcelain
-git-whatchanged                         mainporcelain
+git-verify-tag                          ancillaryinterrogators
+git-whatchanged                         ancillaryinterrogators
 git-write-tree                          plumbingmanipulators
diff --git a/Documentation/git.txt b/Documentation/git.txt
index ac22206..ded48b5 100644
--- a/Documentation/git.txt
+++ b/Documentation/git.txt
@@ -93,6 +93,16 @@ Interrogators:
 
 include::cmds-ancillaryinterrogators.txt[]
 
+
+Interacting with Others
+~~~~~~~~~~~~~~~~~~~~~~~
+
+These commands are to interact with foreign SCM and with other
+people via patch over e-mail.
+
+include::cmds-foreignscminterface.txt[]
+
+
 Low-level commands (plumbing)
 -----------------------------
 
@@ -102,11 +112,20 @@ development of alternative porcelains.  Developers of such porcelains
 might start by reading about gitlink:git-update-index[1] and
 gitlink:git-read-tree[1].
 
-We divide the low-level commands into commands that manipulate objects (in
+The interface (input, output, set of options and the semantics)
+to these low-level commands are meant to be a lot more stable
+than Porcelain level commands, because these commands are
+primarily for scripted use.  To put it another way, the
+interface to Plumbing commands are subject to change in order to
+improve the end user experience.
+
+The following description divides
+the low-level commands into commands that manipulate objects (in
 the repository, index, and working tree), commands that interrogate and
 compare objects, and commands that move objects and references between
 repositories.
 
+
 Manipulation commands
 ~~~~~~~~~~~~~~~~~~~~~
 
@@ -127,6 +146,20 @@ Synching repositories
 
 include::cmds-synchingrepositories.txt[]
 
+The following are helper programs used by the above; end users
+typically do not use them directly.
+
+include::cmds-synchelpers.txt[]
+
+
+Internal helper commands
+~~~~~~~~~~~~~~~~~~~~~~~~
+
+These are internal helper commands used by other commands; end
+users typically do not use them directly.
+
+include::cmds-purehelpers.txt[]
+
 
 Configuration Mechanism
 -----------------------
-- 
1.5.0.rc1.g72fe

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [PATCH] Documentation/git.txt: command re-classification
  2007-01-19  6:32 ` [PATCH] Documentation/git.txt: command re-classification Junio C Hamano
@ 2007-01-19 22:08   ` Nicolas Pitre
  2007-01-19 22:18     ` Jakub Narebski
  2007-01-19 22:22     ` Junio C Hamano
  0 siblings, 2 replies; 10+ messages in thread
From: Nicolas Pitre @ 2007-01-19 22:08 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git

On Thu, 18 Jan 2007, Junio C Hamano wrote:

>  * I unfortunately had to drop your patch on the floor, because
>    I was cooking a few patches to automate the maintenance of
>    the command list (which are now in 'master' and the product is
>    being served at www.kernel.org/pub/software/scm/git/docs/),
>    which majorly conflicted with your work.
> 
>    So here is a counterproposal; I moved commands across groups
>    after looking at what your patch did, but classified some of
>    them differently.

OK.  But I think the following are still misclassified:

  git-rev-parse
  git-runstatus
  git-fsck-objects

> +The interface (input, output, set of options and the semantics)
> +to these low-level commands are meant to be a lot more stable
> +than Porcelain level commands, because these commands are
> +primarily for scripted use.  To put it another way, the
> +interface to Plumbing commands are subject to change in order to
> +improve the end user experience.

I think the "to put it another way" sentence is a bit confusing here.


Nicolas

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] Documentation/git.txt: command re-classification
  2007-01-19 22:08   ` Nicolas Pitre
@ 2007-01-19 22:18     ` Jakub Narebski
  2007-01-19 22:22     ` Junio C Hamano
  1 sibling, 0 replies; 10+ messages in thread
From: Jakub Narebski @ 2007-01-19 22:18 UTC (permalink / raw)
  To: git

Nicolas Pitre wrote:

>> +The interface (input, output, set of options and the semantics)
>> +to these low-level commands are meant to be a lot more stable
>> +than Porcelain level commands, because these commands are
>> +primarily for scripted use.  To put it another way, the
>> +interface to Plumbing commands are subject to change in order to
>> +improve the end user experience.
> 
> I think the "to put it another way" sentence is a bit confusing here.

I think it should read "To put it another way, Porcelain level commands
are subject to change" instead of much less readable "To put it another way,
the interface to Plumbing commands are subject to change".
-- 
Jakub Narebski
Warsaw, Poland
ShadeHawk on #git

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] Documentation/git.txt: command re-classification
  2007-01-19 22:08   ` Nicolas Pitre
  2007-01-19 22:18     ` Jakub Narebski
@ 2007-01-19 22:22     ` Junio C Hamano
  2007-01-19 22:44       ` Nicolas Pitre
  1 sibling, 1 reply; 10+ messages in thread
From: Junio C Hamano @ 2007-01-19 22:22 UTC (permalink / raw)
  To: Nicolas Pitre; +Cc: git

Nicolas Pitre <nico@cam.org> writes:

> OK.  But I think the following are still misclassified:
>
>   git-rev-parse
>   git-runstatus
>   git-fsck-objects

Thanks for proofreading.  runstatus should be a pure helper.  I
am not sure what rev-parse and fsck-objects are, but they are
not primary porcelain.  rev-parse could sit next to rev-list and
fsck-objects, I guess.

>> +The interface (input, output, set of options and the semantics)
>> +to these low-level commands are meant to be a lot more stable
>> +than Porcelain level commands, because these commands are
>> +primarily for scripted use.  To put it another way, the
>> +interface to Plumbing commands are subject to change in order to
>> +improve the end user experience.
>
> I think the "to put it another way" sentence is a bit confusing here.

I agree.  What I wanted to say was the interface to plumbing is
sacred and we will not lightly change it without a very good
reason, while Porcelains are more or less "for breaking".

Better wording is certainly appreciated.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] Documentation/git.txt: command re-classification
  2007-01-19 22:22     ` Junio C Hamano
@ 2007-01-19 22:44       ` Nicolas Pitre
  2007-01-19 22:57         ` Jakub Narebski
  2007-01-19 23:36         ` Junio C Hamano
  0 siblings, 2 replies; 10+ messages in thread
From: Nicolas Pitre @ 2007-01-19 22:44 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git

On Fri, 19 Jan 2007, Junio C Hamano wrote:

> Nicolas Pitre <nico@cam.org> writes:
> 
> > OK.  But I think the following are still misclassified:
> >
> >   git-rev-parse
> >   git-runstatus
> >   git-fsck-objects
> 
> Thanks for proofreading.  runstatus should be a pure helper.  I
> am not sure what rev-parse and fsck-objects are, but they are
> not primary porcelain.  rev-parse could sit next to rev-list and
> fsck-objects, I guess.

I don't think fsck-objects is really plumbing though.  I'd tag it as 
ancillaryinterrogators.

Also, having:

   git-am(1)
          Apply a series of patches from a mailbox.

   git-applymbox(1)
          Apply a series of patches in a mailbox.

looks a bit weird.  Why two commands with almost the same description?  
Maybe one of them could be relegated to ancillary?  Or even both of them 
to foreignscminterface?

Is git-show-branch really a primary command?

Then what about moving one of annotate or blame to the main section?

> >> +The interface (input, output, set of options and the semantics) 
> >> +to these low-level commands are meant to be a lot more stable 
> >> +than Porcelain level commands, because these commands are 
> >> +primarily for scripted use.  To put it another way, the +interface 
> >> to Plumbing commands are subject to change in order to +improve the 
> >> end user experience.
> >
> > I think the "to put it another way" sentence is a bit confusing here.
> 
> I agree.  What I wanted to say was the interface to plumbing is
> sacred and we will not lightly change it without a very good
> reason, while Porcelains are more or less "for breaking".
> 
> Better wording is certainly appreciated.

I'd just drop the "to put it another way" entirely.


Nicolas

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] Documentation/git.txt: command re-classification
  2007-01-19 22:44       ` Nicolas Pitre
@ 2007-01-19 22:57         ` Jakub Narebski
  2007-01-19 22:59           ` J. Bruce Fields
  2007-01-19 23:36         ` Junio C Hamano
  1 sibling, 1 reply; 10+ messages in thread
From: Jakub Narebski @ 2007-01-19 22:57 UTC (permalink / raw)
  To: git

Nicolas Pitre wrote:

> Also, having:
> 
>    git-am(1)
>           Apply a series of patches from a mailbox.
> 
>    git-applymbox(1)
>           Apply a series of patches in a mailbox.
> 
> looks a bit weird.  Why two commands with almost the same description?  
> Maybe one of them could be relegated to ancillary?  Or even both of them 
> to foreignscminterface?

Because they are almost the same (same command, different interface).
git-applymbox is legacy for Linus.
-- 
Jakub Narebski
Warsaw, Poland
ShadeHawk on #git

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] Documentation/git.txt: command re-classification
  2007-01-19 22:57         ` Jakub Narebski
@ 2007-01-19 22:59           ` J. Bruce Fields
  0 siblings, 0 replies; 10+ messages in thread
From: J. Bruce Fields @ 2007-01-19 22:59 UTC (permalink / raw)
  To: Jakub Narebski; +Cc: git

On Fri, Jan 19, 2007 at 11:57:12PM +0100, Jakub Narebski wrote:
> Nicolas Pitre wrote:
> 
> > Also, having:
> > 
> >    git-am(1)
> >           Apply a series of patches from a mailbox.
> > 
> >    git-applymbox(1)
> >           Apply a series of patches in a mailbox.
> > 
> > looks a bit weird.  Why two commands with almost the same description?  
> > Maybe one of them could be relegated to ancillary?  Or even both of them 
> > to foreignscminterface?
> 
> Because they are almost the same (same command, different interface).
> git-applymbox is legacy for Linus.

Given how often this question is asked, maybe git-aplymbox should just
be removed from this and every other global list of commands.  Linus
(and whoever else is used to it) knows where to find it.

Unless there's really something it has that git-am doesn't.

--b.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] Documentation/git.txt: command re-classification
  2007-01-19 22:44       ` Nicolas Pitre
  2007-01-19 22:57         ` Jakub Narebski
@ 2007-01-19 23:36         ` Junio C Hamano
  2007-01-20  1:44           ` Nicolas Pitre
  1 sibling, 1 reply; 10+ messages in thread
From: Junio C Hamano @ 2007-01-19 23:36 UTC (permalink / raw)
  To: Nicolas Pitre; +Cc: git

Nicolas Pitre <nico@cam.org> writes:

> I don't think fsck-objects is really plumbing though.  I'd tag it as 
> ancillaryinterrogators.
>
> Also, having:
>
>    git-am(1)
>           Apply a series of patches from a mailbox.
>
>    git-applymbox(1)
>           Apply a series of patches in a mailbox.
>
> looks a bit weird.

I thought about that issue (also annotate vs blame).  I'm fine
with demoting applymbox to ancillary, perhaps with potential
future deprecation in mind (but that would be a separate topic).

annotate is already ancillary and blame also is.  Do you want to
promote one of them to mainporcelain?

> Is git-show-branch really a primary command?

Ah, I didn't notice that you wanted to move it out of
mainporcelain in your patch.

I personally use it quite often while juggling topics,
especially since I do not usually work inside X, but I'm fine
either way -- ancillaryinterrogators?

> I'd just drop the "to put it another way" entirely.

Ok, then how about this on top of what you saw on the list.


diff --git a/Documentation/cmd-list.perl b/Documentation/cmd-list.perl
index 9443ab3..4b76d19 100755
--- a/Documentation/cmd-list.perl
+++ b/Documentation/cmd-list.perl
@@ -62,7 +62,7 @@ __DATA__
 git-add                                 mainporcelain
 git-am                                  mainporcelain
 git-annotate                            ancillaryinterrogators
-git-applymbox                           mainporcelain
+git-applymbox                           ancillaryinterrogators
 git-applypatch                          purehelpers
 git-apply                               plumbingmanipulators
 git-archimport                          foreignscminterface
@@ -159,7 +159,7 @@ git-send-pack                           synchingrepositories
 git-shell                               synchelpers
 git-shortlog                            mainporcelain
 git-show                                mainporcelain
-git-show-branch                         mainporcelain
+git-show-branch                         ancillaryinterrogators
 git-show-index                          plumbinginterrogators
 git-show-ref                            plumbinginterrogators
 git-sh-setup                            purehelpers
diff --git a/Documentation/git.txt b/Documentation/git.txt
index ded48b5..9761de3 100644
--- a/Documentation/git.txt
+++ b/Documentation/git.txt
@@ -115,9 +115,9 @@ gitlink:git-read-tree[1].
 The interface (input, output, set of options and the semantics)
 to these low-level commands are meant to be a lot more stable
 than Porcelain level commands, because these commands are
-primarily for scripted use.  To put it another way, the
-interface to Plumbing commands are subject to change in order to
-improve the end user experience.
+primarily for scripted use.  The interface to Porcelain commands
+on the other hand are subject to change in order to improve the
+end user experience.
 
 The following description divides
 the low-level commands into commands that manipulate objects (in

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [PATCH] Documentation/git.txt: command re-classification
  2007-01-19 23:36         ` Junio C Hamano
@ 2007-01-20  1:44           ` Nicolas Pitre
  0 siblings, 0 replies; 10+ messages in thread
From: Nicolas Pitre @ 2007-01-20  1:44 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git

On Fri, 19 Jan 2007, Junio C Hamano wrote:

> annotate is already ancillary and blame also is.  Do you want to
> promote one of them to mainporcelain?

I'd think so.

> > Is git-show-branch really a primary command?
> 
> Ah, I didn't notice that you wanted to move it out of
> mainporcelain in your patch.
> 
> I personally use it quite often while juggling topics,
> especially since I do not usually work inside X, but I'm fine
> either way -- ancillaryinterrogators?

Sure.

> Ok, then how about this on top of what you saw on the list.

I'd put fsck-objects in  ancillaryinterrogators.

Otherwise it looks fine.


Nicolas

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2007-01-20  1:44 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-01-18 22:25 [PATCH] Documentation: revisit command qualification in git.txt Nicolas Pitre
2007-01-19  6:32 ` [PATCH] Documentation/git.txt: command re-classification Junio C Hamano
2007-01-19 22:08   ` Nicolas Pitre
2007-01-19 22:18     ` Jakub Narebski
2007-01-19 22:22     ` Junio C Hamano
2007-01-19 22:44       ` Nicolas Pitre
2007-01-19 22:57         ` Jakub Narebski
2007-01-19 22:59           ` J. Bruce Fields
2007-01-19 23:36         ` Junio C Hamano
2007-01-20  1:44           ` Nicolas Pitre

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).