我的图书馆有两个版本lite
和pro
。这些文件可以重叠,不同且仅pro
。
我想将它们维护在git上,也许一个维护在gitlab上,另一个维护在github上,或者两者都维护在gitlab上,因为gitlab支持私有仓库(对于我的pro
)。
在这种情况下是否有方便的做法?我完全不喜欢两次执行提交操作。
答案 0 :(得分:1)
在C#中,您可以根据#if
定义的预处理程序标识符,使用project configuration添加代码块。
即。不仅是“ Debug”和“ Release”构建,还具有“ Lite-Debug”,“ Lite-Release”,“ Pro-Debug”和“ Pro-Release”(在较大的项目中,四个配置似乎很少) )
Partial functions也可以提供帮助(允许代码调用可能存在或不存在的代码)。
如果您希望“精简版”是开源的,而要关闭完整版,则需要使用其他方法。您可以并行维护两个版本(这将简化对精简版的贡献,但请注意将第三方更改复制到封闭版会带来的许可证影响)。
或使用处理工具从完整版本中提取精简版本,所有维护工作均在完整,封闭的源版本中进行。
答案 1 :(得分:-1)
您可以使用一个回购。 1)在git,lite和pro中建立两个不同的分支。 2)还要建立另一个分支,称为dev-lite和dev-pro。这将具有开发人员正在进行的版本。 3)同时告诉所有开发者分叉仓库。 (或者,如果分叉听起来很困难,请为每个开发人员分别创建一个分支)
现在,开发人员将分叉您的存储库,并将所做的更改提交给dev-lite和dev-pro,无论他们在哪个分支上工作。经过一些代码审查后,应该有一个管理员合并了这些更改。
4)配置Jenkins构建服务器,以便通过提交更新dev-lite或dev-pro分支后,将立即运行构建并将其发布到各自的环境。
5)现在,进入发布阶段,一旦做出决定,您需要在dev-lite和dev-pro分支中标记版本,并将代码重新绑定/合并到pro和lite分支。
6)该分支的代码将是您的生产代码,并将为客户端实时运行。
通过这种方式,您可以将lite和pro都放入git中。