Jump to content

Набор изменений

В для контроля версий программном обеспечении набор изменений (также известный как коммит) [1] и пересмотр [2] [3] ) представляет собой набор изменений, упакованных вместе с метаинформацией об изменениях. Набор изменений описывает точные различия между двумя последовательными версиями в репозитории изменений системы контроля версий. Системы контроля версий обычно рассматривают наборы изменений как атомарную единицу, неделимый набор. Это одна из моделей синхронизации . [4] [5]

Терминология

[ редактировать ]

В системе контроля версий Git набор изменений называется фиксацией. [1] не путать с операцией фиксации , которая используется для фиксации набора изменений (или, в случае Git, технически, моментального снимка [1] ) в репозиторий. [6]

Другие системы контроля версий также используют другие имена для обозначения наборов изменений, например, Darcs называет их «патчами». [7] а Пиджул называет их «изменениями». [8]

Метаданные

[ редактировать ]

Системы контроля версий присоединяют метаданные к наборам изменений. Типичные метаданные включают описание, предоставленное программистом («сообщение о фиксации» на жаргоне Git), имя автора, дату фиксации и т. д. [9]

Уникальные идентификаторы — важная часть метаданных, которые системы контроля версий прикрепляют к наборам изменений. Централизованные системы контроля версий, такие как Subversion и CVS, просто используют возрастающие числа в качестве идентификаторов. [10] [11] Распределенные системы контроля версий , такие как Git , генерируют уникальный идентификатор, применяя криптографическую хэш-функцию к набору изменений. [12]

Лучшие практики

[ редактировать ]

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

Содержимое набора изменений должно включать только одну задачу или исправление и содержать только код, который работает и сознательно не нарушает существующие функциональные возможности. [13]

Описания наборов изменений должны быть краткими, в них должно быть указано, почему было сделано изменение, эффект или цель изменения, а также описаны неочевидные аспекты того, как работает изменение. [14]

См. также

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


Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: fa17facd3635962ce38cf6404fe3c15e__1714621440
URL1:https://arc.ask3.ru/arc/aa/fa/5e/fa17facd3635962ce38cf6404fe3c15e.html
Заголовок, (Title) документа по адресу, URL1:
Changeset - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)