¿Cómo usar Git en Android?

Tengo una aplicación de escritorio que usa git para la synchronization. También tengo una aplicación de Android que hace lo mismo que el escritorio, pero no sé cómo hacer la parte de synchronization en él. No he encontrado ninguna implementación de git en Android. Encontré un jgit, pero no está bien documentado y no pude ni siquiera comprometerme con eso.

Estaba pensando en commands remotos para mi server de git desde mi aplicación de Android, pero esto es realmente una burla para mí. ¿Podría decirme si existe alguna otra implementación de git que pueda usarse en Android? Si tiene alguna idea de cómo resolver eso, por favor dígame.

Otra opción es usar ASE. Parece que hay una implementación completa de python pura de git en https://github.com/jelmer/dulwich .

Desde que esta pregunta se publicó por primera vez, se ha agregado al mercado una aplicación de Android que puede realizar compras de repositorys Git, llamada Agit . Todavía no puede comprometerse o presionarse, pero la funcionalidad de clonar / captar / extraer es útil. El otro problema es que una versión parcheada de ConnectBot debe instalarse antes de Agit si desea usar keys SSH. Si ya tiene ConnectBot, desinstálelo primero. No hice esto y tuve problemas.

Si el dispositivo está rooteado, también puedes usar la aplicación debootstrap ( http://wiki.debian.org/Debootstrap ) de Debian para crear una image Debian / Armel, montarla en tu dispositivo Android y acceder a ella, tienes aptitude aquí, así que cualquier package disponible para armel se puede instalar en su dispositivo (para instalar git: aptitude install git). Busque aquí información sobre cómo instalar Debian para su Android: http://lanrat.com/install-debian-on-android/

Algunas otras soluciones que ahora están disponibles, incluyeron a Agit , ya que esta pregunta fue respondida por última vez:

  • Un cliente git & mercurial para bitbucket llamado Bitbeaker

  • Una aplicación git de github

  • El Android IDE AIDE de Android también tiene la funcionalidad de git, por lo que puedes download desde un directory de git y si es una aplicación de Android modificarlo y ejecutarlo también.

También puedes probar Pocket Git: https://play.google.com/store/apps/details?id=com.aor.pocketgit

Pocket Git admite SSH (con keys privadas y frases de contraseña) y HTTP, clonación, etapa, unstage, commit, push y pull; crear, eliminar y fusionar twigs; y también tiene un visor de logging gráfico y puede mostrar diffs.

Descargo de responsabilidad: soy el desarrollador

Sugeriría echarle un vistazo a Gidder . Es la implementación del server Git para Android con administración de usuarios y repositorys, y también es compatible con DNS dynamic. Puede almacenar fácilmente su código en su dispositivo Android y acceder usando una connection WiFi.

Actualizar:

Comenta debajo de esta respuesta por OP- (Nathan Osman)

desafortunadamente, me vi obligado a retirar la aplicación después de algunos cambios recientes en la política de Play Store que exigían que los editores mostraran su dirección en la página de la tienda de la aplicación.


Respuesta original

Acabo de publicar (circa abril de 2013) una aplicación en Play Store llamada GitDroid . La aplicación te permite hacer lo siguiente:

  • clonar repositorys remotos
  • extraer desde el control remoto y fusionar nuevas revisiones
  • ver confirma y explorar files

Ficha Resumen de GitDroid

La aplicación no puede presionar a un control remoto o realizar confirmaciones locales aún, esto está planeado para una actualización futura.

MGit es el sucesor de SGit, y funciona muy bien para mí.

Así es como lo haría:

Bueno, es probable que desee definir una interfaz para sus necesidades de synchronization.

Implementa esta interfaz en C para escritorio y dispositivo Android (con la ayuda del NDK) haciendo que la implementación use git (nativo).

Luego, para la aplicación de Android, codifica una capa JNI en la parte superior para que exponga la interfaz a Java.

La parte difícil sería tener comstackdos los diferentes commands de git para Android: tendrás que volver a escribir makefiles.

Se han publicado muchas aplicaciones ya existentes en las respuestas, pero los siguientes enlaces pueden ser útiles para quienes buscan su propia implementación:

  1. libgit2

    Esta es una implementación pura de C que dice ser altamente portátil. Y el proyecto también describe cómo comstackr las fonts para la plataforma de Android . Ahora lo que hay que hacer es escribir un enlace JNI para ello. Incluso un binary ejecutable sería suficiente en algunos casos.

  2. Protocolo HTTP (tonto)

    Como alternativa, si uno está puramente interesado en las operaciones de lectura de un repository, este protocolo se puede implementar a través de HTTP. También hay un protocolo inteligente que depende de ssh y realiza transferencias diferenciales.

  3. JGit Core Fuentes

    Usando solo el package central de sus fonts. Sin javax.* todas las dependencies javax.* Y otras classs incompatibles / alienígenas necesitarán ser reemplazadas por alternativas de Android. Pero vale la pena el esfuerzo si una implementación pura de Java se puede portar a Android.

Pruebe SGit , puede confirmar y presionar sobre SSH con las teclas sin frase less y está disponible en F-Droid . Está construido sobre JGit. No es perfecto (todavía) y la implementación de JGit no es tan buena como la original de Git, pero parece utilizable.

Una opción más es CubeGit.

Lanzamos CubeGit en Google Play hace unos días.

Es una interfaz para un git binary comstackdo cruzado y también admite compromisos locales y push a través de ssh / http / https.