Запретите удаленное продвижение к основному ответвлению в мерзавце

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

Возможно сделать в дочерних репозиториях, но к сожалению это является не всегда достаточно надежным, легким забыть делать это на новой машине - никакой способ защитить от случайных нажатий. Разработчики должны смочь вытянуть от любого ответвления и пододвинуть обратно к любому ответвлению, за исключением master, который мы хотим рассматривать как только для чтения. Действительно ли это возможно с git? Или мы пробуем неправильный рабочий процесс.

Обновление tl; доктор: благодаря Charles Bailey ответ проверяет ведущее устройство и добавляет следующую конфигурацию:

receive.denyCurrentBranch = true
19
задан kibitzer 27 April 2016 в 17:29
поделиться

1 ответ

+ 1 для Spreedly.com

Также существует Chargify.com, Recurly.com и некоторые другие. См.: http://buyersvote.com/categories/the-best-subscription-billing-systems

-121--4999619-

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

Я сделал это довольно много в моей компании некоторое время назад; это было только , когда я давал презентацию, что я вдруг понял, как странно и непонятно какой-то scala синтаксис появляется для аудитории (или, возможно, это был мой стиль доставки!). Я обнаружил, что следующее хорошо пошло вниз:

  1. итеративный подход - возьмите один метод Java (не целая программа), а затем конвертируйте в действительно тупой подобно-для-типа Scala (объявления типов и все). Теперь примените один набор замещений scala (например, вывод типа), затем другой (например, псевдонимы типа), затем другой (например, закрытия) и т.д. Конечным результатом этого, вероятно, будет около трети кода Java, гораздо более читаемого и лаконичного, что можно противопоставить, поскольку люди теперь знакомы с происходящим. Удивительно, в какой степени Java - это просто перепутанная куча типов и ключевых слов, если смотреть в сравнении с чем-то вроде scala.

  2. Найдите время, чтобы объяснить все стороны - например, пройти сопоставление шаблонов в некоторых деталях и как это работает. Не пропускайте экстракторы или случай x:: xs . Я обнаружил, что люди действительно были заинтересованы в этом и что было так здорово в этом!

  3. Функциональное программирование style занимает некоторое время. Неразумно заставлять людей сразу же это понимать. Я программировал в Скале больше года, и меня все еще смущают некоторые из них.

  4. Использование REPL действительно круто для некоторых низкоуровневых вещей, таких как демонстрация того, как все в scala (включая синхронизированное, try-catch и т.д.) является выражением с типом.

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

-121--4268620-

Необходимо просмотреть образец hook обновления , называемый update-paranoid , в каталоге contrib дистрибутива git. Он позволяет настраивать списки ACL для отдельных ветвей, ограничивающие количество пользователей, которым разрешен доступ к каким ветвям. Таким образом, обновление основных данных может быть ограничено только владельцами деблокирования.

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

В случае, если вы нажимаете на неоголенный центральный репозиторий, а master всегда является извлеченной ветвью, вы можете просто установить для конфигурационной переменной receive.denyCurrentBranch значение true или отклонить .

13
ответ дан 30 November 2019 в 05:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: