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

Re: [JGIT PATCH 1/1] jgit: create a tag command

From
Shawn O. Pearce <spearce@spearce.org>
Date
Jul 12, 2008, 03:01 UTC
Message-ID
<20080712030104.GB15838@spearce.org>
In-Reply-To
<e2b179460807110145n4182978awd3aa3f97c3caac95@mail.gmail.com>
Mike Ralphson <mike.ralphson@gmail.com> wrote:
Show 11 quoted lines
> 2008/7/11 Shawn O. Pearce <spearce@spearce.org>:
> > Mike Ralphson <mike.ralphson@gmail.com> wrote:
> >>
> >> Loving the make_jgit stuff.
> >
> > So making jgit a single stand-alone, portable shell script for
> > command line usage was a good idea?  ;-)
> 
> It certainly seems so to me. It's a nice quick way of seeing what's
> implemented (I was toying with adding a jgit help command which would
> reflect over the TextBuiltins).
Yea, sadly our builtins don't register themselves into a table so its
a bit difficult to enumerate them at this time.  But it probably would
not be a difficult thing to change at all, and since we don't have a
lot of them yet it wouldn't be that much work to do the conversion.
 
> I'm not sure which if any platforms would eventually be better off
> with a commandline jgit than trying to port c-git though.

Not all platforms can compile c git, e.g. they are missing a c compiler, but have a JRE handy. Odd, I know, but sometimes that's how it goes. Or maybe you have a JRE handy, and want to just download the single stand-alone jgit jar to get some sort of a basic git implementation available, so you can clone and build the real thing direct from Junio's sources.

Or maybe you are using a transport (Amazon S3) that C Git just doesn't support. :-)

Show 6 quoted lines
> > I think we are at the point where we need to either write a
> > #@!*(!@(! command line option parser, import one, or stop writing
> > command line programs.  I would certainly appreciate any opinion
> > you might have on the matter.
> 
> a) is a distraction, c) is a backwards step, so maybe b) wins.
I don't disagree, I thought the very same thing myself.
 
> I don't know what the state of the art of Java option parsers is but
> there is a port of GNU getopt [1] which might drop in quite easily.

So I looked at GNU getopt and its at least smaller than Apache Commons, and doesn't have this damned-if-you-do, damned-if-you-do version selection choice they offer their end-users. But it really makes building something like an automatic --help difficult if not impossible, and certainly makes handling numeric vs. ObjectId vs. String vs. File arguments annoying.

I'd almost rather just do a). It wouldn't take long to get something small rolled out and working. We don't need to support every goddamn weird syntax that C git supports for backward compatability reasons.

> PS apologies for the patch format, I'm stuck with Outlook or gmail,
> and a recalcitrant firewall for the moment.
Some people are terrified of that system of tubes.  I feel for you.
Day-job is that way.  :-(
 
> [1] http://www.urbanophile.com/arenn/hacking/download.html
-- 
Shawn.
Previous: Mike RalphsonNext: Shawn O. Pearce
Message 9 of 13 in “jgit: create a tag command”
  1. 1/1 jgit: create a tag commandRobin Rosenberg, Jul 6, 2008
  2. Robin RosenbergJul 6, 2008
  3. Mike RalphsonJul 10, 2008
  4. Robin RosenbergJul 10, 2008
  5. Differences between git-applu and GNU patch (was: [JGIT PATCH 1/1] jgit: create a tag command)Jakub Narebski, Jul 11, 2008
  6. Shawn O. PearceJul 11, 2008
  7. Robin RosenbergJul 11, 2008
  8. Mike RalphsonJul 11, 2008
  9. Shawn O. PearceJul 12, 2008
  10. Shawn O. PearceJul 12, 2008
  11. Robin RosenbergJul 17, 2008
  12. Shawn O. PearceJul 17, 2008
  13. Robin RosenbergJul 17, 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.