Разлика между CVS и SVN

CVS срещу SVN

CVS (Concurrent Versions System) и SVN (SubVersioN) са две файлови системи за управление на версиите, които популярно се използват от екипи, които си сътрудничат по един проект. Тези системи позволяват на сътрудниците да следят промените, които са направени и да знаят кой се развива кой и дали даден клон трябва да се приложи към главния ствол или не. CVS е много по-възрастният от двете и е бил стандартният инструмент за сътрудничество за много хора. SVN е много по-нов и въвежда много подобрения, за да отговори на нуждите на повечето хора.

Вероятно най-голямото подобрение на SVN е добавянето на атомни заряди. Атомните ангажименти позволяват всеки ангажимент да бъде приложен изцяло или изобщо не се прилага. Това може да бъде доста полезно, когато сървърът се срива по средата на компрес. С SVN, ангажиментът може да бъде върнат назад, докато CVS не може да отмени частичния ангажимент. Друго допълнение е възможността за чисто преименуване и преместване на файловете в хранилището. С SVN файловете, които са преименувани или премахнати, все още носят своята версия на ревизията и метаданните. CVS също не е в състояние да натисне нови промени в родителските хранилища, докато това може да бъде постигнато в SVN с използването на някои инструменти. Тези функции просто не се поддържат от CVS или не са част от първоначалния му дизайн и често причиняват много проблеми на някои хора.

От гледна точка на достъп до мрежата, и двата поддържат собствени протоколи, които могат да бъдат тунелирани чрез SSH връзка, за да се гарантира сигурността на информацията, която се предава през мрежата. SVN добавя малко повече с WebDAV + DeltaV. Този протокол се основава на HTTP и HTTPS и предоставя на потребителите друга опция да се свържат към SVN.

За повечето хора, които тепърва започват със SVN и CVS, SVN е най-добрият и логичен вариант между двете. Той предоставя на потребителя подходящата функция, която отговаря на неговите нужди. Единствената причина да продължите да използвате CVS е, ако сте останали с наследена система, която е доста трудна за преминаване към SVN система.

Резюме:
1. SVN е по-нов и усъвършенстван в сравнение с много по-стария CVS
2. SVN позволява атомни ангажименти, докато CVS не
3. SVN позволява преименуване и преместване, докато CVS не го прави
4. SVN позволява разпространение на промените в родителските хранилища, докато CVS не го прави
5. SVN поддържа два мрежови протокола, докато CVS поддържа само един