1.3 KiB
#write-types different types of write operations
Git supplies enough information to the update hook to be able to distinguish several types of writes.
The most common are:
RW
-- create a ref or fast-forward push a ref. No rewinds or deletes.RW+
-- create, fast-forward push, rewind push, or delete a ref.
Sometimes you want to allow people to push, but not create a ref. Or
rewind, but not delete a ref. The C
and D
qualifiers help here.
-
When a rule specifies
RWC
orRW+C
, then rules that do NOT have the C qualifier will no longer permit creating a ref.Please do not confuse this with the standalone
C
permission that allows someone to [create][] a repo -
When a rule specifies
RWD
orRW+D
, then rules that do NOT have the D qualifier will no longer permit deleting a ref.
Note: These two can be combined, so you can have RWCD
and RW+CD
as well.
One very rare need is to reject merge commits (a commit series that is not a
straight line of commits). The M
qualifier helps here:
- When a rule has
M
appended to the permissions, rules that do NOT have it will reject a commit sequence that contains a merge commit (i.e., they only accept a straight line series of commits).