git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[JGIT PATCH 0/9] List commonly used (or recognized) commands

From
Shawn O. Pearce <spearce@spearce.org>
Date
Jul 25, 2008, 19:45 UTC
Message-ID
<1217015167-4680-1-git-send-email-spearce@spearce.org>

This series adds support to jgit to list commonly used subcommands if the user just executes `jgit` with no subcommand requested:

  $ jgit
  jgit --git-dir GIT_DIR --help (-h) --show-stack-trace command [ARG ...]
  
  The most commonly used commands are:
   fetch  Update remote refs from another repository
   log    View commit history
   push   Update remote repository from local refs
   tag    Create a tag

Commands inside of the pgm.debug package are automatically given the debug- prefix, allowing debug-show-commands to be used to show the command table.

Commands must be listed in the META-INF/services/org...TextBuiltin file in order to be considered for execution. This means that we must add (or remove) command class names from the listing each time we introduce or remove a command line subcommand.

One advantage to this structure is additional commands can defined in other packages, and are available so long as the classes are reachable through the CLASSPATH. Since jgit.sh hardcodes the CLASSPATH to only itself this is not fully supported yet, but does open the door for users to extend jgit's command line support.

Shawn O. Pearce (9):
  Switch jgit.pgm to J2SE-1.5 execution environment
  Remove unnecessary duplicate if (help) test inside TextBuiltin
  Create an optional documentation annotation for TextBuiltin
  Create a lightweight registration wrapper for TextBuiltin
  Create a catalog of CommandRefs for lookup and enumeration
  Document some common commands with the new Command annotation
  Include commonly used commands in main help output
  Refactor SubcommandHandler to use CommandCatalog instead of
    reflection
  Add debug-show-commands to display the command table
 org.spearce.jgit.pgm/.classpath                    |    2 +-
 .../services/org.spearce.jgit.pgm.TextBuiltin      |   14 ++
 .../src/org/spearce/jgit/pgm/Command.java          |   72 ++++++++
 .../src/org/spearce/jgit/pgm/CommandCatalog.java   |  188 ++++++++++++++++++++
 .../src/org/spearce/jgit/pgm/CommandRef.java       |  158 ++++++++++++++++
 .../src/org/spearce/jgit/pgm/Fetch.java            |    1 +
 .../src/org/spearce/jgit/pgm/Log.java              |    1 +
 .../src/org/spearce/jgit/pgm/Main.java             |   18 ++
 .../src/org/spearce/jgit/pgm/Push.java             |    1 +
 .../src/org/spearce/jgit/pgm/Tag.java              |    1 +
 .../src/org/spearce/jgit/pgm/TextBuiltin.java      |   17 +--
 .../org/spearce/jgit/pgm/debug/ShowCommands.java   |   78 ++++++++
 .../spearce/jgit/pgm/opt/SubcommandHandler.java    |   65 +------
 13 files changed, 543 insertions(+), 73 deletions(-)
 create mode 100644 org.spearce.jgit.pgm/src/META-INF/services/org.spearce.jgit.pgm.TextBuiltin
 create mode 100644 org.spearce.jgit.pgm/src/org/spearce/jgit/pgm/Command.java
 create mode 100644 org.spearce.jgit.pgm/src/org/spearce/jgit/pgm/CommandCatalog.java
 create mode 100644 org.spearce.jgit.pgm/src/org/spearce/jgit/pgm/CommandRef.java
 create mode 100644 org.spearce.jgit.pgm/src/org/spearce/jgit/pgm/debug/ShowCommands.java
Next: Shawn O. Pearce
Message 1 of 12 in “List commonly used (or recognized) commands”
  1. 0/9 List commonly used (or recognized) commandsShawn O. Pearce, Jul 25, 2008
  2. 1/9 Switch jgit.pgm to J2SE-1.5 execution environmentShawn O. Pearce, Jul 25, 2008
  3. 2/9 Remove unnecessary duplicate if (help) test inside TextBuiltinShawn O. Pearce, Jul 25, 2008
  4. 3/9 Create an optional documentation annotation for TextBuiltinShawn O. Pearce, Jul 25, 2008
  5. 4/9 Create a lightweight registration wrapper for TextBuiltinShawn O. Pearce, Jul 25, 2008
  6. 5/9 Create a catalog of CommandRefs for lookup and enumerationShawn O. Pearce, Jul 25, 2008
  7. 6/9 Document some common commands with the new Command annotationShawn O. Pearce, Jul 25, 2008
  8. 7/9 Include commonly used commands in main help outputShawn O. Pearce, Jul 25, 2008
  9. 8/9 Refactor SubcommandHandler to use CommandCatalog instead of reflectionShawn O. Pearce, Jul 25, 2008
  10. 9/9 Add debug-show-commands to display the command tableShawn O. Pearce, Jul 25, 2008
  11. 5/9 Create a catalog of CommandRefs for lookup and enumerationShawn O. Pearce, Jul 25, 2008
  12. Shawn O. PearceJul 25, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.