`

СПЕЦИАЛЬНЫЕ
ПАРТНЕРЫ
ПРОЕКТА

Архив номеров

Как изменилось финансирование ИТ-направления в вашей организации?

Best CIO

Определение наиболее профессиональных ИТ-управленцев, лидеров и экспертов в своих отраслях

Человек года

Кто внес наибольший вклад в развитие украинского ИТ-рынка.

Продукт года

Награды «Продукт года» еженедельника «Компьютерное обозрение» за наиболее выдающиеся ИТ-товары

 

Контроль версий – для всех и каждого

0 
 

Наверное, все сталкивались с проблемой хранения многих копий одних и тех же файлов. Например, вы продолжительное время работаете над проектом, который состоит из одного или нескольких документов, и хотели бы иметь возможность возвращаться к его прежнему состоянию. Решение в лоб состоит в «фиксации» проекта в определенные моменты времени, для чего, скажем, достаточно создавать отдельные папки и копировать в них документы. Фактически это вариант резервного копирования, которое можно автоматизировать различными известными способами.

Однако вскоре вы обнаружите, что следить за этими папками или архивами довольно неудобно. Во-первых, им нужно дать содержательные имена, отражающие текущее состояние проекта, либо придумать другой способ сохранения комментариев. Во-вторых, поиск нужных файлов в резервных копиях не слишком оперативен. В-третьих, все это требует выполнения вручную некоторых операций, о которых нужно не забывать. Если же речь идет о коллективной работе, то проблема усугубляется еще больше – ведь у каждого из нас не только свой график, но и особое мнение относительно того, что и как должно выполняться.

Наиболее корректно и безболезненно подобные задачи решаются с помощью специального инструментария – систем контроля версий, которые позволяют хранить копии одних и тех же файлов, созданные в определенные моменты времени, и при необходимости сделать откат до любого предыдущего состояния. Первоначально они возникли как средство обеспечения совместной работы программистов, однако их успех в данной среде привел к тому, что подобная функциональность стала встраиваться и в различные программные средства для конечных пользователей, в первую очередь – в утилиты резервного копирования.

В рамках данной статьи мы рассмотрим несколько решений по контролю версий, рассчитанных на различное применение и различные аудитории, за исключением разве что ПО для восстановления информации – хотя таких продуктов довольно много, все они не подходят под нашу постановку задачи, предполагающую гарантированный результат.

Для локального рабочего места

Контроль версий – для всех и каждого
Встроенный модуль контроля версий Borland Delphi 2005 обладает функциональностью профессиональных решений

Наиболее простые и доступные решения по контролю версий предназначены для индивидуального использования. Прежде всего отметим, что подобной функциональностью могут обладать прикладные программные пакеты. Например, такая возможность присутствует в хорошо известном Microsoft Word – с ее помощью можно вручную «зафиксировать» текущее состояние документа, над которым ведется работа, либо настроить программу на автоматическое сохранение версий при каждом закрытии документа после редактирования. Дополнительно Microsoft Word предлагает средства для сравнения версий и слияния изменений. Встроенный механизм контроля версий также появился в Borland Delphi 2005, благодаря чему у программистов-одиночек отпала необходимость в поиске отдельного продукта. Но даже при использовании какой-то специализированной системы встроенные инструменты могут пригодиться.

Некое подобие системы контроля версий может быть организовано даже на базе стандартной Корзины в операционной системе Windows. Сама по себе она подходит только для восстановления удаленных файлов, однако на помощь приходят сторонние «расширители» функциональности, в частности, Undelete 5 (itc.ua/20160) компании Executive Software. Эта утилита в реальном времени отслеживает операции перезаписи файлов предопределенных типов (DOC, XLS, PPT, TXT, HTM и пр.) и каждый раз сохраняет их копии. Восстановить нужную версию можно либо непосредственно из Корзины, либо с помощью контекстного меню в Проводнике. Кроме того, Undelete 5 Professional интегрируется с аналогичной серверной программой и позволяет работать с удаленными ресурсами. Такое решение, конечно, имеет целый ряд ограничений, однако нужно учитывать, что речь не идет о специализированной системе, поэтому продукт задумывался максимально простым и легким в использовании.

В сети

Контроль версий – для всех и каждого
Контроль версий – для всех и каждого
«Теневые» копии в Windows Server 2003 также позволяют управлять версиями документов

Опытным системным администраторам, наверное, не раз встречались случаи, когда пользователи просили восстановить файл на сервере после того, как он был перезаписан или удален по сети. К сожалению, Корзина в этом случае бессильна, и Microsoft, кажется, даже не собирается исправлять данный изъян. Взамен этого в Windows Server 2003 предложена новая функция, которая одинаково хорошо подходит и для целей автоматизации резервного копирования, и для организации контроля версий, – так называемая служба «теневого» копирования.

Shadow Copies обладает способностью сохранять «снимки» состояния дисковых томов в момент своего запуска. Такой «снимок» содержит целостные данные, а все изменения, которые вносятся в содержимое тома после старта и до завершения копирования, фиксируются в журнале транзакций файловой системы и физически вносятся только после окончания процедуры. Благодаря этому данную службу можно с успехом использовать на серверах, работающих в режиме 24×7 с высокой нагрузкой, без риска получить неработоспособную резервную копию.

Пользователям предоставляется специальная клиентская программа, интегрирующаяся с обычным Проводником, с помощью которой можно восстанавливать удаленные по сети файлы и возвращаться к предыдущим версиям измененных документов, не отвлекая администратора.

К сожалению, контроль версий явно не является главной задачей службы «теневого» копирования, из-за чего в данном вопросе ей недостает гибкости. В частности, нельзя обслуживать отдельные разделяемые папки, невозможно принудительно сохранить вариант документа в определенный момент времени (только по расписанию) и т. д.

Имеется и еще одна достаточно серьезная проблема – число «снимков» тома не может превышать 64, каждая последующая копия будет затирать самую старую. При стандартных настройках «снимки» создаются дважды в день с понедельника по пятницу, следовательно, наиболее ранней будет версия документа полуторамесячной давности.

Другой пример – уже упоминавшееся приложение Undelete 5 Server. Фактически оно обеспечивает ту же функциональность, что и персональные редакции, однако дополнительно поддерживает подключение удаленных клиентов, в качестве которых могут выступать Undelete 5 Client и Undelete 5 Professional (и даже другие Undelete 5 Server). Соответственно, пользователь также получает возможность восстанавливать на сервере удаленные файлы и предыдущие версии документов.

Таким образом, Microsoft и Executive Software предлагают два различных подхода к решению одной и той же задачи. Каждый имеет как преимущества, так и недостатки, и выбор между ними будет зависеть от конкретных условий, хотя, напомним, служба «теневого» копирования стандартно присутствует во всех редакциях Windows Server 2003.

Стоит также отметить, что механизмы контроля версий – это почти обязательный атрибут систем документооборота и современных groupware-пакетов, скажем Windows SharePoint Services. Поскольку такие продукты изначально ориентированы на коллективную работу с документами, накопление версий обычно происходит в моменты выполнения процедуры check in, что является вполне разумным компромиссом по сравнению с постоянным слежением за изменениями. Кроме того, концепция, реализованная в рамках Microsoft Office System, позволяет работать с хранилищем документов и версиями не только через Web-интерфейс, но и непосредственно в прикладных программах вроде Microsoft Word.

Профессиональные решения

В целом рассмотренные нами до этого момента продукты и подходы нельзя отнести к полноценным системам контроля версий – по большому счету, они являются удобными средствами резервного копирования и восстановления данных. Что же касается современных специализированных решений для профессионального применения, то это весьма функциональные продукты, используемые для координации деятельности участников крупных проектов и позволяющие накапливать и объединять результаты их работы.

Обычно стандартная функциональность подобных систем предусматривает изначальную их ориентацию на сетевое применение с возможностью получения доступа к серверу не только из локальной, но и из глобальной сети; для хранения файлов используется репозиторий, зачастую реализуемый средствами СУБД, что позволяет масштабировать систему в зависимости от конкретных потребностей; основные функции по управлению версиями доступны из командной строки, благодаря чему разработчики могут автоматизировать процессы загрузки/выгрузки файлов; клиентские программы предоставляются для всех популярных платформ, нередко используется Web-интерфейс. Естественно, подобные решения обладают развитыми механизмами разграничения прав доступа и контроля активности пользователей, интегрируются с популярными IDE либо поддерживают стандартный интерфейс, которым является Microsoft SCC API.

Что же касается основного предназначения таких систем – управления версиями документов, то обычно предлагается полный арсенал функций для автоматической нумерации файлов, для сравнения копий и слияния изменений в ручном или автоматическом режимах, для выгрузки/загрузки определенной версии файла или всего массива информации, для управления ветвлением проекта, для уведомления участников обо всех изменениях и т. д.

Для подобных решений также весьма приветствуется наличие дополнительных возможностей из области управления проектами, обеспечения документооборота, управления требованиями – или хотя бы интеграция со специализированными пакетами.

Несмотря на то что профессиональные системы контроля версий в основном ориентированы на использование при разработке программного обеспечения, на самом деле не существует каких-либо препятствий для применения их в любых других проектах. Сами программисты очень часто обращаются к привычным для них по основной деятельности инструментам для хранения документов, не имеющих никакого отношения к программированию.

Сегодня имеется достаточно большое количество предложений данного уровня, поэтому мы рассмотрим по отдельности доступные в виде решений с открытым исходным кодом и те, которые являются коммерческими.

Проекты с открытым кодом

Их довольно много, и как это часто бывает, по критериям качества и функциональности они нередко сопоставимы с популярными коммерческими предложениями. Прежде всего следует отметить одну из старейших разработок – систему CVS (Concurrent Versions System, cvshome.org), возникшую как продолжение более раннего проекта RCS (Revision Control System). CVS не лишена определенных недостатков, во многом обусловленных ее почтенным возрастом, но все же на текущий момент она является одной из самых распространенных систем контроля версий с открытым исходным кодом. К слову, ее использует популярный ресурс Sourceforge.net.

Контроль версий – для всех и каждого
Оболочка WinCVS не отличается броским интерфейсом, но функциональности ей не занимать

Сама CVS вышла их среды Unix и лучше всего адаптирована именно для данной платформы, поэтому для Windows чаще всего выбирают одно из ответвлений проекта – CVSNT (cvsnt.org). Однако как сама CVS, так и ее клоны в «чистом» виде являются системами командной строки, и для их комфортного использования необходим GUI-клиент. Для Windows, к примеру, довольно популярен WinCVS (wincvs.org), также представляющий собой проект с открытым исходным кодом. WinCVS работает как с CVSNT, так и с CVS, но наиболее органично сочетается именно с первой системой, которая и включена в его стандартный дистрибутив.

Основные преимущества CVS и ее клонов состоят в их высокой надежности и доступности большого количества программных дополнений, а также документации на различных языках, что, опять же, обусловлено возрастом этой системы – фактически CVS является эталоном функциональности и качества в данной области. Однако в силу некоторых архитектурных ограничений в CVS невозможно реализовать наиболее современные технологии контроля версий, из-за чего один из ее отцов-основателей решил взяться за создание совершенно нового проек-та – Subversion (subversion.tigris.org).

Subversion также является открытым проектом и гораздо лучше подходит для управления изменениями структуры папок, более эффективно хранит двоичные файлы, имеет стандартную возможность возврата к состоянию проекта на определенный момент времени и много других усовершенствований. Сейчас Subversion приобретает все большую популярность и начинает теснить не только CVS, но и многие коммерческие разработки. Основной ее недостаток – отсутствие столь же качественного GUI-клиента, каким является WinCVS для CVS.

В целом системы контроля версий с открытым исходным кодом практически ни в чем не уступают коммерческим решениям, однако страдают некоторыми недостатками, характерными для open source, такими как сложная установка и настройка, пробелы в документации, отсутствие качественной поддержки, слабая интеграция с популярными средствами разработки, зачастую несколько «топорный» интерфейс пользователя.

Коммерческие предложения

Распространенное решение Visual SourceSafe от Microsoft (VSS, msdn.microsoft.com/ssafe) стало популярно благодаря поставке в комплекте с Visual Studio. На деле же у него оказывается больше недостатков, чем преимуществ, и найти довольного пользователя данного продукта сложнее, чем иголку в стоге сена. Из-за своей ненадежности VSS даже получил прозвище Visual Source unSafe. На текущий момент на сайте Microsoft доступна новая бета-версия, в которой многие огрехи компания обещает устранить.

Контроль версий – для всех и каждого
Borland StarTeam является мощным решением по принципу «все в одном»

Borland StarTeam (borland.com/starteam) – очень мощный и функциональный кросс-платформенный продукт, разрабатываемый в прошлом фирмой StarBase, которую Borland приобрела в конце 2002 г. Заметное преимущество данного решения состоит в том, что текущая версия 2005 выступает центральным элементом стратегии управления жизненным циклом приложений (Application Lifecycle Management, ALM) компании Borland и обладает расширенными возможностями интеграции со всеми ее ключевыми пакетами, используемыми при разработке программного обеспечения.

В процессе эксплуатации Borland StarTeam показал себя с лучшей стороны – это надежное масштабируемое решение, обладающее всеми возможностями, ожидаемыми от продукта данного класса. Особого внимания заслуживает его функционирование в гетерогенной среде, для чего в Borland StarTeam имеются клиенты для всех популярных программных платформ, поддерживается работа через Web-интерфейс, а также наличествует специальный режим работы сервера, предназначенный для экономии занимаемой полосы пропускания сетевого канала.

Еще одно решение, на которое стоит обратить внимание, это Perforce от одноименной компании – высокоуровневый продукт, который по своим возможностям ни в чем не уступает тому же Borland StarTeam и используется многими именитыми компаниями, например NVidia, palmOne, SYBASE, SGI и др. Perforce отличается качественной поддержкой и сравнительно низкой ценой для продукта такого уровня (к слову, компания-разработчик обещает поднять цены с 1 июня 2005 г.). К тому же Perforce предлагает бесплатные лицензии для учебных заведений и для использования при разработке проектов с открытым исходным кодом, а с сайта компании можно загрузить полную версию продукта, пригодную и для коммерческих проектов, но ограниченную двумя клиентскими лицензиями.

В последнее время в среде разработчиков все большую популярность приобретает новый продукт компании Sourcegear – Vault, обладающий хорошей функциональностью, возможностью интеграции с популярными средствами разработки и даже некоторыми уникальными функциями вроде интеллектуальной утилиты сравнения файлов и атомарной загрузки в репозиторий. В целом Vault подкупает своим продуманным интерфейсом, высокой надежностью и удобством в использовании.

Надеемся, этим обзором нам удалось показать, что сегодня для решения задачи контроля версий документов существуют самые разнообразные продукты: для индивидуального и коллективного применения, совершенно простые и промышленные, пригодные для использования в больших и длительных проектах. И хотя окончательный выбор в первую очередь должен зависеть от ваших конкретных потребностей, мы рекомендуем познакомиться с разными системами, чтобы сполна оценить их потенциал.

0 
 

Напечатать Отправить другу

Читайте также

 
 
IDC
Реклама

  •  Home  •  Рынок  •  ИТ-директор  •  CloudComputing  •  Hard  •  Soft  •  Сети  •  Безопасность  •  Наука  •  IoT