将项目拆分为多个较小的项目

时间:2011-10-14 12:28:16

标签: version-control

我有一个包含几个类的库。现在我想将这个库拆分成两个独立的库。与源代码控制相结合处理此问题的正确/最佳方法是什么?

我最初的想法是为每个新项目创建一个新的存储库,并在最初的提交中提到它是从一个现在未维护的项目中分离出来的。 虽然到目前为止我只提交了一些提交,但这个方法的一个问题是项目的历史记录丢失了。

3 个答案:

答案 0 :(得分:1)

我遵循的经验法则取决于您是否将独立开发和/或部署库。如果您只是为了代码组织而将库分开,并且代码被部署为单个解决方案,那么创建单独的存储库就没有必要或好处。

另一方面,如果您将独立版本化和发布库,那么将代码放在单独的存储库中会有助于此。因此,例如,如果您要分离代码,因为其中某些代码属于共享框架,那么将框架代码放在自己的存储库中。这将允许您与使用框架构建的任何应用程序分开维护,构建和发布框架。

HTH

答案 1 :(得分:1)

可能取决于您使用的版本控制。例如,在git中你可以使用filter-branch来完成这个技巧。

您可以复制原始存储库,使用git filter-branch来保存您感兴趣的部分的历史记录,并删除其他所有内容。

$ git filter-branch --subdirectory-filter mydir1
$ git gc --aggressive
$ git prune

要注意这是破坏性的。您将看到存储库大小的显着减少,仅具有mydir1的历史记录并删除所有这些无法访问的对象。

然后,对其他库/子目录重复相同的操作。这样,您将只保留属于每个部件/库/目录的历史记录。

如果您使用的是不同的版本控制系统,那么您必须找出相同的方法来实现它。

答案 2 :(得分:0)

您可以创建新的存储库,但也可以在同一存储库下创建新项目并及时删除旧项目。实际上,这取决于你。如果您将上一个项目视为测试级别或pre-alpha阶段,则可能需要创建新的存储库。但除此之外,在这种情况下很可能使用相同的存储库。