Набор изменений
Эта статья нуждается в дополнительных цитатах для проверки . ( август 2020 г. ) |
В для контроля версий программном обеспечении набор изменений (также известный как коммит) [1] и пересмотр [2] [3] ) представляет собой набор изменений, упакованных вместе с метаинформацией об изменениях. Набор изменений описывает точные различия между двумя последовательными версиями в репозитории изменений системы контроля версий. Системы контроля версий обычно рассматривают наборы изменений как атомарную единицу, неделимый набор. Это одна из моделей синхронизации . [4] [5]
Терминология
[ редактировать ]В системе контроля версий Git набор изменений называется фиксацией. [1] не путать с операцией фиксации , которая используется для фиксации набора изменений (или, в случае Git, технически, моментального снимка [1] ) в репозиторий. [6]
Другие системы контроля версий также используют другие имена для обозначения наборов изменений, например, Darcs называет их «патчами». [7] а Пиджул называет их «изменениями». [8]
Метаданные
[ редактировать ]Системы контроля версий присоединяют метаданные к наборам изменений. Типичные метаданные включают описание, предоставленное программистом («сообщение о фиксации» на жаргоне Git), имя автора, дату фиксации и т. д. [9]
Уникальные идентификаторы — важная часть метаданных, которые системы контроля версий прикрепляют к наборам изменений. Централизованные системы контроля версий, такие как Subversion и CVS, просто используют возрастающие числа в качестве идентификаторов. [10] [11] Распределенные системы контроля версий , такие как Git , генерируют уникальный идентификатор, применяя криптографическую хэш-функцию к набору изменений. [12]
Лучшие практики
[ редактировать ]Поскольку системы контроля версий работают с наборами изменений как с атомарными единицами, а взаимодействие внутри групп разработчиков повышает производительность, существуют определенные рекомендации, которым следует следовать при создании наборов изменений. Здесь упоминаются только два наиболее важных: атомарность содержимого набора изменений и описания наборов изменений.
Содержимое набора изменений должно включать только одну задачу или исправление и содержать только код, который работает и сознательно не нарушает существующие функциональные возможности. [13]
Описания наборов изменений должны быть краткими, в них должно быть указано, почему было сделано изменение, эффект или цель изменения, а также описаны неочевидные аспекты того, как работает изменение. [14]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Jump up to: а б с набор изменений в gitglossary
- ^ редакция в gitglossary
- ^ Понимание Mercurial - Mercurial
- ↑ Mercurial: ChangeSet. Архивировано 15 января 2010 г., в Wayback Machine.
- ^ «Сравнение систем контроля версий» . Улучшенная инициатива SCM. Архивировано из оригинала 21 марта 2009 года.
- ^ зафиксируйте в gitglossary
- ^ Darcs - Отличия от Git
- ^ журнал pijul - Руководство Pijul
- ^ Git - Документация git-commit-tree
- ^ Спецификаторы ревизий — контроль версий с помощью Subversion
- ^ CVS - Система параллельных версий - Изменения
- ^ Git - Документация по переходу хэш-функций
- ^ ГитЛаб. «Каковы лучшие практики управления версиями Git?» . gitlab.com . Проверено 11 ноября 2022 г.
Напишите как можно меньше кода для решения проблемы. После выявления проблемы или улучшения лучший способ попробовать что-то новое и непроверенное — это разделить обновление на небольшие пакеты, которые можно легко и быстро протестировать вместе с конечным пользователем, чтобы доказать обоснованность предлагаемого решения и выполнить откат. В случае, если это не сработает без отказа от всей новой функциональности. ... Что касается внесения небольших изменений, атомарные фиксации представляют собой единую единицу работы, включающую только одну задачу или одно исправление (например, обновление, исправление ошибок, рефакторинг). Атомарные коммиты ускоряют проверку кода и облегчают возврат, поскольку их можно применять или отменять без каких-либо непредвиденных побочных эффектов. Цель атомарных коммитов — не создание сотен коммитов, а группировка коммитов по контексту. Например, если разработчику необходимо провести рефакторинг кода и добавить новую функцию, он создаст два отдельных коммита, а не монолитный коммит, включающий изменения с разными целями.
- ^ ReQtest (26 октября 2020 г.). «Каковы преимущества контроля версий?» . Проверено 21 ноября 2022 г.
Отслеживание изменений... обеспечивает анализ предыдущих изменений, а также целостное представление о траектории набора данных. История документа... раскрывает (sic) цель внесенных изменений.