Что значит Cherry Picking в тестировании

Тестирование API image from website www.aredel.com
Фото: freepik.com

Cherry Picking - сбор вишенок - это процесс выбора из реализованных фич тех, которые пойдут в ближайший релиз.

Когда это происходит: в том случае, если разработчам удалось создать большое количество новых фич, но менеджмент считает, что не стоит выкатывать сразу все.

Почему бы не выложить сразу все фичи:

Тестирование API image from website www.aredel.com
Фото: freepik.com

git cherry-pick

В git существует команда

git cherry-pick

Прочитать спецификацию можно здесь

git cherry-pick-это мощная команда, которая позволяет выбирать произвольные коммиты Git по ссылке и добавлять их к текущей рабочей головке.

Сбор вишни - это акт выбора фиксации с ветки и применения ее к другой.

git cherry-pick может быть полезен для отмены изменений.

Например, предположим, что коммит случайно сделан не в ту ветвь.

Вы можете переключиться на правильную ветвь и выбрать фиксацию там, где она должна быть.

Когда использовать git cherry pick

git cherry-pick-полезный инструмент, но не всегда лучшая практика.

Сбор вишни может привести к дублированию коммитов, и во многих сценариях, где сбор вишни будет работать, вместо этого предпочтительны традиционные слияния.

С учетом сказанного git cherry-pick-это удобный инструмент для нескольких сценариев...

Командное сотрудничество.

Часто команда находит отдельных членов, работающих в одном и том же коде или вокруг него.

Возможно, новая функция продукта имеет бэкэнд и фронтенд-компонент.

Возможно, существует некоторый общий код между двумя секторами продукта.

Возможно, бэкэнд-разработчик создает структуру данных, которую также должен будет использовать фронтэнд.

Фронтенд-разработчик может использовать git cherry-pick для выбора коммита, в котором была создана эта гипотетическая структура данных.

Этот выбор позволит разработчику frontend продолжить работу над своей частью проекта.

Исправления ошибок

При обнаружении ошибки важно как можно быстрее доставить исправление конечным пользователям.

Например,предположим, что разработчик начал работу над новой функцией.

Во время разработки этой новой функции они выявляют уже существующую ошибку.

Разработчик создает явную фиксацию исправления этой ошибки.

Эта новая фиксация патча может быть выбрана непосредственно в главной ветви, чтобы исправить ошибку, прежде чем она повлияет на большее количество пользователей.

Отмена изменений и восстановление потерянных коммитов

Иногда ветвь функции может устареть и не слиться с мастером.

Иногда запрос на вытягивание может быть закрыт без слияния.

Git никогда не теряет эти коммиты, и с помощью таких команд, как git log и git reflog, их можно найти и вернуть к жизни.

Как использовать git cherry pick

To продемонстрировать, как использовать git cherry-pick, предположим, что у нас есть репозиторий со следующим состоянием ветви:

a - b - c - d Master \ e - f - g Feature

использование git cherry-pick является прямым и может быть выполнено следующим образом:

git cherry-pick commitSha

в этом примере commitSha -это commit reference.

Нужную commit reference можно найти с помощью git log.

В этом примере мы хотим черрипикнуть commit `f` в master.

Сначала мы удостоверяемся, что работаем над master.

git checkout master

Затем мы выполняем cherry-pick следующей командой:

git cherry-pick f

После выполнения наша git history будет выглядеть так:

a - b - c - d - f Master \ e - f - g Feature

Коммит f был успешно черрипикнут в главную ветвь

Примеры git cherry pick

git cherry pick также может выполнен с различными опциями:

-edit

Передача опции -edit приведет к тому, что git запросит commit message перед применением операции cherry-pick

--no-commit

Опция --no-commit выполнит выбор вишни, но вместо того, чтобы сделать новый commit, она переместит содержимое цели в рабочий каталог текущей ветви.

--singoff

Опция --singoff из системы добавит строку 'singoff' подпись в конец cherry-pick коммит сообщения

В дополнение к этим полезным опциям git cherry-pick также принимает различные варианты стратегии слияния.

Подробнее об этих параметрах читайте в документации git merge strategies.

Кроме того, git cherry-pick также принимает ввод опций для разрешения конфликтов слияний, включая опции: --abort --continue и --quit эти опции рассматриваются более подробно в отношении git merge и git rebase.

Резюме

cherry-pick - это мощная и удобная команда, которая невероятно полезна в нескольких сценариях. cherry-pick не должен использоваться неправильно вместо git merge или git rebase. Команда журнала Git-это обязательно поможет найти обязуется сливки.

Полезный софт и другие материалы

Articles about Testing
API testing lessons
API testing
Testing with Python
Selenium + Python
SOAP UI
JMeter
Bash for QA Engineer
Clumsy 0.2
Python script for ZPL
Python Sockets
Integration Testing
Share in social media: