Rogan Dawes <lists@xxxxxxxxxxxx> wrote: > Robin Rosenberg wrote: > > torsdag 26 mars 2009 05:56:51 skrev Jeff King <peff@xxxxxxxx>: > >> 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. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html