与“正常”的 svn 目录结构相反,我使用以下结构:
树干/ 项目1/ 项目2/ 项目3/ ... 分支机构/ project1-分支/ 项目1/ 项目2/ ... project2-分支/ 项目1/ 项目2/ ... 标签/ 项目1/ V1 V2 ...
如您所见,每个项目我都没有单独的三元组(主干/分支/标签)。
对于开发,我会检查包含我需要的所有项目的主干(有时是稀疏检查)(项目之间存在依赖关系,有些项目只是库)。
我看到的好处是:
更新和签入很容易,因为我有一个所有项目的公共根目录(主干)。一个简单
svn update
或svn commit
全部完成。创建标签或分支很简单,因为这只是我必须要做的主干
svn copy
。(分支和标签实际上包含比需要更多的项目,但是 asvn copy
很便宜,如果需要,我仍然可以在分支或标签上进行稀疏检查。)将资源从一个项目转移到另一个项目很容易,因为它们都存在于同一个存储库中。
当我对主干进行全面检出时,全局重构(例如更改常用类的包)很容易,因为我可以确定我不会错过任何项目。
合并很容易,因为即使从一个项目到另一个项目的重构移动,我也总是可以一次合并整个分支。
我打算迁移到 maven 并将所有项目从主干项目拆分为 maven 项目。我想从 maven 依赖管理和可用插件中受益(现在我正在使用巨大的自定义 ant 文件)。
现在我的问题是:
我是否必须更改 svn 目录结构以赋予每个项目自己的三元组(主干/分支/标签)?我想答案是“是”。
如果我改变结构,我会失去上面提到的哪些好处(我的意思是用 maven 做会更复杂)?
使用 Maven 的等效方法是什么?