Фрагмент для ознакомления
2
Система контроля версий - программа для облегчения работы с изменяющейся информацией. Система контроля версий позволяет хранить 1 и более версий одного и того же документа, при необходимости перейти на более ранние версии, определить, кто и когда внес то или иное изменение. Такие системы наиболее широко используются при разработке программного обеспечения для хранения исходных кодов разрабатываемой программы. Однако они могут успешно применяться и в других сферах, где работа ведется с большим количеством постоянно меняющихся электронных документов.
Во многих случаях бывает, что над одним проектом одновременно работают несколько человек. Если два человека исправляют один и тот же файл, то один из них может случайно отменить изменения, внесенные другим. Системы контроля версий отслеживают такие конфликты и предоставляют средства их разрешения. Большинство систем могут автоматически объединять (объединять) изменения, сделанные разными разработчиками. Однако такое автоматическое объединение изменений обычно возможно только для текстовых файлов и при условии, что разные (не перекрывающиеся) части этого файла были изменены. Такое ограничение связано с тем, что большинство систем контроля версий ориентированы на поддержку процесса разработки программного обеспечения, а исходные коды программ хранятся в текстовых файлах. Если автоматическое объединение не удалось, система может предложить решение проблемы вручную. Такие системы наиболее широко используются при разработке программного обеспечения для хранения исходного кода программы. Однако они могут успешно применяться и в других сферах, где работа ведется с большим количеством постоянно меняющихся электронных документов. В частности, в САПР используются системы контроля версий, обычно как часть систем контроля данных. Многие системы управления версиями предоставляют ряд других возможностей:
1. Разрешить создавать разные версии одного документа, т.е. ветки, с общей историей изменений до разветвления и с разными - после него.
2. Возможным узнать, кто и когда добавил или изменил определенный набор строк в файле.
3. Журнал изменений, в который пользователи могут записывать объяснения того, что и почему они изменили в этой версии.
4. Контролирует права доступа пользователей, разрешая или запрещая чтение или изменение данных, в зависимости от того, кто запрашивает это действие.
Для сравнения были выбраны наиболее распространенные системы контроля версий: RCS, Subvеrsion, Monoton, Git.
RCS - система контроля версий.
Плюсы:
1. RCS прост в использовании и хорошо подходит для знакомства с принципами работы систем контроля версий.
2. Подходит для резервного копирования отдельных файлов, не требующих частого изменения группой пользователей.
3. Широко распространяется и продается в большинстве свободно распространяемых операционных систем.
Минусы:
1. Отслеживает изменения только отдельных файлов, что не позволяет использовать его для управления версиями больших проектов.
2. Не позволяет нескольким пользователям одновременно вносить изменения в один и тот же файл.
3. Низкая функциональность по сравнению с современными системами контроля версий. Для сравнения были выбраны наиболее распространенные системы контроля версий: RCS, CVS, Subvеrsion, аеgis, BаzаotаrFS.
Система управления версиями Subvеrsion.
Плюсы:
1. Система команд, аналогичная CVS.
2. Поддерживается большинство возможностей CVS.
3. Разнообразие графических интерфейсов и удобное управление с консоли.
4. История изменения файлов и каталогов отслеживается даже после изменения имен и переносов.
5. Высокая эффективность работы, как с текстовыми, так и с бинарными файлами.
6. Встроенная поддержка многих интегрированных инструментов разработки, таких как KDеvеlop, Zеnd Studio и многих других.
7. Возможность создания зеркальных копий репозитория.
8. Два типа репозиториев - база данных и набор обычных файлов.
9. Возможность доступа к репозиторию через аpаchе по протоколу WеbDаV.
10. Наличие удобного механизма создания тегов и лидов проектов.
11. Можно связать определенный набор свойств с каждым файлом и каталогом, что упрощает взаимодействие с системой контроля версий.
12. Широкое распространение позволяет оперативно решать большинство возникающих проблем, опираясь на данные, накопленные интернет-сообществом.
Минусы:
1. Полная копия репозитория хранится на локальном компьютере в скрытых файлах, для чего требуется достаточно большой объем памяти.
2. Возникают проблемы с именами файлов, если локально переименованный файл одним клиентом был одновременно изменен другим клиентом и загружен в репозиторий.
3. Слабо поддерживаются операции по объединению частей проекта.