GNU арка
Оригинальный автор(ы) | Томас Лорд |
---|---|
Разработчик(и) | Энди Тай |
Финальный выпуск | 1.3.5 / 20 июля 2006 г |
Написано в | С |
Операционная система | Linux , Windows , Mac OS X |
Тип | Контроль версий |
Лицензия | лицензия GPL |
Веб-сайт | www |
GNU Arch Программное обеспечение — это распределенная система контроля версий , которая является частью проекта GNU и лицензируется по лицензии GNU General Public License . Он используется для отслеживания изменений, внесенных в дерево исходного кода, и помогает программистам комбинировать и иным образом манипулировать изменениями, внесенными несколькими людьми или в разное время.
По состоянию на 2009 год официальный статус GNU Arch устарел, и применяются только исправления безопасности. [1] Bazaar (или bzr) с тех пор также стал официальным проектом GNU и, таким образом, может считаться заменой GNU Arch. Это не развилка арки. [2]
Функции
[ редактировать ]Будучи распределенной, децентрализованной системой управления версиями, каждая ревизия, хранящаяся с помощью Arch, однозначно идентифицируется в глобальном масштабе; такой идентификатор можно использовать в распределенной среде, чтобы легко объединять или «отбирать» изменения из совершенно разных источников.
Децентрализация означает, что нет необходимости в центральном сервере, на котором разработчики должны быть авторизованы, чтобы внести свой вклад. Как и в других системах, полная копия проекта, доступная только для чтения, доступна в «официальном» репозитории через HTTP , FTP или SFTP ; но затем участникам рекомендуется вносить изменения и публиковать их в собственном общедоступном архиве (репозитории), чтобы главный разработчик мог вручную объединить наборы изменений в официальный репозиторий.
Чтобы имитировать поведение централизованных систем контроля версий, главный разработчик может разрешить доступ к оболочке ( SSH ) или доступ на запись (FTP, SFTP, WebDAV ) к серверу, позволяя авторизованным пользователям выполнять фиксацию на центральном сервере. Чаще всего проекты, управляемые GNU, имеют главного доброжелательного диктатора , который объединяет изменения от участников.
GNU Arch имеет несколько других особенностей:
- Атомные коммиты
- Коммиты — это все или ничего. Прежде чем начнется фиксация, дерево должно находиться в правильном состоянии, а фиксации не будут видны миру до тех пор, пока они не будут завершены. Если фиксация прервана до этого, она остается невидимой и ее необходимо откатить перед следующей фиксацией. Это позволяет избежать повреждения архива и извлеченных копий других пользователей.
- Ориентация на набор изменений
- Вместо отслеживания отдельных файлов (как в CVS ), GNU Arch отслеживает наборы изменений, которые сродни патчам. Каждый набор изменений представляет собой описание разницы между одним деревом исходного кода и другим, поэтому набор изменений можно использовать для создания одной ревизии из другой ревизии. Авторам рекомендуется использовать по одному коммиту для каждой функции или исправления ошибки.
- Легкое ветвление
- Ветвление эффективно и может охватывать архивы. Ветка (или «тег») просто объявляет исходную версию, и разработка продолжается оттуда.
- Расширенное слияние
- Благодаря постоянной записи всех предков и объединенных ревизий при слиянии можно учитывать, какая ветвь содержит какой патч, и можно выполнять трехстороннее слияние на основе общей предковой ревизии.
- Криптографические подписи
- Каждый набор изменений сохраняется с хешем, чтобы предотвратить случайное повреждение. Используя внешнюю программу подписи файлов (например, GnuPG или другой клиент PGP ), эти хэши также можно дополнительно подписать, предотвращая несанкционированное изменение в случае взлома архива.
- Переименование
- Все файлы и каталоги можно легко переименовать. Они отслеживаются по уникальному идентификатору, а не по имени, поэтому история сохраняется, а исправления файлов правильно объединяются, даже если имена файлов различаются в разных ветках.
- Отслеживание метаданных
- Разрешения . всех файлов отслеживаются Символические ссылки поддерживаются и отслеживаются так же, как файлы и каталоги.
История и обслуживание
[ редактировать ]GNU Arch версии 1 и tla
[ редактировать ]Первоначальным автором и сопровождающим GNU Arch был Томас Лорд, который начал проект в 2001 году. Для управления репозиториями GNU Arch используется команда tla , инициализм Tom Lord's Arch . Лорд запустил GNU Arch как набор скриптов оболочки , чтобы предоставить альтернативу CVS. [3] В 2003 году Arch стал частью проекта GNU . [4]
Архивный проект GNU несколько раз разветвлялся , что привело как к ныне компании Canonical Ltd., заброшенному форку Baz так и к проекту ArX Уолтера Лэндри. Оба форка вызвали враждебную реакцию: форк ArX произошел из-за серьезного спора о направлении, а Лорд резко критиковал подход Canonical к анонсу проекта Baz. [5]
В августе 2005 года Лорд объявил, что уходит с поста сопровождающего GNU Arch, и рекомендовал Baz стать основным проектом GNU Arch. [6] Однако этого не произошло: Canonical отказалась от форка Baz в пользу отдельного проекта Bazaar , [7] [8] выпуск Baz 1.5 был списан в 2006 году. [9] В октябре 2005 года Энди Тай объявил, что Лорд и Фонд свободного программного обеспечения приняли его предложение стать сопровождающим GNU Arch. [10] Впоследствии Тай объединил многие функции Baz обратно в tla. [9] но в марте 2008 года было указано, что tla больше не находится в активной разработке и больше не может конкурировать с другими системами контроля версий. [1]
пересмотр
[ редактировать ]revc был прототипом проекта контроля версий Томаса Лорда, который он намеревался превратить в GNU Arch 2.0, призванный радикально отклониться от tla и позаимствовать многие идеи из системы контроля версий Git . [11] Об этом было объявлено в июне 2005 г. [11] первый предварительный выпуск состоялся в июле [12] и последний в августе, незадолго до ухода Лорда с поста сопровождающего. [13] revc имел только 10 основных команд, и Лорд намеревался устранить ограничительные пространства имен, сложные соглашения об именах файлов и увеличить скорость. [12]
По состоянию на 2008 год последняя предварительная версия revc 0.0x2 все еще доступна. [14] и Лорд все еще интересовался некоторыми идеями GNU Arch, но у него не было ресурсов для возобновления разработки revc. [15] Томас Лорд умер в июне 2022 года. [16]
Критика
[ редактировать ]Возможно, наиболее распространенная критика GNU Arch заключается в том, что ее трудно освоить даже пользователям, имеющим опыт работы с другими системами SCM . В частности, GNU Arch имеет большое количество команд, которые могут отпугивать новых пользователей, а некоторые элементы дизайна, возможно, слишком сильно навязывают вкус Лорда в методах контроля версий. [17] [18]
Некоторые также критикуют GNU Arch за использование очень необычных соглашений об именах файлов ( «FunkyFileNames» на Wayback Machine (архив от 8 августа 2007 г.)), что может создавать трудности при использовании его в сценариях, некоторых оболочках и при его портировании на не-Unix системы. операционные системы. GNU Arch критиковали за медленное время работы как часть дизайнерского решения, направленного на уменьшение сложности внутреннего кода. [19]
См. также
[ редактировать ]- Контроль версий
- Список программного обеспечения для контроля версий
- Сравнение программного обеспечения для контроля версий
Ссылки
[ редактировать ]- ^ Jump up to: а б Тай, Энди (28 марта 2008 г.). "Re:revc" . gnu-arch-users (список рассылки) . Проверено 17 июня 2008 г.
- ^ «История базара» . Архивировано из оригинала 26 февраля 2009 года . Проверено 20 мая 2014 г.
- ^ Моффит, Ник (1 ноября 2004 г.). «Контроль версий с помощью Arch: Введение в Arch» . Linux-журнал . Проверено 18 июня 2008 г.
- ^ Лорд, Том (13 июля 2003 г.). «GNU, doc foo, краткосрочные планы, предложения по хакерству, деньги» . Arch-пользователи (список рассылки) . Проверено 18 июня 2008 г. [ постоянная мертвая ссылка ]
- ^ Лорд, Томас (31 октября 2004 г.). «дух сообщества» . gnu-arch-users (список рассылки) . Проверено 17 июня 2008 г.
- ^ Лорд, Томас (15 августа 2005 г.). «Сопровождение GNU Arch» . gnu-arch-users (список рассылки) . Проверено 17 июня 2008 г.
- ^ «Baz1x — Базарный контроль версий» . 24 июля 2006 г. Архивировано из оригинала 7 января 2008 г. Проверено 17 января 2008 г.
- ^ Арбаш Мейнель, Джон; Аарон Бентли; Мартин Пул; Марк Шаттлворт (26 июля 2006 г.). «История Базара» . Архивировано из оригинала 26 февраля 2009 г. Проверено 20 февраля 2008 г.
- ^ Jump up to: а б Коллинз, Роберт (30 июня 2006 г.). "выпуск 1,5" . базар-старый (Список рассылки). Архивировано из оригинала 12 мая 2011 г. Проверено 16 июня 2007 г.
- ^ Тай, Энди (27 октября 2005 г.). «Re: Хорошие новости о GNU Arch!» . gnu-arch-users (список рассылки) . Проверено 17 июня 2008 г.
- ^ Jump up to: а б Лорд, Томас (20 июня 2005 г.). «кодовая база Arch 2.0 находится в стадии разработки» . gnu-arch-dev (список рассылки) . Проверено 17 июня 2008 г. [ постоянная мертвая ссылка ]
- ^ Jump up to: а б Лорд, Томас (8 июля 2005 г.). «GNU Arch 2.0 — первый исходный код» . gnu-arch-dev (список рассылки). Архивировано из оригинала 17 мая 2011 г. Проверено 17 июня 2008 г.
- ^ Лорд, Томас (1 августа 2005 г.). «Выпуск Arch 2.0 (revc.0.0x2)» . gnu-arch-users (список рассылки) . Проверено 17 июня 2008 г.
- ^ Вандребек, Лоран (26 марта 2008 г.). "ревк" . gnu-arch-users (список рассылки) . Проверено 17 июня 2008 г.
- ^ Лорд, Томас (28 марта 2008 г.). "Re:revc" . gnu-arch-users (список рассылки) . Проверено 17 июня 2008 г.
- ^ Томас Лорд 1966–2022 , 26 июня 2022 г.
- ^ Пул, Мартин (21 июня 2004 г.). — Что не так с Арчем? . Архивировано из оригинала 14 июля 2012 г. Проверено 18 июня 2008 г.
- ^ Пул, Мартин (26 сентября 2004 г.). «Интервью Тома Лорда и сопутствующие вещи» . Архивировано из оригинала 13 июля 2012 г. Проверено 18 июня 2008 г.
Более ранние версии были во многом привязаны к проектам, которые выполнялись так, как того хотел Том: странные [sic] соглашения о файлах, коммит только из чистых деревьев и так далее.
- ^ Веймер, Флориан (9 июня 2004 г.). «Некоторые проблемы с GNU Arch» . Проверено 18 июня 2008 г.