From: "Shawn O. Pearce" <spearce@spearce.org>
To: Rogan Dawes <lists@dawes.za.net>, Mike Gaffney <mr.gaffo@gmail.com>
Cc: Robin Rosenberg <robin.rosenberg.lists@dewire.com>,
Jeff King <peff@peff.net>,
git@vger.kernel.org
Subject: Re: Question: Is it possible to host a writable git repo over both http and ssh?
Date: Thu, 26 Mar 2009 09:57:32 -0700 [thread overview]
Message-ID: <20090326165732.GD23521@spearce.org> (raw)
In-Reply-To: <49CB4EF1.6050902@dawes.za.net>
Rogan Dawes <lists@dawes.za.net> wrote:
> Robin Rosenberg wrote:
> > torsdag 26 mars 2009 05:56:51 skrev Jeff King <peff@peff.net>:
> >> On Wed, Mar 25, 2009 at 11:55:29PM -0500, Mike Gaffney wrote:
> >>
> >>> I'm actually trying to take what Sean did with gerrit and extract a
> >>> full Java/MinaSSHD based server that doesn't require a real user
> >>> account and is configurable by spring. So yes, I'm using JGit on the
> >>> server.
> >> Ah. In that case, I don't know whether JGit respects all hooks. You
> >> should ask Shawn (Shawn, we are talking about a post-update to run
> >> update-server-info). :)
JGit already has the native code needed for update-server-info.
Look at WalkPushConnection:
line 185-187 calls refWriter.writeInfoRefs() to update the
GIT_DIR/info/refs for dumb transports. We just need to call
that in the end of the receive code.
line 236 calls WalkRemoteObjectDatabase.writeInfoPacks() to
update the GIT_DIR/objects/info/packs file. This needs to
be abstracted out so we can more easily reuse it.
> > Arguably it should. but it doesn't. Then there is a question as to what
> > format those hooks should be. Shell scripts would run into platform
> > issues and jgit based stuff should have as little as possible of that, but
> > a similar mechanism should exist.
Yup, I agree.
At the very least we should suppot doing the update-server-info
logic from pure Java, as it is probably the most common operation
people would want in a post receive hook.
> Maybe support executing scripts via Bean Scripting Framework?
>
> That would allow scripts to be written in any of the supported
> languages, as long as the appropriate interpreter is present.
>
> e.g. BeanShell, Groovy, Jython, etc
>
> See http://jakarta.apache.org/bsf/
>
> If you define an interface for each hook, the scripts could implement
> the interface, and execute that way.
Yes, that is one option. I'd like to get a reasonable binding to
BSF for JGit, but its more of a wish than a real need for me, so
I just don't bother. I think many people who want to script Git
from Python would be reasonably happy with executing that script
through Jython if there was a decent binding.
--
Shawn.
prev parent reply other threads:[~2009-03-26 16:59 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-03-25 17:29 Question: Is it possible to host a writable git repo over both http and ssh? Mike Gaffney
2009-03-26 2:12 ` Jeff King
2009-03-26 3:27 ` Mike Gaffney
2009-03-26 3:36 ` Jeff King
2009-03-26 4:55 ` Mike Gaffney
2009-03-26 4:56 ` Jeff King
2009-03-26 5:18 ` Robin Rosenberg
2009-03-26 9:46 ` Rogan Dawes
2009-03-26 16:57 ` Shawn O. Pearce [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20090326165732.GD23521@spearce.org \
--to=spearce@spearce.org \
--cc=git@vger.kernel.org \
--cc=lists@dawes.za.net \
--cc=mr.gaffo@gmail.com \
--cc=peff@peff.net \
--cc=robin.rosenberg.lists@dewire.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).