2013-04-03 6 views
10

Крюк обновления может отклонять части фиксации и разрешать другим.Является ли Git атомом?

update() в get_pack.c запускается в цикле, который затем вызывает крюк обновления, возможно, несколько раз во время фиксации. Каждый раз, когда вызывается перехват обновления, он может возвращать сбой, по-видимому, позволяя некоторым refs обновляться, а некоторые не обновляются, если отклоняются.

Является ли особенность Git крючком обновления, позволяющим, возможно, часть фиксации преуспеть, а некоторые сбой означает, что коммит Git не является атомарным?

Или что мне здесь не хватает? Благодарю.

ответ

8

Да, фиксации являются атомными. Невозможно отклонить часть фиксации.

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