我们公司有很多项目正在进行中。我们有一些公共代码(对于非常常见的东西,如文件操作,数据存储,事件管理......),每个人都可以访问(让我们称之为public
)和一些更具体项目的代码(不打算重用)因为它们太具体了,只有项目团队成员才能访问(因为他们可能拥有一些不允许所有公司成员访问的IP),让我们称之为private
。
我很难用SVN做到这一点。
这是我到目前为止所尝试的内容:
1-我尝试使用以下内容创建单个存储库:
public
代码的公用文件夹private
代码:
在SVN服务器上,我可以轻松管理权限并让每个人都可以访问public
,并且只允许合适的用户访问每个项目private
文件夹。
但我得到的限制是用户不再允许创建分支。因为如果您对正在创建分支的文件夹的所有文件夹具有读取权限,则只能创建分支。
注意:允许一些超级用户创建分支会解决问题....但这是不可接受的,因为这些用户会看到他们不应该看到的代码....
2-我试图为每个项目创建一个公共存储库和一个私有存储库。
private
存储库可以将public
一个导入为svn:external public
存储库可以将private
个导入为svn:external 两者的作用几乎相同。
在SVN服务器上,我可以轻松管理权限(在存储库级别而不是文件夹级别)。然后,可以创建分支......但是:
public
repo应与哪个版本的private
版本一起使用...在某些时候,您最终会得到private
的工作副本代码不再编译,因为您没有使用public
一个public
次更改+一次用于private
更改)public
和private
的分支进行维护和同步)。会有第三种选择吗?
或者是否有人可以提出一些建议来解决上述解决方案1-和2-中遇到的限制?
答案 0 :(得分:0)
您可以重新安排放置主干,标签,分支等的位置。使用/trunk/private/project1
和/branches/branchname/private/project1
代替/private/project1/trunk
和/private/project1/branches/branchname
。