WikiDer > GNU arch
Оригинальный автор (ы) | Томас Лорд |
---|---|
Разработчики) | Энди Тай |
Окончательный релиз | 1.3.5 / 20 июля 2006 г. |
Написано в | C |
Операционная система | GNU/Linux, Windows, Mac OS X |
Тип | Контроль версий |
Лицензия | GPL |
Интернет сайт | www |
GNU arch программного обеспечения это распределенный контроль версий система, которая является частью Проект GNU и под лицензией Стандартная общественная лицензия GNU. Он используется для отслеживания изменений, внесенных в дерево исходного кода, и помогает программистам объединять и иным образом управлять изменениями, внесенными несколькими людьми или в разное время.
По состоянию на 2009 год официальный статус GNU arch является устаревшим, и применяются только исправления безопасности.[1] Базар (или бзр) с тех пор также стал официальным проектом GNU и, таким образом, может считаться заменой GNU arch. Это не арка.[2]
Функции
Поскольку это распределенная децентрализованная система управления версиями, каждая ревизия, хранящаяся с использованием Arch, уникально идентифицируется в глобальном масштабе; такой идентификатор можно использовать в распределен настройка, позволяющая легко объединять или «выбирать» изменения из совершенно разных источников.
Децентрализация означает, что нет необходимости в центральном сервере, для которого разработчики должны быть авторизованы, чтобы вносить свой вклад. Как и в других системах, полная копия проекта, доступная только для чтения, доступна в "официальном" репозитории через HTTP, FTP, или же SFTP; но затем участникам рекомендуется вносить изменения и публиковать их в собственном публичном архиве (репозитории), чтобы главный разработчик мог вручную объединить наборы изменений в официальный репозиторий.
Чтобы смоделировать поведение централизованных систем контроля версий, главный разработчик мог разрешить доступ к оболочке (SSH) или доступ для записи (FTP, SFTP, WebDAV) на сервер, позволяя авторизованным пользователям выполнять фиксацию на центральном сервере. Чаще всего проекты, управляемые архитектурой GNU, имеют доброжелательный диктатор который объединяет изменения от участников.
GNU arch имеет несколько других функций:
- Атомарные коммиты
- Коммиты действуют по принципу "все или ничего". Дерево должно быть в надлежащем состоянии до того, как начнется фиксация, и фиксации не будут видны миру до завершения. Если фиксация прервана до этого, она остается невидимой и должна быть откатана перед следующей фиксацией. Это позволяет избежать повреждения архива и извлеченных копий других пользователей.
- Ориентированный на набор изменений
- Вместо отслеживания отдельных файлов (как в CVS), GNU arch отслеживает наборы изменений, которые похожи на патчи. Каждый набор изменений представляет собой описание разницы между одним исходным деревом и другим, поэтому набор изменений можно использовать для создания одной ревизии из другой. Авторам рекомендуется использовать одну фиксацию для каждой функции или исправления.
- Легкое ветвление
- Ветвление эффективно и может охватывать архивы. Ветвь (или «тег») просто объявляет ревизию предка, и разработка продолжается оттуда.
- Расширенное слияние
- Благодаря постоянной записи всех предков и объединенных ревизий, слияние может учитывать, какая ветвь содержит какой патч, и может выполнять трехстороннее слияние на основе общей ревизии предка.
- Криптографические подписи
- Каждый набор изменений хранится с хэш для предотвращения случайного повреждения. Использование внешней программы для подписи файлов (например, GnuPG или другой PGP client), эти хэши также могут быть дополнительно подписаны, чтобы предотвратить несанкционированное изменение в случае компрометации архива.
- Переименование
- Все файлы и каталоги можно легко переименовать. Они отслеживаются по уникальному идентификатору, а не по имени, поэтому история сохраняется, а исправления для файлов правильно объединяются, даже если имена файлов различаются в разных ветвях.
- Отслеживание метаданных
- В разрешения всех файлов отслеживаются. Символические ссылки поддерживаются и отслеживаются так же, как файлы и каталоги.
История и поддержка
GNU Arch версии 1 и tla
Первоначальный автор и сопровождающий из GNU arch был Томас Лорд, который начал проект в 2001 году. Команда, используемая для управления репозиториями GNU Arch: tla, инициализм для Арка Тома Лорда. Лорд начал GNU Arch как сборник сценарии оболочки чтобы предоставить альтернативу CVS.[3] В 2003 г. арка стал частью GNU проект.[4]
Проект GNU Arch раздвоенный несколько раз, в результате как Canonical Ltd.сейчас заброшен Баз вилка и Уолтера Лэндри ArX проект. Обе вилки вызвали враждебную реакцию: вилка ArX возникла из-за серьезного спора о направлении, и Лорд резко критиковал подход Canonical к анонсу проекта Baz.[5]
В августе 2005 года Лорд объявил, что уходит с поста сопровождающего GNU arch, и рекомендовал, чтобы Baz стал основным проектом GNU arch.[6] Однако этого не произошло: от вилки Baz компания Canonical отказалась в пользу отдельной Базар проект,[7][8] с выпуском 1.5 Baz, который был отменен в 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.[14] и Лорд все еще интересуется некоторыми идеями в GNU arch, но у него нет ресурсов для возобновления разработки revc.[15]
Критика
Возможно, самая распространенная критика GNU arch заключается в том, что ее трудно изучить даже для пользователей, которые имеют опыт работы с другими СКМ системы. В частности, в GNU arch имеется большое количество команд, которые могут напугать новых пользователей, а некоторые элементы дизайна, возможно, слишком сильно усиливают вкус Лорда в методах контроля версий.[16][17]
Некоторые также критикуют GNU Arch за использование очень необычных соглашений об именах файлов ("FunkyFileNames" на Wayback Machine (архивировано 8 августа 2007 г.)), что может создать трудности при его использовании в скриптах, некоторые снаряды, и в переносе его на операционные системы, отличные от Unix. GNU arch критиковали за медленное выполнение как часть проектного решения по снижению внутренней сложности кода.[18]
Смотрите также
- Контроль версий
- Список программного обеспечения для контроля версий
- Сравнение программного обеспечения для контроля версий
Рекомендации
- ^ а б c Тай, Энди (2008-03-28). "Re: revc". GNU-Arch-пользователи (Список рассылки). Получено 2008-06-17.
- ^ «История базара». Получено 20 мая 2014.
- ^ Моффит, Ник (2004-11-01). «Контроль версий с Arch: Введение в Arch». Linux журнал. Получено 2008-06-18.
- ^ Лорд, Том (13.07.2003). "GNU, doc foo, краткосрочные планы, предложения по взлому, деньги". архипользователи (Список рассылки). Получено 2008-06-18.[постоянная мертвая ссылка]
- ^ Лорд, Томас (2004-10-31). "дух сообщества". GNU-Arch-пользователи (Список рассылки). Получено 2008-06-17.
- ^ Лорд, Томас (2005-08-15). "Поддержка GNU Arch". GNU-Arch-пользователи (Список рассылки). Получено 2008-06-17.
- ^ "Baz1x - Bazaar Version Control". 2006-07-24. Получено 2008-01-17.
- ^ Арбаш Майнель, Джон; Аарон Бентли; Мартин Пул; Марк Шаттлворт (26 июля 2006 г.). "HistoryOfBazaar". Получено 2008-02-20.
- ^ а б Коллинз, Роберт (30.06.2006). "релиз 1.5". базарный старый (Список рассылки). Архивировано из оригинал на 2011-05-12. Получено 2007-06-16.
- ^ Тай, Энди (2005-10-27). "Re: Хорошие новости о GNU Arch!". GNU-Arch-пользователи (Список рассылки). Получено 2008-06-17.
- ^ а б Лорд, Томас (2005-06-20). "кодовая база Arch 2.0 в разработке". GNU-Arch-Dev (Список рассылки). Получено 2008-06-17.[постоянная мертвая ссылка]
- ^ а б Лорд, Томас (2005-07-08). «GNU Arch 2.0 - первый источник». GNU-Arch-Dev (Список рассылки). Архивировано из оригинал на 2011-05-17. Получено 2008-06-17.
- ^ Лорд, Томас (2005-08-01). "Версия Arch 2.0 (revc.0.0x2)". GNU-Arch-пользователи (Список рассылки). Получено 2008-06-17.
- ^ Вандребек, Лоран (26 марта 2008 г.). "revc". GNU-Arch-пользователи (Список рассылки). Получено 2008-06-17.
- ^ Лорд, Томас (2008-03-28). "Re: revc". GNU-Arch-пользователи (Список рассылки). Получено 2008-06-17.
- ^ Пул, Мартин (21.06.2004). "Что случилось с Арчем?". Архивировано из оригинал на 2012-07-14. Получено 2008-06-18.
- ^ Пул, Мартин (2004-09-26). "Интервью Тома Лорда и тому подобное". Архивировано из оригинал на 2012-07-13. Получено 2008-06-18.
Более ранние версии были очень сильно привязаны к проектам, которые выполнялись так, как того хотел Том: странные [sic] соглашения о файлах, фиксация только из чистых деревьев и т. Д.
- ^ Веймер, Флориан (2004-06-09). «Некоторые проблемы с GNU Arch». Получено 2008-06-18.