• А у кого-нибудь есть опыт использования запретительных хуков в DVCS? Например, запретить коммиты по определённым путям, написанные не по правилам.
    Речь идёт о центральном сервере, разработчик пушит накопленные коммиты из локального репозитория в центральный, некоторые коммиты не проходят по правилам хуков. Как такое делать? Какие последствия?

Replies (19)

  • @cancel, я давным-давно делал, но для svn
  • @Zert, в свн всё понятно, а вот как в гите такое сделать, чтобы не отыквилось всё?
  • @cancel, хз. можно заборонить push на центральный репозиторий, но тогда разработчику придётся в своей репе переписывать историю. наверное это приемлимо.
  • @cancel, В DVCS единственный правильный flow — с коммитом после ревью. Пушить зло
  • @Avatar, с каким коммитом? Где тут тогда D?
  • @Avatar, не согласен. коммит, пуш в центральную репу в специальный бранч, потом мерж или отклонение
  • @cancel, Што? Пачка патчей шлется ответственному за мастер, который их ревьювит и коммитит/пушит/называйте как хотите
  • @Avatar, это же пиздец, простите за резкость.
  • @cancel, Ну тогда тебе хватит и svn __
  • @cancel, У меня есть. Делаешь update или pre-receive хук. Для примера можешь глянуть update-paranoid.
  • @Zert, вот это правильно, да
  • @dr-Chaos, а ничего не ломается, если начинается такое вот рассогласование, когда у разработчика есть пачка коммитов, которые никогда не попадут в центральную репу?
  • @dr-Chaos, Да, есть проблема с тем чтоб отличать того кто просто пушит из вне в тем кто-то просто перекладывает коммиты, но это разруливается.
  • @cancel, А в чём проблема, если копия разраба отличается от центральной?
  • @cancel, а я понял, речь о пуше множества коммитов, только часть из которых проходит проверку?
  • @dr-Chaos, да
  • @cancel, скорее, проверять надо только последний коммит (на который указывает новый референс).
    А разные изменения надо независимо пушить
  • @cancel, pre-receive хук не позволит ничего закоммитить, правда оттуда не очень удобно проверять содржимое коммитов. Его удобнее использовать для проверки прав на пуш. pre-commit используют для проверки синтаксиса коммитов, но его используют не на сервере, как правило.
  • @dr-Chaos, pre-commit на сервере не вызовецо.