Git
Chapters ▾ 2nd Edition

A2.1 Appendix B: Incorporar o Git nos teus Aplicativos - Linha de comando Git

Se o teu aplicativo for para desenvolvedores, as chances são boas de que ele poderia beneficiar da integração com o controle de origem. Mesmo os aplicativos não-desenvolvedores, como os editores de documentos, poderiam beneficiar dos recursos de controle de versão, e o modelo do Git funciona muito bem para muitos cenários diferentes.

Se tu precisares integrar o Git com o teu aplicativo, tens essencialmente três opções: gerar um shell e usar a ferramenta de linha de comando Git; Libgit2; e JGit.

Linha de comando Git

Uma opção é gerar um processo de shell e usar a ferramenta de linha de comando Git para fazer o trabalho. Isto tem a vantagem de ser canónico, e todos os recursos Git são suportados. Isto também é bastante fácil, uma vez que a maioria dos ambientes de execução tem uma maneira relativamente simples de invocar um processo com argumentos de linha de comando. No entanto, esta abordagem tem algumas desvantagens.

Um deles é que toda a saída é um texto simples. Isto significa que terás que analisar a mudança do formato de saída do Git para ler as informações de progresso e resultado, que podem ser ineficientes e propensas a erros.

Outra é a falta de recuperação de erros. Se um repositório estiver danificado de alguma forma, ou o utilizador tiver um valor de configuração com formato incorreto, o Git simplesmente se recusará a executar muitas operações.

Outro é o de gerir os processos. O Git requer que mantenhas um ambiente de shell num processo separado, o que pode adicionar uma complexidade indesejada. Tentando coordenar muitos destes processos (especialmente quando potencialmente acessando o mesmo repositório multiprocesso) pode ser um desafio.