您可以通过预提交挂钩控制提交。这将允许您创建,但不能编辑标签。您可以控制对分支的访问(阻止对其进行更改或保留可以对选定的一组人进行更改的人)。
当我意识到用户可能会无意中编辑标签时,我创建了原始副本。我想要一种用户可以创建标签但一旦创建标签就无法修改标签的方式。
您可以通过控制文件控制挂钩(该控制文件甚至可以驻留在存储库中以便于访问)。第一行防止任何人写入/tags
目录(或任何子目录)。第二个允许用户将分支复制到新标签,但他们不能修改该标签中的任何内容。
[FILE You cannot edit a tag once it's been created]
file = /tags/**
access = read-only
users = @ALL
[FILE You cannot edit a tag once it's been created]
file = /tags/*
access = add-only
users = @ALL
您可以在分支中执行相同的操作。在这里,2.2 分支被完全锁定,只有 Bob 和 Carol 可以在 2.3 分支准备发布时对其进行更改:
[FILE No one is allowed to touch the 2.2 branch. It is dead]
file = /branches/2.2
access = read-only
users = @all
[FILE Only Bob and Carol can make changes to the 2.3 branch]
file = /branches/2.3/**
access = read-only
users = @ALL
[FILE Only Bob and Carol can make changes to the 2.3 branch]
file = /branches/2.3/**
access = read-write
users bob, carol