2012-04-25 21 views
7

Realicé búsquedas en Google, foros y la guía del usuario de JGit pero no pude encontrar cómo conectarme a un repositorio distante con la API. ¿Alguien tiene un ejemplo o solo una idea sobre cómo hacer eso?JGit: conéctese al repositorio distante

Gracias por su ayuda.

Respuesta

5

Actualmente, JGit 2.0.0-SNAPSHOT no sólo ofrecen

org.eclipse.jgit.storage.file.FileRepository 
org.eclipse.jgit.storage.dfs.InMemoryRepository 

concretas Repository clases, lo que significa que ya org.eclipse.jgit.api.Git toma un Repository, no es posible trabajar de forma remota. Dado que Git en sí mismo no está diseñado para operar de manera remota de la manera que creo que usted quiere decir, dudo que veamos dicha característica en el corto plazo.

más sobre esto:

En consecuencia, será necesario para clonar de forma local. Usted lo hace mediante la emisión de

Git.cloneRepository() 
     .setURI(myRemoteURIString) 
     .setDirectory(new File(myLocalPathString)) 
     .call(); 

Sin embargo, por razones de coherencia en Git se debe clonar solamente un repositorio desnudo, por lo que un repositorio no-desnudo en un lugar remoto, aunque no técnicamente, es prácticamente inaccesible.

+0

Hola y gracias por su respuesta Luca. Entonces, la mejor forma de obtener la última versión de una identificación de proyecto es clonarla en un nuevo directorio local usando 'CloneCommand clone = Git.cloneRepository();' ¿Estoy en lo cierto? – Brice

+0

Parcialmente. Como he agregado anteriormente, si tiene un repositorio no desnudo en alguna parte, es prácticamente inviable trabajar en él, ya que no debe clonarlo. –

0

No estoy seguro de entender la pregunta, ya que Git está hecho para acceder a otros repositorios, esto es lo que significa "se distribuye Git".

Si desea conectarse a UN repositorio distante, entonces sí debe clonarlo.

No sé si eso es lo que está buscando, pero también puede usar múltiples controles remotos. Agregar uno más se hace con Git usando git remote add <remote_name> <remote_uri>. En cuanto a Jgit, desafortunadamente no puedo recordar el código para hacerlo simplemente, pero puedes resolverlo.

Al menos es posible modificando la configuración, llamando al getConfig() desde un objeto Repository y llamando al setString(...) en él - no se olvide de guardar la configuración al final. Pero antes de modificar la configuración, creo que primero deberías saber más acerca de Git y JGit.

Te recomiendo que leas más sobre él y juegues un poco con tu repositorio. Eche un vistazo a este artículo: http://caiustheory.com/adding-a-remote-to-existing-git-repo. Otro que le ayudará en el camino es How do I do the equivalent of “git remote update” with jgit?

Tal vez alguien más sabe exactamente qué comandos ejecutar y puede ayudar.