La tarea personalizada de apache y ant git-add (jgit) no funciona

Escribí una tarea de ant personalizada que usa jgit. Debe tomar la dirección del repository local junto con la dirección del directory y agregar todos los files en el directory para indexar. Se construye con éxito, pero desafortunadamente no funciona. Soy totalmente nuevo en eso, así que me pregunto si algunos de ustedes podrían ayudarme a encontrar el problema o lo que me estoy perdiendo. Aquí está mi código:

package customGitTasks; import java.io.File; import org.apache.tools.ant.Task; import org.apache.tools.ant.BuildException; import org.eclipse.jgit.api.AddCommand; import org.eclipse.jgit.api.Git; public class GitAdd extends Task{ private String dir; private String repository; public void setRepository(String repository) { this.repository = repository; } public void setDir(String dir) { this.dir = dir; } public void execute() throws BuildException { try { Git git = Git.open(new File(repository)); AddCommand add = git.add(); add.addFilepattern(dir).call(); } catch (Exception e) { e.printStackTrace(); System.out.println(e.getMessage()); } } } 

Gracias

JGit proporciona una tarea de ant agregada por git entre otras tareas relacionadas con git (gitadd, gitcheckout, gitclone, gitinit).
O use esa tarea => obtenga el file jar aquí o consulte las fonts de la tarea gitadd para get inspiración.
Tenga cuidado: cuando se ejecuta en el sistema operativo Windows necesita parchear la tarea de agregar git para que funcione:

 // original line 149 //return new File(file).getCanonicalPath().substring(prefix.length() + 1); String result = new File(file).getCanonicalPath().substring(prefix.length() + 1); if (File.separatorChar != '/') { result = result.replace(File.separatorChar, '/'); } return result; 

significa que el separador de files debe ser de estilo Unix.