Svn Subversion-需要更改存储库的结构吗?

Svn Subversion-需要更改存储库的结构吗?,svn,Svn,我使用Subversion,我认为我的存储库结构不好。 我有: 所以我把几个项目放在一个完全独立的存储库中。因此,在/repoX下,存储库只是文件夹 我认为最好是这样一种结构,其中一个项目是一个独立的存储库 /repoProject10 /repoProject11 /repoProject12 /repoProject13 ... /repoProject20 /repoProject21 ... 你觉得怎么样?主要问题是用户对存储库的限制。我不希望一个用户可以看到repoA/,例如,用户应

我使用Subversion,我认为我的存储库结构不好。 我有:

所以我把几个项目放在一个完全独立的存储库中。因此,在/repoX下,存储库只是文件夹

我认为最好是这样一种结构,其中一个项目是一个独立的存储库

/repoProject10
/repoProject11
/repoProject12
/repoProject13
...
/repoProject20
/repoProject21
...
你觉得怎么样?主要问题是用户对存储库的限制。我不希望一个用户可以看到repoA/,例如,用户应该只读取和写入/project11/project22。所以我必须限制路径。。。 此外,一个存储库只有一个历史记录,而不是一个项目

那么,您认为,改变结构并由一个存储库管理一个项目更好吗


致以最诚挚的问候。

这有点主观,但是的,每个项目都在自己的存储库中并不罕见

除非项目很小,而且创建新回购协议的工作与整个项目相比意义重大,否则我会这么做。我确实有一个随机的东西存储库,用于存放不属于其他任何地方的小工具、脚本和尖峰

还可以管理每个reporitory的权限,所以我不确定您担心这个问题时的意思。您可以授予任何特定用户您希望他们拥有的权限

例如,在我曾经工作过的一个客户机上,我们有一个类似于simiplified的结构来删除分支/主干/标记等:

/RepoCoreLibrary

/RepoProject1
    /RepoCoreLibrary <as an svn external>

然后,您可以为某些开发人员提供对核心的只读访问权限,但对他们的项目进行读写操作。防止初级开发人员意外地或在没有代码审查的情况下向您提交核心代码。

这有点主观,但是的,将每个项目都放在自己的存储库中并不罕见

除非项目很小,而且创建新回购协议的工作与整个项目相比意义重大,否则我会这么做。我确实有一个随机的东西存储库,用于存放不属于其他任何地方的小工具、脚本和尖峰

还可以管理每个reporitory的权限,所以我不确定您担心这个问题时的意思。您可以授予任何特定用户您希望他们拥有的权限

例如,在我曾经工作过的一个客户机上,我们有一个类似于simiplified的结构来删除分支/主干/标记等:

/RepoCoreLibrary

/RepoProject1
    /RepoCoreLibrary <as an svn external>

然后,您可以为某些开发人员提供对核心的只读访问权限,但对他们的项目进行读写操作。防止初级开发人员意外地或在没有代码审查的情况下向您提交核心代码。

我会将您的所有项目放在一个大型存储库中

其他人也在这样做,没有问题。例如,包含大约一百个项目,其中包括subversion本身!还有超过一百万次的修改

我不希望一个用户可以看到repoA/,例如,用户应该只读取和写入/project11/project22。所以我必须限制路径

Subversion做到了这一点,因此即使您将所有内容都放在一个存储库中,您仍然可以分别管理每个项目的读/写访问

此外,一个存储库只有一个历史记录,而不是一个项目

我不知道你说的是什么意思。如果您执行svn日志,那么您将只看到projectA的历史记录,即使同一存储库中有projectB

/repoProject10
/repoProject11
/repoProject12
/repoProject13
...
/repoProject20
/repoProject21
...

也许您的意思是,您对整个存储库的修订号在全局范围内的推进方式感到不舒服。我建议将SVN修订作为时间坐标。它唯一的意思是,修订数越高,修订数越低。事实上,如果您愿意,您甚至可以不使用修订号而使用。

我会将您的所有项目放在一个大的存储库中

其他人也在这样做,没有问题。例如,包含大约一百个项目,其中包括subversion本身!还有超过一百万次的修改

我不希望一个用户可以看到repoA/,例如,用户应该只读取和写入/project11/project22。所以我必须限制路径

Subversion做到了这一点,因此即使您将所有内容都放在一个存储库中,您仍然可以分别管理每个项目的读/写访问

此外,一个存储库只有一个历史记录,而不是一个项目

我不知道你说的是什么意思。如果您执行svn日志,那么您将只看到projectA的历史记录,即使同一存储库中有projectB

/repoProject10
/repoProject11
/repoProject12
/repoProject13
...
/repoProject20
/repoProject21
...

也许您的意思是,您对整个存储库的修订号在全局范围内的推进方式感到不舒服。我建议将SVN修订作为时间坐标。它唯一的意思是,修订数越高,修订数越低。事实上,您甚至可以不使用修订号,如果愿意,也可以使用。

存储库中的项目都是大项目。那么,我的结构有哪些优点/缺点?我发现只有d
缺点…我认为共享回购协议的唯一可能的优点是,您不必创建更多的回购协议,也不必对它们设置权限。考虑到这需要5分钟,这不是什么优势。甚至10分钟,如果你像我一样,不可避免地要先查找语法,那么权限是一种优势。如果我将所有内容放在一个存储库中,那么具有写访问权限的人可以创建新文件夹吗?如果没有人告诉我创建了一个新项目,我就不能设置权限。存储库中的项目都是大项目。那么,我的结构有哪些优点/缺点?我发现了唯一的缺点…我认为共享回购协议唯一可能的优点是,您不必创建更多的回购协议,也不必对它们设置权限。考虑到这需要5分钟,这不是什么优势。甚至10分钟,如果你像我一样,不可避免地要先查找语法,那么权限是一种优势。如果我将所有内容放在一个存储库中,那么具有写访问权限的人可以创建新文件夹吗?如果没有人告诉我创建了一个新项目,我就无法设置权限。我认为它可能更稳定,因此如果某个项目在一个存储库中崩溃,所有项目都会受到影响,如果我将它们分开,我就没有这个问题。此外,如果我有一个项目的存储库,我可以管理新的存储库。因此,如果有人想创建一个新项目,他必须给我打电话,否则大多数有写权限的人都可以创建一个新的文件夹/项目,如果没有人告诉我,我就无法设置权限。@Tim:1不知道你说的崩溃是什么意思。如果您正在谈论限制硬件故障和操作系统崩溃的影响,那么您将不得不维护许多单独的机器。只有一台带有svnsync存储库的回退机器可能更简单。2您可以为用户提供对root/的只读访问权限,同时为特定项目文件夹/foo提供读写访问权限。这样人们就不能自己创建新项目。这很可能就是apache存储库中提交权限的工作方式。好的,谢谢您的回复。我想我不会改变结构,也不会像你说的那样去做。我认为它可能更稳定,所以如果某个项目在一个存储库中崩溃,所有项目都会受到影响,如果我将它们分开,我就不会有这个问题。此外,如果我有一个项目的存储库,我可以管理新的存储库。因此,如果有人想创建一个新项目,他必须给我打电话,否则大多数有写权限的人都可以创建一个新的文件夹/项目,如果没有人告诉我,我就无法设置权限。@Tim:1不知道你说的崩溃是什么意思。如果您正在谈论限制硬件故障和操作系统崩溃的影响,那么您将不得不维护许多单独的机器。只有一台带有svnsync存储库的回退机器可能更简单。2您可以为用户提供对root/的只读访问权限,同时为特定项目文件夹/foo提供读写访问权限。这样人们就不能自己创建新项目。这很可能就是apache存储库中提交权限的工作方式。好的,谢谢您的回复。我想我不会改变结构,按照你说的去做。