"Halo, Amigo!"

"Halo!"

"Dina iki aku bakal pitutur marang kowe bab sistem kontrol versi."

"Minangka sampeyan mbokmenawa wis ngerti, program asring banget gedhe lan njupuk wektu dawa banget kanggo nulis. Kadhangkala puluhan wong bisa nglampahi taun nulis program."

"Proyek kanthi jutaan baris kode minangka kasunyatan."

"Wah."

"Kabeh iku rumit banget. Wong asring ngganggu siji liyane, lan asring ngowahi kode sing padha, lan liya-liyane."

"Kanggo nggawe kekacoan iki, programer wiwit nggunakake sistem kontrol versi kanggo kode sing."

" Sistem kontrol versi minangka program sing dumadi saka klien lan server.

"Program nyimpen data (kode sing ditulis dening programer) ing server, lan programer nambah utawa ngganti nggunakake klien."

"Bentene utama antarane sistem kontrol versi lan program sing mung nggawe bisa kerja bareng ing dokumen yaiku nyimpen kabeh versi sadurunge kabeh dokumen (file kode)."

"Sampeyan bisa menehi kula rincian liyane. Carane iku kabeh bisa?"

"Mbayangno yen sampeyan minangka programmer lan sampeyan pengin nggawe owah-owahan cilik menyang kode sumber program sing disimpen ing repositori ing server."

"Iki sing kudu sampeyan lakoni:"

"1) Mlebu menyang server."

"2) Nyalin versi paling anyar saka kabeh file menyang komputer nggunakake printah Checkout."

"3) Ngganti file sing dibutuhake.

"4) Jalanake program sacara lokal kanggo mesthekake yen kompilasi lan mlaku."

"5) Kirimi 'owah-owahan' menyang server nggunakake printah Commit."

"Sing umume nggawe akal."

"Nanging ana liyane. Bayangake yen sampeyan teka ing kantor ing wayah esuk, nanging wis wayahe nedha awan ing India. Dadi kanca-kanca India sampeyan wis nggawe owah-owahan lan nindakake owah-owahan menyang gudang sampeyan ing server."

"Sampeyan kudu bisa karo versi paling anyar saka kode. Supaya sampeyan nindakake printah Update ."

"Apa bedane karo Checkout ?"

" Checkout dirancang kanggo nyalin kabeh file repositori, nanging Nganyari mung nganyari file sing wis dianyari ing server wiwit pungkasan sampeyan mbukak perintah Checkout / Update ."

"Iki kira-kira cara kerjane:"

Checkout :

Sistem kontrol versi - 1

"Saiki, ayo ngomong kita ngganti file B lan pengin ngunggah menyang server. Kanggo nindakake iki, kita kudu nggunakake printah Commit ."

Sistem kontrol versi - 2

"Lan iki cara kerjane printah Update :"

Sistem kontrol versi - 3

"Sing menarik! Apa ana prentah liyane?"

"Ya, ana sawetara. Nanging beda-beda gumantung saka program kontrol versi sing sampeyan pilih. Dadi, aku nyoba nerangake prinsip umum."

"Ana uga operasi sing disebut penggabungan-gabungan saka rong dokumen. Upaminipun loro programer diowahi file sing padha ing wektu sing padha. Banjur program ing server ora ngidini loro owah-owahan kanggo setya. Sapa sing nglakoni pisanan bakal nambah kang. utawa owah-owahan dheweke."

"Dadi apa sing ditindakake wong liya?"

"Dheweke bakal diundang kanggo nindakake operasi Update kanggo njupuk owah-owahan paling anyar saka server. Miturut cara, iki - nindakake Update sadurunge nindakake - iku laku apik."

"Banjur, sajrone operasi Update, program klien bakal nyoba nggabungake owah-owahan lokal karo owah-owahan sing ditampa saka server."

"Yen programer ngganti bagean file sing beda-beda, program kontrol versi bisa uga bisa nggabungake kanthi sukses.  Yen owah-owahan ana ing panggonan sing padha, program kontrol versi bakal nglaporake konflik gabungan lan njaluk pangguna kanthi manual. gabungke owah-owahan."

"Contone, iki asring kedadeyan nalika loro programer nambah soko menyang mburi file."

"Aku weruh. Sakabèhé, sing misale jek cukup."

"Lan ana siji liyane: cabang."

"Mbayangno sing loro programer saka tim sing ditugasi karo nulis maneh modul padha. Utawa malah luwih apik - nulis maneh saka ngeruk. Nganti modul iki rampung, program ora bakal bisa kanggo mbukak, lan malah ora bisa ngumpulake."

"Dadi apa sing kudu ditindakake?"

"Dheweke maju kanthi nambahake cabang menyang gudang. Secara kasar, iki tegese gudang dipérang dadi rong bagéan. Ora kanthi file utawa direktori, nanging kanthi versi."

"Mbayangno listrik ora tau ditemokake lan robot ora tau nemokke. Banjur telung perang mardika ora bakal kelakon, lan kabeh sajarah manungsa bakal ngetutake dalan sing beda. "

"Jalan iki minangka cabang sejarah alternatif."

"Utawa sampeyan mung bisa nyoba nggambar cabang minangka mung salinan repositori. Ing tembung liyane, ing sawetara titik, kita nggawe klon saka gudang ing server, supaya, saliyane kanggo repositori utama ( asring disebut trunk ), kita duwe cabang liyane ."

“Wah, kayane luwih paham.

"Yagene sampeyan ora bisa ngomong yen kita nyalin repositori?"

"Iki ora nyalin prasaja."

"Cabang kasebut ora mung bisa dipisahake saka batang, nanging uga digabungake."

"Ing tembung liyane, sawetara karya bisa ditindakake ing cabang, banjur yen wis rampung sampeyan bisa nambah cabang repositori menyang trunk gudang?"

"Ya wis."

"Lan apa sing bakal kelakon ing file?"

"File bakal digabungake."

"Inggih, punika muni apik. Muga-muga padha kelangan ing tumindak."

"Lan banjur sawetara. Oke, ayo ngaso."

"Ana akeh informasi migunani  ing kene "