Version Control System. (VCS) Versiya Kontrol Sistemi. (VKS)
1. VCS CONCEPT. VKS Konsepti
Versiyanın kontrolunun ilkin variantları belə idi ki, çox adam proyektlərini fərqli dirrektoriyalarda saxlayırdı. Yəni eyni proyekt müxtəlif adnan saxlanılır. Faylların yaradılma tarixinə baxıb bilmək olurdu hansı yeni, hansı köhnə fayllardır. Hər hansı dəyişiklik bəyənilmədisə servərə köhnə faylı yenidən yükləmək olardı.

Digər variant folderi şəbəkədə paylaşmaq(network share) idi. Yəni siz proyekti şəbəkənizdə paylaşırsız ki, komandanızın üzvləri və siz eyni faylları istifadə edə biləsiz. Əsas problem onda idi ki, faylı eyni zamanda əgər istifadə edirlərsə ( yəni kod yazırlar), sonda faylda yalnız son yaddaşda saxlayanın məlumatı qalacaq. Üçüncü istifadə olunan variant elə ikinci variantla oxşardır yəni siz cloud-dan istifadə etsəniz belə, eyni çətinliklərlə üzləşəcəksiz. Çətinliklərdən çox danışmaq olar, gəlin fikirləşək versiya kontrol sistemi nələri əhatə etməlidir?
VCS məqsədləri.

1. BACKUP AND RESTORE - ARXIVLƏŞDİRMƏ VƏ BƏRPASI
Proyektimiz backup olduğu halda, proyekt rahat bərpa oluna bilir. Təsəvvür edin proyekt əlavə olaraq hardasa saxlamışıq və əgər serverdən silinsə vəya yeni developer onu özünə köçürtməy istəsə həmin backupdan istifadə edə bilər.
2. SYNCHRONIZATION - SİNXRONİZASİYA
Sinxronizasiya bir neçə developerin eyni zamanda eyni proyektin üzərində işləmək imkanını yaradır. Yəni bir developer “index.php” faylında dəyişiklik etsə və eyni faylda eyni zamanda dəyişiklik olsa belə bunu rahat idarə edə bilirik.
3. UNDO - GERİ QAYTARMA
Geri qaytarma imkanı çox önəmli və lazımlı bir funksiyadır. Əlbətdə biz dəyişiklikləri geri qaytarmaq imkanının olmasını istəyirik. Misal üçün hər hansısa dəyişiklik etdiksə və sonra qərar verdik ki, artıq bu lazım deyil. O zaman tez bir zamanda bütün etdiyimiz dəyişikliklər geri qaytara bilirik.
4. TRACK CHANGES AND OWNERSHIP DƏYİŞİKLİKLƏRİN İZLƏNİLMƏSİ VƏ SAHİBLİK
Track Changes o deməkdir ki, biz izləyə bilirik kim hansı kodu yazıb, hansı feature( funksionallıq ) üzərində çalışır.
5. SANDBOXING
Bu ayrıca izolasiya olunmuş bir sistemdi harada biz nəsə yeni bir şey yoxlaya bilərik. Hansından ki bizə hələ əmin deyilik və sadəcə eksperimentlər edirik.
6. BRANCHING BUDAĞLAMA
Budağların yaradılma və bitişdirmə imkanı olması vacib amillərdən biridir. Daha ətraflı budaqlar haqqında yazacam aşağıda.
Ümumiyyətlə VCS müxtəlif kateqoriyalara bölmək olar. İlk kriteriyanı işləmə mexanizminə görə götürə bilərik:
1. LOCK-MODIFY-UNLOCK
2. COPY-MODIFY-MERGE
