生产环境代码与开发分支的代码差别很大如何处理?

2021-11-17 17:55:33 +08:00
 fangcan

由于历史原因,没有做好分支管理,现在的情况是这样的:

最近在上线的时候由于代码不一致的问题,导致了上线很困难。

目前我的操作是上线前先把线上的代码 class 拿下来反编译跟要上线的代码比对下, 差距较大的用线上的 class 反编译直接覆盖,但还是免不了有各种问题,少类,少方法等

请教各位 v 友有没有什么好的解决方法?

3997 次点击
所在节点    程序员
32 条回复
SingeeKing
2021-11-18 12:08:47 +08:00
build flag 就是解决这个的,一份代码,不同的公司用不同的 flag
gam2046
2021-11-18 16:40:25 +08:00
这个屁股不好擦,有没有可能性联系各个合作方,先进行一次全量更新,统一环境后再考虑后面的事情。

如果没法全量的话,尝试一下人工比对各个发行版的区别,增量更新到同一个版本。

如果依旧保持这种情况,很难解决
smallpython
2021-11-18 17:12:44 +08:00
把数据导出来, 然后统一安装最新的版本, 然后再导进去
aguesuka
2021-11-18 17:41:34 +08:00
所有发布必须携带版本号, 在仓库里冻结二进制文件和源代码. 不做增量更新, 保证现场代码与源码对应
zjsxwc
2021-11-18 21:32:45 +08:00
定期比如一周都合并到 master 分支呗,从来都不合并的分支有意义吗?
guanhui07
2021-11-18 22:12:23 +08:00
测试分支删了把 定期从 master 拉
kaneg
2021-11-18 23:27:48 +08:00
说明你们公司的客户不多。
要考虑多客户的设计应该是代码保持同一份,客户的不同需求靠各自的配置来适配。
byzf
2021-11-19 10:17:48 +08:00
这不就是屎山 1.0 吗,比较接近线上环境的开发人员懒得跑开发版本代码,直接在生产环境代码修改了之后又要求开发分支去合并生产环境的代码。

这样搞很大概率结果就是,同一个功能有来自七八个线上版本的不同实现,然后后续开发时也不知道哪个是主要在用的,这个人依赖这个那个人依赖那个,遇到问题要改就要全改,要么就加份新的,反正也没人愿意去重构以前的,最后就变成屎山。
fangcan
2021-11-22 15:43:15 +08:00
@byzf 嗯 大概就是这种情况, 基于这种情况, 如何捋清楚线上的各公司的代码?有没有什么好的建议、方法?
fangcan
2021-11-22 15:46:15 +08:00
@kaneg 之前就是同一份,但是配置开关之类的应该是没弄好, 或者不知道什么原因, 反正之前都是增量发布。那即使配置弄好了,也没用啊。 这次我新开发的需求,也要求要用增量的,说全量会有风险。但是就遇到了描述里面的情况
byzf
2021-11-23 09:31:32 +08:00
@fangcan 分 dev 、stable ,让维护线上的人改 stable ,dev 定期从 stable 拉版本。
fangcan
2021-11-23 15:55:49 +08:00
@byzf stable 是从线上拿代码么?还是怎么操作? 目前就是无法做到全量发布,所以分不出 stable

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/816109

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX