Статьи

Использование запросов Pull в качестве обзоров кода

При разработке программного обеспечения контроль версий делает нашу жизнь намного проще. От отслеживания наших изменений до внедрения совместной работы над кодом — это помогает повысить производительность. Кроме того, тот факт, что существует ряд различных инструментов — Subversion, Perforce, Mercurial и т. Д., — делает его еще лучше, предоставляя нам варианты выбора.

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

Одной из основных особенностей Git — и, следовательно, Bitbucket — является идея запросов на извлечение. В этой статье мы рассмотрим запросы извлечения и то, как они приносят пользу не только с точки зрения контроля версий, но и с точки зрения экспертной оценки.

Когда кто-то отправляет запрос на извлечение в ваш проект, это означает, что он просит объединить свой код с базой кода. То есть они просят, чтобы вы вытащили их код в проект.

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

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

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

Как упоминалось ранее, запросы на получение могут состоять из любого количества вещей:

  • Исправление ошибок
  • Переводы
  • Добавление функций
  • Добавление или изменение документации
  • …и так далее

Используемое командами всех размеров — как собственными, так и распределенными, — управление исходным кодом является важной частью разработки программного обеспечения. Дело в том, что когда дело доходит до работы с системами контроля версий, пользователи имеют разные роли разрешений.

То есть, когда дело доходит до поддержки репозитория, некоторые разработчики будут иметь доступ только для чтения, в то время как другие имеют доступ как для чтения, так и для записи. И те, у кого есть доступ для записи, являются теми, кто отвечает за поддержку запросов на извлечение.

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

Одна из самых приятных особенностей Bitbucket заключается в том, что он позволяет добавлять несколько рецензентов к одному запросу, который затем может одобрить (или отклонить) запрос. Это, в свою очередь, дает тем, кто поддерживает хранилище, возможность проверять качество кода, указанного в запросе на извлечение.

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

Наконец, Bitbucket поддерживает встроенное комментирование каждого запроса, что значительно упрощает обсуждение конкретной строки, блока или модуля кода.

В целом, этот подход значительно упрощает определение того, должен ли быть объединен запрос на удаление, должен ли он быть отклонен или какие области могут быть изменены до объединения запроса.

Чтобы начать, посетите панель управления проектом в своем веб-браузере, а затем нажмите на Fork, чтобы разветвить репозиторий.

Далее вам будет представлена ​​форма, позволяющая указать произвольное имя и пользовательское описание. У вас также есть возможность установить видимость и разрешения хранилища среди других функций.

Если вы несете ответственность за код, который будет написан, и хотите получить доступ к дополнительным инструментам, чтобы упростить работу с командой вокруг кодовой базы, выберите вариант « Управление проектами» в соответствующем элементе интерфейса.

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

1
$ git clone https://[email protected]/yourusername/reponame.git

Обратите внимание, что URL-адрес, который мы указали выше, виден на информационной панели вашего репозитория на информационной панели Bitbucket.

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

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

В любом случае, после внесения изменений вы можете отправить коммит в хранилище. Это означает, что вы берете файлы, над которыми работали, и объединяете их в единую коллекцию изменений, которая называется набор изменений. Наборы изменений обычно сопровождаются коротким сообщением, которое объясняет, что было изменено и почему.

Когда вы фиксируете код, по крайней мере, на первый взгляд, вы фактически ничего не помещаете в репозиторий. Другими словами, если это ваш первый коммит, то ваш код на самом деле не хранится онлайн в Bitbucket. Вместо этого изменения существуют только на вашем локальном компьютере. После того, как вы выполнили начальную загрузку, код существует в хранилище.

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

После того, как вы внесли изменения в удаленный репозиторий (либо через клиента, либо через командную строку), вы готовы инициализировать пул-запрос. Это означает, что вы готовы взять код, который вы вставили в свою ветвь кодовой базы, и спросить оригинальных сопровождающих, объединят ли они код в свой проект.

Сделать это в приложении Bitbucket легко. Просто перейдите на панель инструментов разветвленного репозитория и нажмите « Создать запрос на извлечение».

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

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

Например, если вы называли свою копию кода «разработка» при выполнении команды «git add remote» ранее, но исходная кодовая база использует слово «master», то вам нужно будет убедиться, что вы выбрали правильные значения.

Наконец, именно здесь Bitbucket позволяет вам добавлять рецензентов в запрос на извлечение. Как упоминалось ранее, это значительно облегчает привлечение внимания сопровождающих проектов, чтобы они могли просматривать вашу работу, предлагать любые комментарии, которые у них могут быть, и объединять (или отклонять) ваш запрос.

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

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

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

Кроме того, если вы рецензент, вы также получите уведомление и письмо по электронной почте. Чтобы управлять всеми входящими запросами на получение, нажмите на ссылку «Запрос на получение» и выберите запрос, с которым вы хотите работать.

Как видите, Bitbucket предоставляет чистый интерфейс, где вы можете обсуждать и просматривать запросы на извлечение. И сопровождающие, и зрители могут отклонить, объединить или запросить дополнительную работу по заданному запросу.

Предполагая, что у вас есть запрос, который готов к объединению, вы нажимаете конкретную опцию, чтобы сделать именно это. Если вам довелось работать с несколькими рецензентами, то Bitbucket также дает понять, кто одобрил запрос, установив галочку на их аватаре. Очевидно, что чем больше проверок появляется у рецензентов, тем больше вероятность того, что запрос готов к объединению.

Но что произойдет, если объединение запроса извлечения не удастся? На этом этапе необходимо выполнить слияние вручную (что является обычной частью управления исходным кодом, хотя и выходит за рамки этой статьи), после чего код будет зафиксирован в хранилище.

Очевидно, что управление исходным кодом предлагает много преимуществ для команд; однако, pull-запросы — это мощная функция, которая позволяет легко вносить свой вклад в проект и заставлять других проверять ваш код, комментировать его и улучшать его до слияния с базой кода.

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

Пожалуйста, оставляйте любые вопросы, комментарии или другие отзывы в области комментариев ниже.