Git
Chapters ▾ 2nd Edition

A2.1 Appendix B: Pag-embed ng Git sa iyong Mga Aplikasyon - Command-line Git

Kung ang iyong aplikasyon ay para sa mga developer, ang mga pagkakataon ay maganda na maaari itong makinabang mula sa pagsasama sa kontrol ng pinagmulan. Kahit na ang mga hindi developer ng mga aplikasyon, tulad ng mga editor ng dokumento, maaaring potensyal na makikinabang mula sa mga tampok na kontrol sa bersyon, at ang modelo ng Git na mahusay gumagana sa iba’t ibang mga sitwasyon.

Kung kailangan mong isama ang Git gamit ang iyong aplikasyon, mayroon kang mahalagang tatlong pagpipilian: pag-spawn ng isang shell at paggamit ng kasangkapan na command-line na Git; Libgit2; at JGit.

Command-line Git

Ang isang opsyon ay upang i-spawn ang isang proseso ng shell at gamitin ang command-line tool ng Git upang gawin ang tungkulin. Ito ay ang pakinabang ng pagiging kanonikal, at ang lahat ng mga tampok ng Git ay sinusuportahan. Ito rin ang mangyayari na maging medyo madali, dahil ang karamihan sa mga runtime na mga environment ay may isang simpleng pasilidad para sa pagtawag ng isang proseso na may mga argumento ng command-line. Gayunpaman, ang paraan na ito ay may ilang mga problema.

Ang isa ay ang lahat ng output ay nasa plain text. Nangangahulugan ito na kailangan mong i-parse ang Git na nagbabago paminsan-minsan ang format na output sa pagbabasa ng pagunlad at resulta ng impormasyon, na maaaring hindi sapat at madaling kapitan ng mali.

Ang isa pa ay ang kakulangan ng pagbawi ng mali. Kung ang isang repositoryo ay nasira sa anumang paraan, o ang gumagamit ay may isang halaga ng kompigurasyon na hindi tama, ang Git ay tumanggi lamang na magsagawa ng maraming operasyon.

Ang isa pa ay pamamahala ng proseso. Kinakailangan ng Git na mapanatili mo ang shell na environment sa isang hiwalay na proseso, na maaaring magdagdag ng hindi kanais-nais na pagiging kumplikado. Ang pagsisikap na maisaayos ang mga prosesong ito (lalo na kung posibleng ma-access ang parehong repositoryo mula sa ilang mga proseso) ay maaaring maging isang hamon.