Permissions 是否可以在Perforce中设置权限,以便用户无法集成到仓库的特定区域?

Permissions 是否可以在Perforce中设置权限,以便用户无法集成到仓库的特定区域?,permissions,perforce,Permissions,Perforce,在perforce仓库中,我有一个包含稳定分支的区域,还有一个包含不稳定分支的区域。我想控制用户在稳定区域内创建新分支(使用p4集成)的能力。例如,我的仓库布局如下: //depot /stable stable_branch_1/... stable_branch_2/... ... (I want users to be stopped from integrating to here)

在perforce仓库中,我有一个包含稳定分支的区域,还有一个包含不稳定分支的区域。我想控制用户在稳定区域内创建新分支(使用p4集成)的能力。例如,我的仓库布局如下:

//depot
       /stable
              stable_branch_1/...
              stable_branch_2/...
              ... (I want users to be stopped from integrating to here)
       /unstable
              unstable_branch_1/...
              unstable_branch_2/...
              ... (I want users to be able to integrate to here)
我知道,在p4权限中,我可以设置如下内容:

=branch     user     *         * -//depot/stable/...
()但这与我需要的正好相反(即禁止用户使用stable作为集成源,而不是目标)

我很惊讶,如果不使用触发器,似乎不可能做我想做的事情,有人能提供一些建议吗

编辑:为了明确我不想让用户继续写入稳定文件夹,我只想防止以稳定文件夹为目标执行集成操作。

好,
结合这里的集体智慧和我们Performce管理员的智慧,我建议如下:

write    user    *    *    -//depot/stable/...
write    user    *    *     //depot/stable/existing/branchA
write    user    *    *     //depot/stable/existing/branchB

i、 e.从stable depot中删除写入权限,然后重新授予。另外,注意
=write
write
之间的区别也很重要。第一个完全授予写入权限(没有其他,没有读取,没有同步,没有任何内容),后一个授予写入权限和所有较低级别的权限(例如读取,同步)。

如果您在稳定区域的每个分支上设置显式权限,您应该能够为用户提供对您创建的现有分支/项目的完全访问权限,但他们将无法创建新的分支机构/项目

在你的权限文件中(我不知道语法,也没有这台机器的性能)


您的用户现在应该无法在//depot/stable/…上创建任何新的分支机构/项目/文件夹。。。级别,但具有上面的完全权限。但是,您不能阻止它们集成到现有分支中。恐怕这涉及到用户教育

将此项添加到保护表将阻止用户集成到
//depot/stable
中,同时仍允许用户从中集成:

=写入用户**-//depot/stable/。。。 记住,秩序很重要。Perforce按权限的列出顺序应用权限。这个

=write user * * -//depot/stable/... write user * * //... =写入用户**-//depot/stable/。。。 写入用户**/。。。 …与此无异:

write user * * //... 写入用户**/。。。 此外,当被拒绝的用户试图集成到禁止区域时,Perforce会抛出一个相当不直观的错误。它没有说“您没有权限写入此文件夹”之类的合理的话,而是弹出这样的废话:


抱歉,我在帖子中没有提到这一点,我希望用户能够登录到现有的分支,而不是创建新的分支。我试过perforce support,他们说不支持,我只是想我应该在这里问一下,因为这似乎是一个奇怪的遗漏。+1对于这一点,我认为,根据保护文件的其余部分,有必要显式地取消//reduch/stable路径的写权限,然后将它们重新授予特定路径。 =write user * * -//depot/stable/... write user * * //... write user * * //...