Johannes Schindelin <Johannes.Schindelin@xxxxxx> wrote: > On Wed, 2 Sep 2009, Nasser Grainawi wrote: > > > I'm looking to add 'git patch-id' to JGit and I could use a few > > pointers. I'm not very familiar with the JGit code base or Java, so > > please excuse any blatant oversights or unintelligent questions. > > > > First off, is there a "hacking JGit" document anywhere? One of those > > would be great right now. > > There have been some mails with details about JGit from Shawn (IIRC) to > this very list. Yea, for the most part I think we use Eclipse, and you just have to import JGit's top level directory into Eclipse as it comes with Eclipse project files. But I know some folks only use our Maven build (under jgit-maven/jgit) or use NetBeans. I have no idea how to import the project into the latter or configure its unit tests to run. > > So far I'm just trying to define the inputs and outputs. On Shawn's > > suggestion I'm planning on making it part of the org.spearce.jgit.patch > > package. C Git patch-id very generically has an input of a 'patch', so > > I'm thinking this implementation should use the Patch object. > > C Git patch-id takes a valid patch as input; I do not think that you want > to use the Patch object. I think we do want to use the Patch object. The Patch entity in JGit is a parsed representation of the git diff or unified diff structure. Its relatively easy to walk over, and all of the mess about determining line type has already been done. We'd probably want to do something that is a lot like the object Patch as the output of our diff routine. A tool (e.g. Gerrit Code Review) might only want the EditList for a given file, and not really care about the actual formatted patch text, as it reformats everything itself. I think patch-id computation is along those same lines. If we were to compute a patch-id off an InputStream we would probably just send it through the Patch object first. > This is not really difficult in Java, however, it relies on a working diff > implementation (and IIRC my implementation has not yet been integrated > into JGit). Speaking of... where does that stand? -- 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