2011-09-30 23 views
14

Una empresa me pidió que programara un contenedor GIT para ellos.hay una API para GIT (C++ u otros idiomas)

La gente no tiene absoluta experiencia en sistemas de control de versiones, pero se incorporará a su rutina diaria (a través de mi programa).

Estoy planeando usar VC++ para crear un pequeño applet de Windows que ayudará a personas en este proceso. ¿Alguna idea sobre eso?

¿Qué pasa con un proceso Deamon que comprueba si las personas desean enviar/enviar sus archivos?

+8

¿cuál sería el propósito de la envoltura que las herramientas git y * otras * por ahí no pueden manejar? –

+3

Suponiendo que necesita el sistema contenedora, puede simplemente llamar a git directamente desde su programa usando los argumentos apropiados. – mwd

Respuesta

21

Durante casi (pero no todos!) El uso de los casos, libgit2 es la forma más fácil de interactuar con los repositorios Git a través de código.

+0

Esto se ve bien ... Me pregunto cuando miré libgit2 si había un enlace de C++ que no requería Qt ... Parece que no hay ninguno anunciado en el sitio proporcionado. Noto que el OP quería VC++: Parece que alguien más tenía un problema con VS2010 C++ pero se resolvió en esta publicación SO: http://stackoverflow.com/questions/14860814/qt-creator-unresolved-external-symbol – rholmes

5

Ya hay TortoiseGit, entre otras interfaces "amigables". No reinvente la rueda, comience por investigar lo que ya está disponible.

+0

Y, por supuesto, es de código abierto, por lo que incluso si no es lo que quieres, es probablemente mucho más que nada. – Cascabel

+1

Está pidiendo envolver características de git, no una interfaz. Por ejemplo, si desea implementar funciones de colaboración en una pieza de software, necesitaría una biblioteca. Sé de Grit en Ruby pero afaik no existe para C/C++. – Michael

+2

@ user626921: Su pregunta especifica que su objetivo es proporcionar a sus usuarios una interfaz. Su plan actual es escribir uno, pero sugiero que un enfoque de menor costo es personalizar uno que ya exista. –

11

Git ya tiene dos capas: la fontanería (que le puede interesar) sobre la cual se construye la porcelana primaria que proporciona la interfaz de usuario. Si desea implementar algo como git-commit, pero con una semántica ligeramente diferente, todos los programas subyacentes como git-write-tree y git-rev-parse están ahí para que usted pueda construir.

Ver también What does the term "porcelain" mean in Git?

+0

muchas gracias. eso es exactamente lo que estoy buscando – Draconar

+0

Git es muy flexible, la porcelana es genial. Si no está casado con una GUI, puede probar un enfoque de scripting simple a través de un idioma favorito (Ruby, Python, Perl o incluso shell parecido a un bash). He visto buenos resultados con los sistemas DVCS, pero puede ser difícil para las personas que no aceptan la línea de comando. Agregar comandos alias en Git también puede ser muy largo, pero necesitas poder distribuirlos a tu base de usuarios (no demasiado, muchas opciones) – rholmes

Cuestiones relacionadas