Из Википедии, свободной энциклопедии
Перейти к навигации Перейти к поиску

Программное обеспечение 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. «ы брошенные База вилы и Вальтер Лэндри 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] Tai впоследствии объединил многие функции из Baz обратно в tla, [9]но в марте 2008 года указывалось, что tla больше не находится в стадии активной разработки и больше не может конкурировать с другими системами контроля версий. [1]

revc [ править ]

revc был прототипом проекта управления версиями Томаса Лорда, который он намеревался стать GNU arch 2.0, разработанным, чтобы радикально отличаться от tla и черпать многие идеи из системы управления версиями Git . [11] Об этом было объявлено в июне 2005 года [11], первый пре-релиз был в июле [12], а последний - в августе, незадолго до ухода Лорда с поста сопровождающего. В [13] revc было всего 10 основных команд, а Lord предназначался для устранения ограничительных пространств имен, сложных соглашений об именах файлов и увеличения скорости. [12]

По состоянию на 2008 г. последний предварительный выпуск, 0.0x2, revc все еще доступен [14], и Лорд все еще интересуется некоторыми идеями в GNU arch, но не имеет ресурсов для возобновления разработки revc. [15]

Критика [ править ]

Возможно, самая распространенная критика GNU arch заключается в том, что ее трудно изучить даже для пользователей, которые имеют опыт работы с другими системами SCM . В частности, в GNU arch имеется большое количество команд, которые могут напугать новых пользователей, а некоторые элементы дизайна, возможно, слишком сильно усиливают вкус Лорда в методах контроля версий. [16] [17]

Некоторые также критикуют GNU arch за использование очень необычных соглашений об именах файлов ( "FunkyFileNames" на Wayback Machine (архивировано 8 августа 2007 г.)), что может создать трудности при использовании его в сценариях, некоторых оболочках и при переносе на другие системы операционные системы. GNU arch критиковали за медленное выполнение как часть проектного решения по уменьшению внутренней сложности кода. [18]

См. Также [ править ]

  • Ревизионный контроль
  • Список программного обеспечения для контроля версий
  • Сравнение программного обеспечения для контроля версий

Ссылки [ править ]

  1. ^ a b c Тай, Энди (2008-03-28). "Re: revc" . gnu-arch-users (Список рассылки) . Проверено 17 июня 2008 .
  2. ^ "История базара" . Проверено 20 мая 2014 .
  3. ^ Моффит, Ник (2004-11-01). «Контроль версий с Arch: Введение в Arch» . Linux Journal . Проверено 18 июня 2008 .
  4. ^ Лорд, Том (2003-07-13). «GNU, doc foo, краткосрочные планы, предложения по взлому, деньги» . arch-users (Список рассылки) . Проверено 18 июня 2008 .[ постоянная мертвая ссылка ]
  5. ^ Лорд, Томас (2004-10-31). «дух сообщества» . gnu-arch-users (Список рассылки) . Проверено 17 июня 2008 .
  6. ^ Лорд, Томас (2005-08-15). «Поддержка GNU Arch» . gnu-arch-users (Список рассылки) . Проверено 17 июня 2008 .
  7. ^ "Baz1x - Bazaar Version Control" . 2006-07-24 . Проверено 17 января 2008 .
  8. ^ Арбаш Майнел, Джон; Аарон Бентли; Мартин Пул; Марк Шаттлворт (26 июля 2006 г.). "ИсторияБазара" . Проверено 20 февраля 2008 .
  9. ^ a b Коллинз, Роберт (30.06.2006). "релиз 1.5" . bazaar-old (Список рассылки). Архивировано из оригинала на 2011-05-12 . Проверено 16 июня 2007 .
  10. ^ Тай, Энди (2005-10-27). "Re: Хорошие новости о GNU Arch!" . gnu-arch-users (Список рассылки) . Проверено 17 июня 2008 .
  11. ^ a b Лорд, Томас (20.06.2005). «Кодовая база Arch 2.0 в разработке» . gnu-arch-dev (список рассылки) . Проверено 17 июня 2008 .[ постоянная мертвая ссылка ]
  12. ^ а б Лорд, Томас (2005-07-08). «GNU Arch 2.0 - первый источник» . gnu-arch-dev (список рассылки). Архивировано из оригинала на 2011-05-17 . Проверено 17 июня 2008 .
  13. ^ Лорд, Томас (2005-08-01). «Версия Arch 2.0 (revc.0.0x2)» . gnu-arch-users (Список рассылки) . Проверено 17 июня 2008 .
  14. ^ Wandrebeck, Лоран (2008-03-26). "revc" . gnu-arch-users (Список рассылки) . Проверено 17 июня 2008 .
  15. ^ Лорд, Томас (2008-03-28). "Re: revc" . gnu-arch-users (Список рассылки) . Проверено 17 июня 2008 .
  16. ^ Пул, Мартин (2004-06-21). "Что случилось с Арчем?" . Архивировано из оригинала на 2012-07-14 . Проверено 18 июня 2008 .
  17. ^ Пул, Мартин (2004-09-26). «Интервью Тома Лорда и тому подобное» . Архивировано из оригинала на 2012-07-13 . Проверено 18 июня 2008 . Ранние версии были очень сильно привязаны к проектам, которые выполнялись так, как того хотел Том: странные [sic] соглашения о файлах, фиксация только из чистых деревьев и т. Д.
  18. ^ Веймер, Флориан (2004-06-09). «Некоторые проблемы с GNU Arch» . Проверено 18 июня 2008 .

Внешние ссылки [ править ]

  • Официальный сайт
  • LWN.net статья об арке