由于刚接触SVN时间不长,当时建立版本库时候图方便,只建立了一个版本库。现在由于项目需要,需要建立多个版本库,这让我很头疼。经过一番摸索,终于知晓了如何在已 有单个版本库情况下面建立多个版本库。

一、单个库还是多个库?

原文链接:单个版本库还是多个? 作者:rocksun**

我前一个 blog中讨 论了版本库的布局,这个条目会尝试回答是选择单版本库单项目还是单版本库存放所有项目的问题,这里没有一个唯一的正确答案,但希望本 文可以帮助你理解代价,你才可以做出正确的决定来满足你的需求,下面是单版本库方法的优点:

  1. 管理简单,只需要部署一组钩子,备份一个版本库等等。
  1. 分支/标签灵活性,因为所有的代码在一个版本库,这样可以容易的 创建跨多个项目的分支或标签。
  1. 移动代码更简单。你或许希望把代码从一个项目移动到另一个,或者将其作为多个项目的库,这样可以容易的将 代码在同一个版本库移动,并保持代码的历史。

下面是单版本库的缺点,以及多版本库的优点。

  1. 大小。对付多个小版本库会比对付一个大版本库容易,例如你结束了一个项目,你只需要归档版本库到媒介,然后从磁盘删除并释放空间。也许因 为某些原 因你需要转储/导入版本库,例如利用新的Subversion特性,如果库很小,会很容易做且影响很小,即使你最终希望对所有的版本库作这些事,也比一次 完成的影响小,当然我们假定没有急迫的需要一次完成这些任务。
  1. 全局修订版本号。即使这不应该是一个问题,一些人还是要求使用一个修订版 本号,不希望来看到版本库修订版本号的自己增加,造成修订版本历史的横沟。
  1. 访问控制。Subversion的authz机制允许你根据 版本库的部分需要限制访问,如果你有一个项目,只有一些选定的人可以访问,对于一个版本库,这样做很简单。
  1. 管理灵活性。如果你有多个版 本库,可以根据版本库/项目的需要实现不同的钩子,如果你希望统一钩子脚本,单个版本库会更好,但是如果每个项目希望自己的email样式,在不同的版本 库中实现会更容易。

这里只是每种方法的赞成和反对意见,希望它可以帮助你做出决定,我更喜欢一个版本库一个项目的方法,如果我有多个项目互相关联,我会喜欢多项目单版 本库的方法,我也希望通过组或团队分离版本库,尽管实际上是项目概念的变种。

例如,我有一个文档部门项目使用的版本库,当然,在这个例子里在线帮助经常与应用代码位于一个相同的项目,但是文档组也有他们制作的其他材料,我们 给了他们另一个版本库。同样的,市场部也有一个版本库存放他们需要的东西,例如公司网站。因为我们讨论版本库的布局,这是可以最好工作的决定,也可以说, 在设置好后,改变版本库可能会或多或少有点麻烦。

所以,很值得花时间理解需求来决定哪种方法更适合他们。

二、单个版本库向多个版本库的迁移

1.在原有的版本库repository中建立两个新文件夹,一个用来装原有版本库,一个用来防治新的版本库。

2.将原来版本库文件迁移到新的文件夹中。

3.建立新的版本库目录文件svnadmin create c:repositorysvn_data_2

4.最重要的一步,分别修改confsvnserve.conf ,去掉realm注释

4.重启SubVersion系统服务。(不知道如何创建服务的看我之前的博文:配置SVN服务端 « Log4D

5.在客户端找到新的svn地址,如svn://192.168.0.1/svn_data_1svn://192.168.0.1/svn_data_2

6.大功告成!

PS:切记客户端的原有代码在迁移前进行提交,然后重新获取新的地址下的代码文件。


原文链接: SubVersion建立多个版本库 | Log4D

3a1ff193cee606bd1e2ea554a16353ee

欢迎关注我的微信公众号:窥豹

窥豹