Subject: Re: jgit standalone client on OpenVMS works (somewhat)

From: "Shawn O. Pearce" <[email-masked]>
Date: Thu, 30 Apr 2009 12:26:07 -0700

Ben Armstrong <[email-masked]> wrote:
> I am happy to report that the jgit standalone client works (somewhat) on
> OpenVMS/Alpha, a non-POSIX platform for which no C git port exists.  I
> understand that not all functionality of the C client is supported yet, but
> for limited use, and supplemented by using the C client on a PC, I may be
> able to get away with this.  At least being able to do a 'git clone' is
> encouraging.

Wow.

I'm talking to some folks who are trying to put JGit into Maven.
They want to move a lot of egit.core down into JGit, which should
make it easier to add more commands to the jgit wrapper, making a
more functional command line tool.
 
> The only problem I have found so far is that if a tag has dots in it and the
> last dotted expression looks like a VMS file version number, it is
> interpreted as such instead of part of the filepath used to represent it
> under .git/refs/tags
...
> $ HELP EXT_FILE_SPECS Using File_Specification_Differences
> ODS-5_Syntax Interpretation_of_Period
> ...
> Uggh.  I don't know if I'm going to be able to solve this one.
> I guess I just have to avoid multiple periods in tags.

Can you write a subclass of our FS class that can identify a
VMS host and use that VMS specific subclass? 

If so, we could add a method, e.g.:

  boolean canBeLooseRef(String name)

and on VMS when the name falls into that "ODS-5_Syntax
Interpretation_of_Period" rule set above, we could return false.
This would then permit a simple change in RefDatabase where we always
store such refs in the packed-refs file, instead of as a loose file.

It also means we'd have to forgo the ref log, or mangle the reflog
name.

But it seems to me we could reasonably work around this without
too much trouble.

-- 
Shawn.