SVN (Apache Subversion) — 2000-yilda CollabNet kompaniyasi tomonidan boshlangan, markazlashgan versiya nazorati tizimi. U o’sha davrda keng qo’llanilgan, ammo texnik jihatdan cheklangan CVS (Concurrent Versions System) tiziga muqobil sifatida yaratilgan.
CVS’ga muqobil sifatida yaratilishi
CVS fayllarni ko’chirish yoki papkalarni qayta nomlashni to’liq kuzata olmasligi, shuningdek bir nechta faylni bitta izchil o’zgarish (commit) sifatida saqlay olmasligi kabi jiddiy cheklovlarga ega edi. SVN aynan shu kamchiliklarni bartaraf etib, CVS foydalanuvchilariga tanish buyruqlar tizimini saqlagan holda yaratilgan.
Markazlashgan arxitektura
SVN’da butun loyiha tarixi faqat bitta markaziy serverda saqlanadi, dasturchilar esa faqat joriy versiyani o’z kompyuteriga yuklab oladi. Bu arxitektura serverga doimiy internet ulanishini talab qiladi, ammo ayni paytda kirish huquqlarini markazlashgan tarzda nazorat qilishni osonlashtiradi.
Git’dan asosiy farqi
Git kabi taqsimlangan tizimlardan farqli o’laroq, SVN’da har bir dasturchi butun loyiha tarixining nusxasini emas, balki faqat joriy holatni saqlaydi. Bu farq SVN’da oflayn rejimda tarix bilan ishlashni (masalan, avvalgi commit‘larni ko’rish) cheklaydi, chunki bu ma’lumot faqat serverda mavjud.
Hozirgi kunda qo’llanilishi
Git‘ning sanoatda ustunlik qilishiga qaramay, SVN hamon ba’zi yirik korporativ tashkilotlarda, ayniqsa katta ikkilik fayllar (masalan, o’yin resurslari yoki muhandislik chizmalari) bilan ishlashda qo’llaniladi, chunki SVN’ning markazlashgan modeli bunday fayllar bilan ba’zida samaraliroq ishlaydi.
Nima uchun hamon foydalaniladi
Ko’p yillik SVN infratuzilmasiga ega tashkilotlar uchun Git‘ga to’liq o’tish sezilarli vaqt va o’qitish xarajatlarini talab qiladi, bu esa ko’plab kompaniyalarni, garchi Git texnik jihatdan afzalliklarga ega bo’lsa-da, mavjud SVN tizimida qolishga undaydi.
Bog’liq tushunchalar
CVS, Git, Markazlashgan versiya nazorati, Versiya nazorati, Branch, Repozitoriy, Commit