Distributed Version Control System - Part 1


To Read - πŸ‘‰πŸ» Distributed Version Control System (Part 2) - Git Commands πŸ‘ˆπŸ»

Distributed Version Control System


Distributed Version Control System (DVCS) ဆိုတာ source code တွေα€€ို တစ်α€”ေα€›ာထဲα€™ှာ α€žိα€™်းα€†α€Š်းတာတင်α€žာမကပဲ၊ ပြင်ဆင်α€™ှုတိုင်းα€€ို α€™ှတ်တမ်းတင်ပေးပြီး ထဖွဲဝင်α€™ျားထကြား ပူးပေါင်းα€œုပ်ဆောင်α€”ိုင်α€…ေတဲ့ α€…α€”α€…်α€–ြα€…ိပါα€α€š်။ 
Distributed Version Control System (Git) - Git Hub, Git Lab, Bit Bucket, Azure Repos, ...

VCS applications တွေα€€ source code α€€ို α€žိα€™်းα€†α€Š်းပေးα€›ုံα€žာα€™α€€ ထောα€€်α€–ော်ပြပါ features supportတွေα€€ို α€œုပ်ပေးပါα€α€š်။

✨ Repository 

Developers တွေα€Ÿာ repository α€œိုခေါာတဲ့ α€žိုα€œှောင်α€›ုံα€™ျားα€…ွာα€€ို α€–α€”်တီးα€”ိုင်ပြီး α€€ိုα€š်ပိုင် project တွေα€€ို α€žိα€™်းα€†α€Š်းထားα€œို့ရပါα€α€š်။

✨ Collaboration 

α€€ိုα€š်α€–α€”်တီးထားတဲ့ repository တွေα€€ို တခြား developers တွေα€€ို sharing α€œုပ်α€”ိုင်α€žα€œို project တစ်ခုထဲ ထတူα€›ေးα€”ေတဲ့ developer team members တွေα€€ို invite α€œုပ်ပြီး α€›ေးထားတဲ့ source code တွေα€€ို repository ပေါာ ထချိα€”်α€”ဲ့တပြေးα€Šီ တင်ခြင်းထားα€–ြင့် team တစ်ခုα€œုံးα€€ α€›ေးထားတဲ့ codingတွေα€Ÿာ ထမြဲ update α€–ြα€…်α€”ေα€™ှာα€–ြα€…်ပါα€α€š်။

✨ Version History 

VCS α€›ဲ့ထားα€žာချα€€်α€€ version history တွေα€€ို ထချိα€”်α€™α€›ွေး ပြα€”်α€€ြα€Š့်α€œို့ရပြီး α€œိုထပ်ရင် α€€ိုα€š်α€œိုချင်တဲ့ version ဆီ ပြα€”်α€žွားα€œို့ရခြင်းပါပဲ။ VCS term ထရ source code တွေα€€ို upload α€œုပ်α€œိုα€€်ခြင်းα€€ို commit and push α€œုပ်α€α€š်α€œို့ခေါာပြီး repository branch တစ်ခုထပေါာ α€€ိုα€š်α€›ေးထားတဲ့ source code α€€ို တင်α€œိုα€€်တာα€”ဲ့ commit ID တစ်ခုထွα€€်α€œာပါα€α€š်။ ထို unique ID α€€ိုα€‘α€žုံးပြုပြီး α€œိုထပ်ရင် α€€ိုα€š်α€œိုချင်တဲ့ version ဆီ ပြα€”်revertα€œို့ ရပါα€α€š်။

✨Branching & Merging

Repository တစ်ခုထဲα€™ှာ branch ပေါင်းα€™ျားα€…ွာ α€–α€”်တီးα€œို့ရပါα€α€š်။ α€₯ပမာ develop, features, main, hotfix, testing, debug branches α€…α€žα€–ြင့် branch and sub branches တွေထများα€€ြီးခွဲα€”ိုင်ပါα€α€š်။ Developers တွေα€Ÿာ α€žα€€်ဆိုင်α€›ာ branch တွေα€™ှာ α€€ိုα€š်α€›ေးထားတဲ့ source code  တွေα€€ိုတင်၊ α€”ောα€€်ဆုံး error ကင်းတဲ့ final version α€€ို main branch ထဲα€™ှာ ပြα€”်ပေါင်း (merge) α€œုပ်ခြင်းထားα€–ြင့် production ready product တစ်ခုα€€ို α€–α€”်တီးα€”ိုင်α€™ှာα€–ြα€…်ပါα€α€š်။

✨Accountability

Development team α€‘α€œိုα€€် ထတူတကွα€‘α€œုပ်α€œုပ်α€€ြတဲ့ထခါα€™ှာ VCS α€€ိုα€žုံးခြင်းထားα€–ြင့် ပြောင်းα€œဲα€™ှုα€žေးα€žေးα€œေးကထစ α€˜α€š်α€žူα€œုပ်ခဲ့α€α€š် α€˜α€š်α€”ေα€›ာပြောင်းα€œိုα€€်α€α€š်ဆိုတာα€€ို ပြα€”်α€…α€…်α€€ြα€Š့်α€œို့ရပါα€α€š်။

Continuous Integration & Continuous Deployment - CI/CD

Production ready application တစ်ခုα€€ို α€–α€”်တီးတဲ့ထခါα€™ှာ VCS α€”ဲ့ထတူ CI/CD tool (GitHub action, Bit Bucket pipelines, GitLab CI,.. )တစ်ခုခုα€”ဲ့ထတူ α€‘α€žုံးပြုခြင်းထားα€–ြင့် changes တွေα€€ို automatically build, test and deploy α€œုပ်α€”ိုင်ပါα€α€š်။
α€‘α€€α€š်၍ VCS α€€ိုα€žာ α€‘α€žုံးမပြုα€–ူးဆိုရင် error တစ်ခုα€›ှင်းပြီးတိုင်း change တစ်ခုα€œုပ်ပြီးတိုင်း manual upload and deploy α€œုပ်α€”ေα€›α€™ှာα€–ြα€…်ပါα€α€š်။

πŸ”– Why is it Vital ?

α€šα€”ေ့‌ခေတ်α€™ှာ version control systems တွေα€Ÿာ developers တွေ ထတွα€€် α€™α€›ှိα€™α€–ြα€…်ပါပဲ။  

Back Up & Recovery: ထထူးα€žα€–ြင့် project α€€ြီးα€€ြီးα€›ေးα€”ေတဲ့α€žူတွေဆိုရင် version control system α€žာ α€™α€žုံးα€–ူးဆိုရင် α€‘α€€α€š်၍ error တစ်α€…ုံတစ်ခုတက်α€œို့ ထရင် version α€€ို ပြα€”်α€žွားချင်α€α€š်ဆိုရင် ထစထဆုံး code တွေပြα€”်α€›ေးα€›α€™ှာပါ။ 

Collaboration: Team work α€”ဲ့ α€‘α€œုပ်α€œုပ်တာဆိုရင် Developer တွေ frontend/ backend α€‘α€œိုα€€်α€žော်α€œα€Š်းα€€ောင်း ၊ features α€œိုα€€်α€žော်α€œα€Š်းα€€ောင်း ခွဲα€›ေးတဲ့ထခါα€™ှာ တစ်α€šောα€€်α€›ေးပြီးတာ တစ်α€šောα€€်α€…ောင့်၊ α€›ေးပြီးတဲ့ source code α€€ို တခြား team member ဆီပို့ ၊ α€žူα€€α€›ေး၊ α€€ိုα€š်ကပို့၊ α€”ောα€€်ဆုံး final version code တွေပြα€”်ပေါင်း α€”ဲ့ ထချိα€”်α€€ုα€”်ပြီး efficient α€–ြα€…်α€™ှာα€™α€Ÿုတ်ပါα€–ူး။

α€₯ပမာ - Application တစ်ခုα€€ို ထတူ develop α€œုပ်α€€ြα€α€š်ဆိုတာ word document တစ်ခုထဲα€™ှာ α€œူα€™ျားα€…ွာ ဝိုင်းα€›ေးα€”ေα€€ြတာα€”ဲ့တူပါα€α€š်။ α€’ီထခါα€™ှာ α€€ိုα€š်α€›ဲ့ local word file ထဲα€™ှာ‌α€›ေး၊  α€›ေးပြီးတစ်α€–α€€်α€žူα€€ိုပို့၊ α€žူα€€save ပြα€”်α€›ေး၊ ပြα€”်ပို့α€”ဲ့ ထချိα€”်ထရမ်းα€€ုα€”်ပါα€α€š်။

α€š‌α€”ေ့ခေတ်α€™ှာ Cloud Storage Microsoft Word α€€ိုα€‘α€žုံးပြုခြင်းထားα€–ြင့် authors တွေ တစ်α€…ုတစ်α€…α€Š်းထဲ fileတစ်ခုထဲα€™ှာ တစ်ပြိုင်α€α€Š်း α€›ေးα€”ိုင်ပါα€α€š်။

Version control system ဆိုတာα€œα€Š်း α€’ီα€žα€˜ောပါပဲ။ Project တစ်ခုα€€ို developer α€™ျားα€…ွာα€€ α€žူတို့ local device α€™ှာ α€›ေးα€€ြα€™α€š်။ ပြီးရင် VCS repo ထဲα€™ှာ α€žα€€်ဆိုင်α€›ာ branch α€™ှာတင်α€™α€š်။ α€žူα€™ျားα€›ေးထားတဲ့ version update α€€ို α€€ိုα€š့်α€›ဲ့ local machine α€™ှာ download α€œုပ်α€™α€š်။ α€€ိုα€š်α€›ေးထားတဲ့ version α€”ဲ့ပေါင်းပြီး ပြα€”်တင်α€™α€š်။ α€’ီα€”α€Š်းထားα€–ြင့် Development teamα€Ÿာ တစ်ဦးα€”ဲ့တစ်ဦး α€…ောင့်ဆိုင်း‌α€”ေα€…α€›ာα€™α€œိုပဲ ထချိα€”်α€€ုα€”်α€žα€€်α€žာα€…ွာα€”ဲ့  project တစ်ခုα€€ို α€…α€”α€…်တကျα€α€Š်ဆောα€€်α€”ိုင်α€™ှာ α€–ြα€…်ပါα€α€š်။ 

✨ May ✨

       23 Sept 2025 (23:52 BST)
   

Comments

Popular posts from this blog

What Is a Design Pattern and Why Should We Use It?

Distributed Version Control System - Part 2