CVSComparison
Оглавление
Содержание
CVS
Классическая система управления версиями программного обеспечения. Имеется обычный и WEBbased интерфейс.
- Главные недостатки
- нет прямых средств для переименование файлов и директорий, неэффективное хранение бинарных файлов, не атомарные commit'ы.
Коммиты | не атомарные | |
Перемещение и переименование файлов и директорий | нет | |
Копирование файлов и директорий | нет | |
Репликация, создание удаленной копии репозитория | нет | |
Прием изменений из удаленного репозитория | нет | |
Разграничение доступа к различным частям репозитория | ограниченно, через "pre-commit hook scripts" | |
Changesets - объединение группы связанных изменений в разных файлах в один логический блок | нет | |
Подробная история построчных изменений | да | |
Возможность получения отдельной директории из репозитория | да | |
Контроль изменений в рабочей копии, до commit'а в репозиторий | да, cvs diff | |
Задание отдельного текста комментария для отдельного файла при commit'е | нет, только на блок изменений | |
Качество и объем документации | отлично | |
Простота установки, зависимость от стороннего ПО | хорошо, cvs есть в пакетах к системе, ничего доустанавливать не нужно | |
Совместимость команд с CVS | да | |
Сервер для доступа по сети | да | |
Web интерфейсы пользователя | множество (WebCVS, ViewCVS, Chora, wwCVS) | |
GUI интерфейсы пользователя | множество (WinCVS, Cervisia (KDE)), встроенная поддержка во многих IDE | |
Лицензия | GPL |
- OpenCVS - инициатива проекта OpenBSD по созданию защищенной реализации CVS, с поддержкой гибкой системы контроля доступа к репозиторию.
Subversion
Система контроля версий программ, спозиционированная как замена CVS для Open Source разработчиков.
Коммиты | атомарные | |
Перемещение и переименование файлов и директорий | да | |
Копирование файлов и директорий | да | |
Репликация, создание удаленной копии репозитория | да, с версии 1.4.0 (svnsync) | |
Прием изменений из удаленного репозитория | через внешние скрипты (SVN::Mirror, svn-push) | |
Разграничение доступа к различным частям репозитория | да, через средства WebDAV, с версии 1.3.0 - встроенными средствами | |
Changesets - объединение группы связанных изменений в разных файлах в один логический блок | частично реализовано | |
Подробная история построчных изменений | да | |
Возможность получения отдельной директории из репозитория | да | |
Контроль изменений в рабочей копии, до commit'а в репозиторий | да | |
Задание отдельного текста комментария для отдельного файла при commit'е | нет | |
Качество и объем документации | отлично | |
Простота установки, зависимость от стороннего ПО | При выборе Apache как сервера тянет Apache 2 и WebDAV. Часто есть в пакетах | |
Совместимость команд с CVS | да | |
Сервер для доступа по сети | WebDAV+DeltaV или собственный протокол | |
Web интерфейсы пользователя | множество (ViewCVS, SVN::Web, WebSVN, ViewSVN, mod_svn_view, Chora, Trac, SVN::RaWeb::Light, SVN Browser, Insurrection) | |
GUI интерфейсы пользователя | множество (TortoiseSVN, RapidSVN, Jsvn) | |
Клиенты для WIndows | Есть (TortoiseSVN) | |
Лицензия | Apache/BSD-style |
- Достоинства
- поддержка почти всех функций CVS, устранение главных недостатков CVS.
- Недостатки
- относительно большая ресурсоемкость (в старых версиях), проблемы с объединением ветвей.
svk
Система управления версиями на Perl, написанная с использованием библиотеки fs от subversion, и предназначенная для ведения версий в децентрализованном проекте, в котором присутствуют люди как уже использующие разные системы контроля версий, так и не использующие. Например, прекрасно подходит для контроля версий документов, имеющих представления на нескольких языках.
Коммиты | атомарные | |
Перемещение и переименование файлов и директорий | да | |
Копирование файлов и директорий | да | |
Репликация, создание удаленной копии репозитория | да | |
Прием изменений из удаленного репозитория | да | |
Разграничение доступа к различным частям репозитория | да | |
Changesets - объединение группы связанных изменений в разных файлах в один логический блок | частично | |
Подробная история построчных изменений | да | |
Возможность получения отдельной директории из репозитория | да | |
Контроль изменений в рабочей копии, до commit'а в репозиторий | да | |
Задание отдельного текста комментария для отдельного файла при commit'е | нет | |
Качество и объем документации | документации мало | |
Простота установки, зависимость от стороннего ПО | subversion + ряд perl модулей | |
Совместимость команд с CVS | да | |
Сервер для доступа по сети | есть | |
Web интерфейсы пользователя | есть, как у subversion | |
GUI интерфейсы пользователя | нет | |
Лицензия | Perl License |
Arch
Стабильная распределенная система контроля версий, выросшая из набора shell скриптов (как и CVS). Поддерживает объединение ветвей и переименование файлов/директорий.
Коммиты | атомарные | |
Перемещение и переименование файлов и директорий | да | |
Копирование файлов и директорий | нет | |
Репликация, создание удаленной копии репозитория | да | |
Прием изменений из удаленного репозитория | да | |
Разграничение доступа к различным частям репозитория | дв | |
Changesets - объединение группы связанных изменений в разных файлах в один логический блок | да | |
Подробная история построчных изменений | только в ViewARCH | |
Возможность получения отдельной директории из репозитория | только репозиторий целиком | |
Контроль изменений в рабочей копии, до commit'а в репозиторий | да | |
Задание отдельного текста комментария для отдельного файла при commit'е | нет | |
Качество и объем документации | удовлетворитольное | |
Простота установки, зависимость от стороннего ПО | отлично | |
Совместимость команд с CVS | частично | |
Сервер для доступа по сети | отлично (FTP, SFTP, WebDAV,SMB) | |
Web интерфейсы пользователя | ViewARCH, ArchZoom | |
GUI интерфейсы пользователя | tlator, Octopy, ArchWay | |
Лицензия | GNU GPL |
Monotone
http://www.venge.net/monotone/
Распределенная система контроля версий, представляющая собой набор обособленных репозиториев (для каждого разработчика) с гибкими средствами синхронизации, превращающими их в единое целое. Команды похожи на CVS.
Коммиты | атомарные | |
Перемещение и переименование файлов и директорий | да | |
Копирование файлов и директорий | да | |
Репликация, создание удаленной копии репозитория | да | |
Прием изменений из удаленного репозитория | да | |
Разграничение доступа к различным частям репозитория | да | |
Changesets - объединение группы связанных изменений в разных файлах в один логический блок | да | |
Подробная история построчных изменений | да | |
Возможность получения отдельной директории из репозитория | нет | |
Контроль изменений в рабочей копии, до commit'а в репозиторий | да | |
Задание отдельного текста комментария для отдельного файла при commit'е | да | |
Качество и объем документации | хорошо | |
Простота установки, зависимость от стороннего ПО | отлично | |
Совместимость команд с CVS | частично | |
Сервер для доступа по сети | хорошо (netsync) | |
Web интерфейсы пользователя | нет | |
GUI интерфейсы пользователя | нет | |
Лицензия | GNU GPL |
OpenCM
Пакет контроля версий для проектов ведомых группой разработчиков. OpenCM менее функционален чем CVS, но поддерживает все базовые, наиболее часто используемые, возможности. Плюсы: имеет отличную систему разграничения доступа, поддерживает шифрование передаваемых данный, имеет встроенные средства контроля целостности, поддерживает переименование и атомарное изменение репозитория.
Коммиты | атомарные | |
Перемещение и переименование файлов и директорий | да | |
Копирование файлов и директорий | нет | |
Репликация, создание удаленной копии репозитория | нет | |
Прием изменений из удаленного репозитория | нет | |
Разграничение доступа к различным частям репозитория | права доступа привязаны к branch | |
Changesets - объединение группы связанных изменений в разных файлах в один логический блок | да | |
Подробная история построчных изменений | ? | |
Возможность получения отдельной директории из репозитория | нет | |
Контроль изменений в рабочей копии, до commit'а в репозиторий | да | |
Задание отдельного текста комментария для отдельного файла при commit'е | ? | |
Качество и объем документации | нормально | |
Простота установки, зависимость от стороннего ПО | хорошо | |
Совместимость команд с CVS | да | |
Сервер для доступа по сети | есть клиент/сервер | |
Web интерфейсы пользователя | нет | |
GUI интерфейсы пользователя | нет | |
Лицензия | GNU GPL, возможно поменяется на BSD или CPL |
Aegls
Коммиты | атомарные | |
Перемещение и переименование файлов и директорий | да | |
Копирование файлов и директорий | нет | |
Репликация, создание удаленной копии репозитория | да | |
Прием изменений из удаленного репозитория | да | |
Разграничение доступа к различным частям репозитория | да | |
Changesets - объединение группы связанных изменений в разных файлах в один логический блок | ||
Подробная история построчных изменений | да | |
Возможность получения отдельной директории из репозитория | да | |
Контроль изменений в рабочей копии, до commit'а в репозиторий | нет | |
Задание отдельного текста комментария для отдельного файла при commit'е | да | |
Качество и объем документации | среднее | |
Простота установки, зависимость от стороннего ПО | работает под root, файлы SUID-root | |
Совместимость команд с CVS | нет | |
Сервер для доступа по сети | слабо развит | |
Web интерфейсы пользователя | да | |
GUI интерфейсы пользователя | tkaegis | |
Лицензия | GNU GPL |
Darcs
Коммиты | атомарные | |
Перемещение и переименование файлов и директорий | да | |
Копирование файлов и директорий | нет | |
Репликация, создание удаленной копии репозитория | да | |
Прием изменений из удаленного репозитория | да | |
Разграничение доступа к различным частям репозитория | нет | |
Changesets - объединение группы связанных изменений в разных файлах в один логический блок | да | |
Подробная история построчных изменений | да | |
Возможность получения отдельной директории из репозитория | нет | |
Контроль изменений в рабочей копии, до commit'а в репозиторий | да | |
Задание отдельного текста комментария для отдельного файла при commit'е | нет | |
Качество и объем документации | хорошо | |
Простота установки, зависимость от стороннего ПО | для сборки нужен Glasgow Haskell Compiler | |
Совместимость команд с CVS | нет | |
Сервер для доступа по сети | через HTTP, SSH или email | |
Web интерфейсы пользователя | darcs.cgi | |
GUI интерфейсы пользователя | нет | |
Лицензия | GNU GPL |
Vesta
Альтернатива комплекта CVS и make.
Коммиты | атомарные | |
Перемещение и переименование файлов и директорий | да | |
Копирование файлов и директорий | да | |
Репликация, создание удаленной копии репозитория | да | |
Прием изменений из удаленного репозитория | да | |
Разграничение доступа к различным частям репозитория | да | |
Changesets - объединение группы связанных изменений в разных файлах в один логический блок | нет | |
Подробная история построчных изменений | нет, но можно просто посмотреть файл | |
Возможность получения отдельной директории из репозитория | только блоками | |
Контроль изменений в рабочей копии, до commit'а в репозиторий | да | |
Задание отдельного текста комментария для отдельного файла при commit'е | нет | |
Качество и объем документации | мало | |
Простота установки, зависимость от стороннего ПО | средне | |
Совместимость команд с CVS | нет | |
Сервер для доступа по сети | интегрирован | |
Web интерфейсы пользователя | Vestaweb | |
GUI интерфейсы пользователя | нет | |
Лицензия | GNU LGPL |
BitKeeper
Хорошая коммерческая система
Perforce
Хорошая коммерческая система.
Коммиты | атомарные | |
Перемещение и переименование файлов и директорий | ? | |
Копирование файлов и директорий | ? | |
Репликация, создание удаленной копии репозитория | ? | |
Прием изменений из удаленного репозитория | да | |
Разграничение доступа к различным частям репозитория | да | |
Changesets - объединение группы связанных изменений в разных файлах в один логический блок | да | |
Подробная история построчных изменений | да | |
Возможность получения отдельной директории из репозитория | да | |
Контроль изменений в рабочей копии, до commit'а в репозиторий | да | |
Задание отдельного текста комментария для отдельного файла при commit'е | нет | |
Качество и объем документации | объём большой, качество среднее | |
Простота установки, зависимость от стороннего ПО | ?; пакет полностью самодостаточен и не зависит от стороннего ПО | |
Совместимость команд с CVS | нет? | |
Сервер для доступа по сети | p4d, p2p | |
Web интерфейсы пользователя | p4web | |
GUI интерфейсы пользователя | p4v, p4win | |
Лицензия | все компоненты пакета распространяются бесплатно в бинарном виде и являются полностью функциональными; исключение составляет сервер p2d, который без приобретения лицензии предоставляет возможность иметь 2-х пользователей и 5 рабочих пространств; для Open Source проектов лицензия предоставляется бесплатно |
- Достоинства
- наличие документации к API и исходных текстов для написания собственного Perforce клиента
- всеми компонентами пакета поддерживается большое количество ОС:
- Linux 2.4.x for x86/PPC, 2.6.x for x86/x86_64
- Solaris for x86/x86_64/IA64
- FreeBSD for x86/x86_64/SPARC64; Darwin for x68/PPC
- Mac OS X for x68/PPC
- IBM AIX for PPC
- SGI Irix for MIPS
- Windows for x86/x86_64/IA64, Cygwin for x86
- GUI компоненты, за исключением p4win, написаны на базе Qt, что делает их внешний вид и функциональность одинаковым под всеми поддерживаемыми ОС
- Недостатки
- высокая цена лицензии на сервер
- распространяется в бинарном виде
Git
Система контроля версий, разработанная Линусом Торвалдсом самоё специально для Linux. Изначально рассчитана на работу с крупными проектами.
Коммиты | атомарные | |
Перемещение и переименование файлов и директорий | да | |
Копирование файлов и директорий | нет | |
Репликация, создание удаленной копии репозитория | да | |
Прием изменений из удаленного репозитория | да | |
Разграничение доступа к различным частям репозитория | нет | |
Changesets - объединение группы связанных изменений в разных файлах в один логический блок | да | |
Подробная история построчных изменений | да | |
Возможность получения отдельной директории из репозитория | нет | |
Контроль изменений в рабочей копии, до commit'а в репозиторий | да | |
Задание отдельного текста комментария для отдельного файла при commit'е | нет | |
Качество и объем документации | очень хорошо | |
Простота установки, зависимость от стороннего ПО | да, C/shell/perl | |
Совместимость команд с CVS | нет | |
Сервер для доступа по сети | git, git+ssh, http | |
Web интерфейсы пользователя | gitweb, cgit | |
GUI интерфейсы пользователя | gitk, qgit, ... | |
Лицензия | GNU GPL v2 |
- Достоинства
- высокая скорость.
- мощные средства работы с бранчами.
- Недостатки
- there's more than one way to do it
- Linus Torvalds on git - Линус рассказывает о Git, что, зачем и почему.