我有一个包含几个类的库。现在我想将这个库拆分成两个独立的库。与源代码控制相结合处理此问题的正确/最佳方法是什么?
我最初的想法是为每个新项目创建一个新的存储库,并在最初的提交中提到它是从一个现在未维护的项目中分离出来的。 虽然到目前为止我只提交了一些提交,但这个方法的一个问题是项目的历史记录丢失了。
答案 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阶段,则可能需要创建新的存储库。但除此之外,在这种情况下很可能使用相同的存储库。