gpt4 book ai didi

svn - 如何关闭 subversion 标签分支?

转载 作者:行者123 更新时间:2023-12-04 07:39:23 26 4
gpt4 key购买 nike

标签在 Subversion 中实现为分支。因此我的问题是:在创建一个 Subversion 标签之后 - 我如何关闭这个分支,以便没有人意外地向该标签分支添加变更集?

例如考虑以下目录布局:

calc+-trunk    |-branches    |-tags

At some point trunk is ready for release and is tagged:

$ svn cp svn://example.net/calc/trunk svn://example.net/calc/tags/v1.0

现在可能会发生以下事故:
$ svn co svn://example.net/calc/tags/v1.0
$ cd v1.0
$ # change files
$ svn ci

(也许上面的 URL 是复制'n'粘贴的,而是一个分支的意思)

如何关闭分支 calc/tags/v1.0使得最后一个 svn ci会失败吗?

我称之为关闭 - 或者你可以调用该操作将分支切换到只读模式 - 或者类似的东西。

最佳答案

您可以通过预提交 Hook 控制提交。 This one将允许您创建,但不能编辑标签。您可以控制对分支机构的访问(防止对其进行更改或保留谁可以对选定的一组人员进行更改)。

当我意识到用户可能无意中编辑了一个标签时,我创建了原始副本。我想要一种用户可以创建标签的方式,但一旦创建标签就无法修改。

您可以通过控制文件来控制 Hook (该控制文件甚至可以驻留在存储库中以便于访问)。第一行阻止任何人写入 /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

关于svn - 如何关闭 subversion 标签分支?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17433860/

26 4 0