tag remove fugitive git go

remove - git library para Go



git remove tag (5)

Desde hace unos años, mi equipo y yo, estábamos codificando una implementación de git pura en Go, evita tener cualquier dependencia de c / c ++ y hacerlo más flexible y fácil de extender.

go-git

go-git pretende alcanzar la integridad de libgit2 o jgit, en la actualidad cubre la mayoría de las operaciones de lectura de plomería y algunas de las principales operaciones de escritura, pero carece de las principales operaciones de porcelana, como las fusiones.

Como proyecto favorito, quiero desarrollar una aplicación para tomar notas usando git como dispositivo de almacenamiento. (Sospecho que esto no existe todavía, dada la publicación del blog de este tipo: http://jarofgreen.co.uk/2012/08/how-about-a-mobile-note-app-backed-by-git/ )

Ahora, me gustaría aprovechar esto como una oportunidad para jugar un poco con Go un poco. Sin embargo, parece que no puedo encontrar ninguna (ni siquiera el más pequeño enfoque) de la biblioteca git para Go. ¿Hay realmente alguna?

Obviamente, mi conocimiento de Go es inexistente, por lo que escribir enlaces para libgit no parece ser una forma divertida de comenzar ... (y probablemente recurriría a ruby, que tampoco sé)


Lo que Víctor propuso es, de hecho, la forma "oficial" de "escribir" a Git como lo previeron sus desarrolladores. Los comandos de Git se dividen en los dos grandes grupos específicamente para este propósito: los comandos de "plomería" son de bajo nivel y están diseñados principalmente para ser utilizados por otros programas; el comando "porcelana" está diseñado para interactuar con el usuario, y llamar a los comandos de plomería para hacer su trabajo. Mire dentro del directorio /usr/lib/git-core (podría ser diferente en su sistema) para tener una idea de cuántos comandos de plomería tiene Git.

Por otro lado, Go admite la vinculación con bibliotecas compartidas a través de su instalación de cgo . Por lo tanto, podrías intentar envolver libgit2 con él. AFAIK, libgit2 aún no está totalmente a la par con el propio Git, pero es capaz de leer / escribir repositorios de Git, hacer ramificaciones, etc. - supuestamente será suficiente para su tarea.

De acuerdo, después de que escribí todo eso, libgit2 la entrada "Enlaces" en el sitio de libgit2 y encontré go-git ...



Yo diría que git2go es la biblioteca de enlaces de git para usar en Go. Se actualiza regularmente y es mantenido por las personas que ejecutan libgit2.

Si está buscando una implementación de git simplemente escrita en Go, go-git de la source{d} es la opción más madura y activa.


Simplemente puede pagar el comando git usando el paquete os/exec de la biblioteca estándar de Go.