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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.