2011-10-14 53 views
0

我有一个包含几个类的库。现在我想将这个库分成两个独立的库。与源代码管理结合使用的正确/最佳方式是什么?将项目拆分为多个较小的项目

我最初的想法是创建一个新的储存库为每一个新项目,并在最初的承诺,这是从现在无人维护项目拆分提及。 虽然到目前为止我只有几个提交,但是这个方法的一个问题是项目的历史丢失了。

回答

1

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

可以使原来的资源库的一个副本,使用git的过滤分支,让你有兴趣和删除一切的一部分的历史。

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

当心这是破坏性的。您将看到存储库大小的显着减少,只有mydir1的历史记录并删除所有不可访问的对象。

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

如果您使用的是不同的版本控制系统,那么你必须弄清楚相当于办法做到这一点。

0

你可以创建一个新的存储库,也可以在同一存储库下创建新的项目,并删除旧的时间。其实,这取决于你。如果您将以前的项目看作测试级别或前Alpha阶段,则可能需要创建新的存储库。但除此之外,使用相同的存储库很可能出现这种情况。

1

拇指我遵循的规则取决于您是否将开发和/或独立部署的库。如果仅仅为了代码组织而将库分开,并且将代码作为单个解决方案进行部署,那么创建单独的存储库就没有必要或有益处。

在另一方面,如果你将版本和独立释放库,然后有单独的储存库中的代码可以帮助这一点。因此,例如,如果您将代码分离,因为其中的一部分属于共享框架,那么请将框架代码放入其自己的存储库中。这将允许您维护,构建和发布独立于使用框架构建的任何应用程序的框架。

HTH

+0

我将独立部署这些库。你有什么建议使用这个方法吗? – Stijn