将svn文件夹移动到自己的存储库
我有一个不断扩展的存储库。现在我正在清理这些内容,并希望将每个项目移动到一个单独的存储库中。我当前的设置:将svn文件夹移动到自己的存储库,svn,svnadmin,svndumpfilter,svndump,Svn,Svnadmin,Svndumpfilter,Svndump,我有一个不断扩展的存储库。现在我正在清理这些内容,并希望将每个项目移动到一个单独的存储库中。我当前的设置: [ProjectRepo] - Projects - Software1 - trunk (VS2010 solution inside here) - .sln - vs project #1 - vs project #2 - vs project #3 - branches - tags -
[ProjectRepo]
- Projects
- Software1
- trunk (VS2010 solution inside here)
- .sln
- vs project #1
- vs project #2
- vs project #3
- branches
- tags
- Software2
- trunk (VS2010 solution inside here)
- .sln
- vs project #1
- vs project #2
- vs project #3
- branches
- tags
- Shared
- shared component #1 (vs project)
- trunk
- branches
- tags
- shared component #2 (vs project)
- trunk
- branches
- tags
现在,我想将每个项目和每个解决方案移动到主干目录中自己的存储库中。我一直在尝试使用svnadmin dump和svndumpfilter,但问题是节点路径一直保持旧结构。如何达到以下结构
[Software #1 Repo]
- trunk
- branches
- tags
[Software #2 Repo]
- trunk
- branches
- tags
[Shared Component #1 Repo]
- trunk
- branches
- tags
如果您能够使用svndumpfilter成功地筛选项目,我认为如果项目之间存在任何“交互”(如复制或合并),那么您就不可能使用旧结构创建新的存储库,然后通过svn copy和svn delete创建新结构,即将Software1Repo/Projects/Software1/trunk复制到Software1Repo/trunk,然后svn删除它,等等 在不同的存储库中移动项目有什么好处?通常在一个repo中包含所有代码更方便。我们在软件的几个部分之间共享组件。在我看来,在单独的存储库中,将某个标签绑定到修订版更容易。。。或者你对此有不同的看法吗?看看svn:external属性,了解如何使用共享组件来处理依赖关系:我们目前使用的是svn:externals,然而,当您标记使用与组件相关的修订而不是整个存储库的总修订号时,不是更容易/更好吗?根据我的经验,这只是习惯的问题。此外,在备份策略中,维护多个存储库增加了用户管理的复杂性—需要管理更多的访问和passwd文件,并且在这种情况下,很难在software2中重用software1的一部分。