首页 > 解决方案 > 为新的主要更新创建单独的存储库?

问题描述

我有一个开发框架,我将很快对其进行重大更新。(至 2.0.0)

我改变了我的框架的整个设计,所以它根本不兼容以前的版本。

就我而言,为我的新主要更新创建一个单独的 Git 存储库是个好主意吗?有没有这样的案例?

我会很感激任何意见。

标签: gitgithubversion-controlrepository

解决方案


一些现实世界的例子

Yii 框架前段时间做过这样的事情。Yii 2.0 完全重写了——几乎所有的类名都被改变了(由于引入了命名空间),你实际上可以同时使用 Yii 1.1 和 Yii 2.0,因为它们充当了两个独立的库。所以 Yii 团队选择创建单独的存储库 ( yii2) 和单独的包名 ( yiisoft/yii2)。这自然产生了一些约定——通常 Yii 2 扩展以 为前缀,yii2-以区别于完全不同的 Yii 1.x(通常以 为前缀yii-)。到目前为止一切顺利 - 有一致的命名约定,可以避免框架版本之间的混淆。

但是现在 Yii 想使用semver。这自然需要发布下一个主要版本——Yii 3.0。3.0 不会被完全重写——只有部分框架会改变。yii3创建新的存储库和新的包是没有意义的。所以要么我们在存储库中有 Yii 3 yii2,要么我们需要重命名存储库和包名(它被数千个应用程序和扩展用作依赖项)。这两种选择都很糟糕。


所以我不建议创建新的存储库,除非您想将其视为全新的框架(具有不同的名称,而不仅仅是myframework2)。创建带有2后缀的新存储库和包可能看起来很诱人,因为它可能会解决一些问题,但从长远来看,它可能弊大于利。


推荐阅读