Git
Chapters ▾ 2nd Edition

A2.1 Appendix B: Вграждане на Git в приложения - Git от команден ред

Ако вашето приложение е предназначено за разработчици, твърде вероятно е интеграцията на сорс контрол възможности да му е от полза. Дори и non-developer приложенията, като редактори на документи например, могат потенциално да се възползват от version-control функционалностите и моделът на Git работи добре в много и разнообразни сценарии.

Ако трябва да интегрирате Git във вашите собствени приложения, по същество разполагате с две опции: да извиквате шел сесия и да се обръщате към git от командния ред или да вградите Git библиотека в приложението си. Тук ще погледнем интеграцията от команден ред и някои от най-популярните Git библиотеки, които могат да се вграждат.

Git от команден ред

Една възможност е да се стартира шел процес и да се използват Git командите за необходимите дейности. Предимството на такъв подход е в последователността и всички Git функционалности са налице. Освен това е сравнително лесно, защото повечето runtime среди разполагат със сравнително лесен механизъм за извикване на процеси с аргументи от команден ред. Обаче, подходът си има и недостатъци.

Един от тях е, че изходът е в чист текст. Това означава, че трябва да се обработва изходния формат на Git за прочитане на прогреса на дадено действие и информацията от резултатите, което може да е неефективен и податлив на грешки процес.

Друго неудобство е липсата на поддръжка за възстановяване на състоянието при възникнали грешки. Ако дадено хранилище по някакъв начин се повреди или потребителят е подал неправилно форматирана конфигурационна стойност, то Git просто ще откаже да изпълни много операции.

Друг аспект е управлението на процесите. Git изисква да поддържате шел обкръжение в отделен процес, което може да добави нежелана сложност. Опитът да координирате много такива процеси (особено когато потенциално манипулирате едно и също хранилище от много процеси) може да бъде сериозно предизвикателство.