当前位置:  开发笔记 > 运维 > 正文

颠覆多个项目的版本号

如何解决《颠覆多个项目的版本号》经验,为你挑选了2个好方法。

当使用Subversion(svn)进行多个项目的源代码控制时,我注意到我的所有项目目录中的修订号都增加了.为了说明我的svn布局(使用虚构的项目名称):

    /NinjaProg/branches
              /tags
              /trunk
    /StealthApp/branches
               /tags
               /trunk
    /SnailApp/branches
             /tags
             /trunk

当我对Ninja程序的主干执行提交时,假设我已经将其更新为修订版7.第二天让我们说我对Stealth应用程序进行了一些小改动,它将作为修订版8返回.

问题是:在使用一个Subversion服务器维护多个项目时,是否普遍接受的做法是让所有项目中不相关项目的修订号增加?或者我做错了,应该为每个项目创建单独的存储库?或者它完全是另一回事?

编辑:我推迟了标记答案,因为很明显这两种方法都有原因,即使这个问题首先出现,我还是想指出其他一些最终提出同样问题的问题:

我应该将所有项目存储在一个存储库还是多个存储库中?

一个SVN存储库还是很多?



1> James McMaho..:

我很惊讶没有提到这在版本控制中与Subversion讨论,可以在这里免费在线获得.

我在这个问题上读了一段时间回来,这确实似乎是个人选择的问题,有关于这个问题的一个很好的博客文章在这里.编辑:由于博客似乎已关闭,(此处存档版本),这里有Mark Phippard关于这个主题的一些说法.

这些是单一存储库方法的一些优点.

    简化管理.部署一组钩子.一个备份存储库.等等

    分支/标签灵活性.将代码全部放在一个存储库中,可以更轻松地创建涉及多个项目的分支或标记.

    轻松移动代码.也许您想从一个项目中获取一部分代码并在另一个项目中使用它,或者将其转换为多个项目的库.在同一个存储库中移动代码很容易,并保留代码的历史记录.

以下是单一存储库方法的一些缺点,即多存储库方法的优点.

    尺寸.处理许多较小的存储库可能比一个较大的存储库更容易.例如,如果您退出项目,则只需将存储库存档到介质并将其从磁盘中删除并释放存储空间.也许您需要出于某种原因转储/加载存储库,例如利用新的Subversion功能.如果它是一个较小的存储库,这样做更容易,影响更小.即使您最终想要对所有存储库执行此操作,一次执行一个存储库的影响也会较小,假设没有迫切需要一次完成所有存储库.

    全球修订号.即使这不应成为一个问题,但有些人认为它是一个问题,并且不希望看到修订版号在存储库中前进,而且不活动的项目在修订历史中有很大的差距.

    访问控制.虽然Subversion的authz机制允许您根据需要限制对存储库的某些部分的访问,但在存储库级别执行此操作仍然更容易.如果您的项目只有少数几个人可以访问,那么使用该项目的单个存储库更容易.

    行政灵活性.如果您有多个存储库,则根据存储库/项目的需要更容易实现不同的钩子脚本.如果您需要统一的钩子脚本,那么单个存储库可能会更好,但如果每个项目都需要自己的提交电子邮件样式,那么将这些项目放在单独的存储库中会更容易

当你真正想到的时候,多个项目存储库中的修订号会变高,但你不会用完.请记住,您可以在子目录中查看历史记录,并快速查看与项目相关的所有修订号.


**警告:**当多项目场景中的修订号变高时,有一个SVN函数,你应该**不要试图运行:`Revision graph`.这会将所有修订版本扫描到1,无论它们是否与您运行它的文件相关.*在*等待永恒之后,显示工具,然后,您有机会过滤您想要开始的修订号...

2> Barrett Conr..:

我认为强烈建议您为每个项目创建单独的存储库.如果只是为了避免你正在谈论的场景.

使用版本控制,尤其是Subversion,您可以轻松地将存储库的各个部分检入另一个工作副本,然后将它们提交回各自的存储库.这使您可以保持它们清晰独立和独特,同时为您提供极大的灵活性.一旦你进入SVN多一点(我假设你是新手.)你可以开始使用钩子,我可能会看到你设置时可能会遇到困难的地方.如果权限对您很重要,则单个存储库可能比必要更难.

此外,如果您担心需要花费大量时间来设置每个存储库,请查看Apache配置文件的SVNParentPath变量.(同样,我假设你正在使用Apache.)

推荐阅读
黄晓敏3023
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有