Как вы отправляете запросы на проверку кода с помощью git, если у разработчиков нет общедоступных репозиториев? - PullRequest
6 голосов
/ 08 июня 2011

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

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

Но что, если менеджер не смог подключиться к другим рабочим машинам разработчиков и имел доступ только к исходному git-репо или к электронной почте?Каков наилучший способ отправить ему сравнения для проверки?

Мы могли бы отправлять исправления по электронной почте, или разработчик мог отправить свою ветку в исходное положение и сообщить менеджеру git fetch origin; git diff master..case223.Или есть другой лучший способ?

Ответы [ 5 ]

6 голосов
/ 08 июня 2011

Я бы использовал

git format-patch <branch-to-compare-against> --cover-letter -o patches/

, который по существу создаст соответствующие патчи для ваших коммитов, а затем

git send-email --to <receiver@example.com> --annotate patches/*

Проверьте страницы справочника:

3 голосов
/ 08 июня 2011

Git bundle

git bundle create myproposal.git origin/sharedbranch..HEAD

Вы можете получить его как репо:

cd myworktree
git pull /tmp/myproposal.git

Кстати, git bundle также является наиболее эффективным способом резервного копирования всего репо, например

git bundle create /tmp/backup.git --all --tags --remotes
2 голосов
/ 08 июня 2011

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

ОБНОВЛЕНИЕ: с тех пор я написал эту статью: http://dymitruk.com/blog/2012/02/05/branch-per-feature/

Надеюсь, это поможет.

1 голос
/ 08 июня 2011

Бесстыдная реклама: я предлагаю вам также рассмотреть вопрос Gerrit .

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

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

0 голосов
/ 14 августа 2017

Примечание: в дополнение к git send-email вы можете использовать git contacts contrib скрипт , чтобы вывести список потенциальных контактов, заинтересованных вашей электронной почтой.

СВ Git 2.14.x / 2.15 этот сценарий также обнаруживает раздел "Reported-by".

См. commit 09ac673 (21 июля 2017) Эрик Блейк (BlakeEric).
(Объединено с Junio ​​C Hamano - gitster - in commit 6d2b8a3 , 11 августа 2017 г.)

"git contacts" (в contrib/) теперь выводит адрес на трейлере "Reported-by:" к его выводу, в дополнение к адресам на Sob: и других трейлерах, чтобы упростить уведомление(и спасибо) оригинальный репортер ошибок.

git-contacts: также распознавать "Reported-by:"

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

Конечно ...

  • S-o-b: означает Signed-off-by:
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...