¿Cómo usar Git en Android?
Tengo una aplicación de escritorio que utiliza git para la sincronización. También tengo una aplicación de Android que hacen lo mismo que el escritorio, pero no sé cómo hacer la parte de sincronización en él. No he encontrado ninguna implementación de git en android. He encontrado un jgit, pero su mal documentado y no pude hacer ni siquiera una cometer con eso.
Estaba pensando en comandos remotos a mi servidor git desde mi aplicación para Android, pero esto es realmente una burla para mí. ¿Podría decirme si alguna otra implementación git que se puede utilizar en android existe? Si usted tiene alguna idea de cómo resolver eso, por favor dígame.
- ¿SyncAdapter soporta tanto la carga como la descarga durante una sincronización?
- Recursos del adaptador de sincronización de Android
- Android Syncadapter no permitir que el usuario elija sincronizar o no sincronizar
- Cómo sincronizar Android Database con un servidor SQL en línea?
- ¿Cómo actualizar la empresa de contacto de Android?
- Android 1.x Contacts.Extensions para un tipo de cuenta personalizada?
- En Android, ¿debe ejecutarse un adaptador de sincronización de contactos en un proceso independiente?
- Android Studio 0.8.2 "La sincronización del proyecto Gradle falló."
- ¿Cómo recuperar el tiempo de 'última sincronización' para una cuenta?
- Synchronize ("Cache_Group") parte se omite, ¿por qué es así?
- Cómo conectar un teléfono HTC android a la PC como dispositivo de depuración
- Mejor manera de sincronizar contactos
- Cuándo utilizar sincronizado en Java
Otra opción es usar ASE. Parece que hay una implementación python pura y completa de git en https://github.com/jelmer/dulwich .
Desde que se publicó por primera vez esta pregunta, se ha agregado una aplicación para Android al mercado que puede realizar depósitos Git de compra, denominada Agit . No se puede confirmar ni empujar todavía, pero la funcionalidad clone / fetch / pull es útil. El otro problema es que una versión remendada de ConnectBot necesita ser instalada antes de Agit si desea usar claves SSH. Si ya tiene ConnectBot, desinstálelo primero. No hice esto y me encontré con problemas.
Si el dispositivo está enraizado, también puedes usar la aplicación debian debootstrap ( http://wiki.debian.org/Debootstrap ) para crear una imagen debian / armel, montarla en tu dispositivo androide y chroot, tienes aptitude aquí Cualquier paquete disponible para armel puede instalarse en su dispositivo (para instalar git: aptitude install git). Busque información sobre cómo instalar debian para su android: http://lanrat.com/install-debian-on-android/
Algunas otras soluciones que están ahora disponibles, Agit más bien , ya que esta última pregunta fue contestada:
-
Un cliente git & mercurial para bitbucket llamado Bitbeaker
-
Una aplicación git de github
-
El Android IDE Java AIDE también tiene la funcionalidad git, por lo que se puede descargar desde un directorio git y si es una aplicación de Android modificar y ejecutar aswell.
También puedes probar Pocket Git: https://play.google.com/store/apps/details?id=com.aor.pocketgit
Pocket Git soporta SSH (con claves privadas y frases secretas) y HTTP, clonación, escenario, desestabilización, confirmación, empuje y extracción; Crear, eliminar y fusionar ramas; Y también tiene un visor de registro gráfico y puede mostrar diffs.
Descargo de responsabilidad: Soy el desarrollador
Yo sugeriría que echar un vistazo a Gidder . Es la implementación del servidor Git para Android con administración de usuarios y repositorios y también admite DNS dinámico. Puede almacenar fácilmente el código en su dispositivo Android y acceder a él mediante una conexión WiFi.
Actualizar:
Comentario debajo de esta respuesta por OP- (Nathan Osman)
Por desgracia, me vi obligado a retirar la aplicación después de algunos cambios de política recientes en Play Store que exigían que los editores tuvieran su dirección en la página de la tienda de la aplicación.
Respuesta Original
Acabo de (alrededor de abril de 2013) publicar una aplicación en la tienda de Play llamada GitDroid . La aplicación le permite hacer lo siguiente:
- Clonar repositorios remotos
- Tire del mando a distancia y fusione las nuevas revisiones
- Ver compromisos y examinar archivos
La aplicación no puede empujar a un control remoto o realizar compromisos locales aún – esto está previsto para una futura actualización.
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 sincronización.
Implementar esta interfaz en C para dispositivos de escritorio y Android (con la ayuda del NDK) haciendo que la implementación use git (nativo).
Luego, para la aplicación de Android, codifica una capa de JNI en la parte superior para que expone la interfaz a Java.
La parte difícil sería tener los diferentes comandos de git compilados para Android: tendrás que reescribir makefiles.
Un montón de aplicaciones ya existentes se han publicado en las respuestas, pero los siguientes enlaces podrían ser útiles para aquellos que buscan su propia implementación:
-
Libgit2
Esta es una implementación de C pura que pretende ser altamente portátil. Y el proyecto también describe cómo compilar las fuentes para la plataforma android . Ahora lo que hay que hacer es escribir un enlace JNI para ello. Incluso un binario ejecutable sería suficiente en algunos casos.
-
Protocolo HTTP (tonto)
Como alternativa, si uno está puramente interesado en las operaciones de lectura desde un repositorio, este protocolo puede implementarse a través de HTTP. También hay un protocolo inteligente que depende de ssh y hace transferencias diferenciales.
-
Fuentes principales de JGit
Utilizando sólo el paquete básico de sus fuentes. Todas las dependencias de
javax.*
Y otras clases incompatibles / alienígenas necesitarían ser reemplazadas por alternativas de Android. Pero vale la pena el esfuerzo si una implementación de Java puro puede ser portada a android.
Intente SGit , él puede cometer y empujar sobre SSH con las llaves pssphrase-less y está disponible en F-Droid . Está construido encima de JGit. No es perfecto (todavía) y la implementación de JGit no es tan buena como Git original, pero se ve utilizable.
Una opción más es CubeGit.
Hemos lanzado CubeGit en Google Play hace unos días.
Es una interfaz para un compilador cruzado git binario y también soporta commits locales y empuje a través de ssh / http / https.
JGit – http://eclipse.org/jgit/
- Cómo agregar botones en la parte superior del fragmento de mapa Diseño API v2
- Cómo crear un menú contextual para RecyclerView