Clona un repository git en un InMemoryRepository con JGit

Necesito clonar un repository git existente en un InMemoryRepository , usando JGit, cambiar el contenido de un file y enviar los cambios al repository remoto.

No pude encontrar ningún ejemplo de clonación de un repository en un repository en memory.

Intenté esto:

 InMemoryRepository.Builder builder = new InMemoryRepository.Builder(); InMemoryRepository inm = builder.build(); Git.cloneRepository().setURI("git@[github_url].git").setDirectory(inm.getDirectory()).call(); 

Lo que resultó en un error :

La "ruta de destino" .git "ya existe y no es un directory vacío".

InMemoryRepository.Builder opciones de configuration para las classs InMemoryRepository.Builder y Repository , pero no encontré nada útil.

¿Cómo puede hacerse esto? Y después de eso, ¿hay algún problema con cambiar el contenido de un file y enviarlo a github, todo desde el repository en memory?

El CloneCommand siempre creará un repository basado en files. Las líneas de su publicación que crean un InMemoryRepository no tienen efecto en el command clonar.

Sugiero clonar en una location temporal si solo necesita el repository para realizar un cambio y enviar el resultado.

Por ejemplo:

 Git.cloneRepository().setURI( ... ).setDirectory( new File("/path/to/empty/dir" ) ).call(); 

Un InMemoryRepository en JGit todavía requiere un directory de trabajo para operaciones como el pago, etc. Solo la database de objects que se encuentra generalmente en el directory .git se almacena en la memory