这是Subversion归档项目管理的好策略吗?

时间:2014-01-17 21:54:39

标签: svn project-management

我希望对Subversion项目管理策略有所了解。

我们的一些SVN项目变得非常庞大且笨重。从开发人员的角度来看,可以简单地检查您正在处理的分支,但从项目管理的角度来看,从根目录中检出项目对我来说更有意义。但是除了历史参考之外,还有很多旧的分支和标签根本不相关。

有人建议实施一项策略,即在项目的根目录中创建另一个文件夹(与'branches','tags'和'trunk'一起),称为'archive'。然后可以将较旧的分支和标记移动到该文件夹​​中,因为它们变得无关紧要,并且用于当前项目管理的结帐可以排除“存档”文件夹。这应该保留与这些分支相关联的历史记录,但不会导致大量本地工作副本的问题。

你觉得这有道理吗?任何想法都会非常感激。

2 个答案:

答案 0 :(得分:2)

来自PM的POV结账从repo-root是零值无用的无脑解决方案 - 完整的回购树告诉你没什么但是浪费了很多空间!!!

而且,正如Ben已经指出的那样,旧的不相关的过时节点可以(必须)从存储库中删除 - 因为它们无论如何都存储在历史记录中并且可以在需要时到达

答案 1 :(得分:1)

为什么不删除现在不相关的(svn rm)分支和标记?如果需要,你仍然可以将它们从历史中删除。它们不会出现在HEAD的分支/标签列表中。

例如,在Subversion项目的repo中有一个名为log-addressing的分支但是如果你查找branch now you won't find it.

您仍然可以找到分支和所有数据。我在分支机构上运行了一个日志,并找到了它被删除的位置:

svn-trunk log ^/subversion/branches --search log-address

其中第一个条目是:

  

r1546929 | stefan2 | 2013-12-02 00:48:57 - 0800(2013年12月2日,星期一)| 1行

     

合并后删除日志寻址分支   FSFS-改进。

现在让我说我想查看这个旧分支,如果我只是试着像这样检查一下:

svn co https://svn.apache.org/repos/asf/subversion/branches/log-addressing

我会收到错误消息,说它不存在:

  

svn:E170000:网址   'https://svn.apache.org/repos/asf/subversion/branches/log-addressing'   不存在

但是,我知道它存在于修订版1546929之前,所以如果我使用peg修订版1546928(少一个)检查修订版本,我将获得它被删除时所处的状态。我可以这样做:

svn co https://svn.apache.org/repos/asf/subversion/branches/log-addressing@1546928

现在让我们说你决定需要那个分支。您可以使用相同的语法从历史记录中恢复它,以指定peg rev作为复制命令的源。

一些有用的进一步阅读可能是SVN书中的以下部分: