[请益] merge程式码的问题

楼主: oranfrog (oranfrog)   2017-08-06 13:43:14
各位大大好,小弟是程式开发的新手,工作上遇到技术上的问题想上来向大家求救
最近我接手了一份已经开发一段时间的程式
而接到一个任务是:要把某个新功能merge在旧的版本上
例如(数字我随便举例,只是想表达程式新旧):
程式最新的commit为 2110
而某个“新功能”是在 2102->2103 装上去的
我被交办的任务是把这个“新功能”装在 1133 (大概两年前的commit) 上
程式并不算大,但是模组化做得不彻底
常常一个 function 乱七八糟夹杂了一堆东西
而且两版程式码相差了两年,内容已有许多不同,小弟非常头大
主管又觉得这个是复制贴上的工,应该马上就要好
想请问版上的前辈们有没有相关经验分享或建议
或者推个关键字让小弟去查
先谢谢大家了>"<
注1:程式语言为 C
注2:因为政策与时间因素,重构较不可行
作者: abccbaandy (敏)   2017-08-06 13:55:00
104
作者: mathrew (Joey)   2017-08-06 14:00:00
那就只好给他 CTRL+C CTRL+V 囉
作者: CGS0 (Mike Chen)   2017-08-06 14:02:00
就练习 看看少了什么补进去
作者: TSW (翘班帝国)   2017-08-06 14:35:00
找出 feature branch 整个 rebase 过去然后解 conflit 然后让让测试飞~ 飞不过就回报主管不可能马上就好~
作者: max241 (养生之道)   2017-08-06 14:36:00
确定工作区干净后 reset hard到1133cherry-pick 2103的变更
作者: usan (usan)   2017-08-06 15:46:00
边搬边抓error,只能这样,系统厂常这样搞
作者: abc0922001 (中士abc)   2017-08-06 16:01:00
SVN还是Git?
作者: testPtt (测试)   2017-08-06 16:01:00
只能把新功能要的条件一个个补上囉
作者: FrAnKw (hard to believe)   2017-08-06 16:06:00
这什么主管?主管没看过程式码还是没写过程式...都只要复制贴上就可以搞定谁还要去研究design pattern?
作者: kurtsgm   2017-08-06 16:18:00
说真的...版本差这么多 架构又不是很好的话...就算用版本控制的机制去“搬”....能动的机率大概也很低 XD
作者: testPtt (测试)   2017-08-06 16:19:00
不然就装死 我以为主管要自己补条件
作者: jj0321 (JJ与你倒数唷)   2017-08-06 16:27:00
地基已经烂掉了 不打掉重练是要继续盖违楼?
作者: xxtuoo (浪费时间不好QQ)   2017-08-06 16:29:00
主管熟你不熟 就这个差异.diff 2012~2013差异 慢慢补啊XDD
作者: MOONY135 (谈无欲)   2017-08-06 17:25:00
两年阿...我两个月前跟现在的就差很多了
作者: mdkn35 (53nkdm)   2017-08-06 17:35:00
两年前囧
作者: longlongint (华哥尔)   2017-08-06 18:13:00
先高速复制贴上先交给他 证明这个不是复制贴上可解然后找主管信任的人帮你解释然后最懂新功能的人先问他意见
作者: hidog (.....)   2017-08-06 18:29:00
git的话,搜寻cherry-pick
作者: vi000246 (Vi)   2017-08-06 19:57:00
两年前的与其用Git还不如手动贴
作者: kingofsdtw (不能閒下來!!)   2017-08-06 20:37:00
2年小Case啦,10年我都在搬惹
作者: AIdrifter (交错地带)   2017-08-06 21:38:00
你搞错重点你需要的是 可以三方比对版本的软件请search araxis merge 类似软件我前公司主管也是不懂不知谁把diff印出来整整超过百页a4明明用这类软件一下就解决了…
作者: xam (听说)   2017-08-06 22:35:00
外行的主管+程式开发的新手.. 这也是软件的 anti-pattern 啊
作者: KKFN (John)   2017-08-06 23:30:00
试试看winMerge手动Merge
作者: doranako (真爱无限)   2017-08-07 08:38:00
差了两年的code自动merge应该出错更多,而且没抓到隐藏风险更大,你只能看history,把新功能的新增code抓出来,手动merge比较安全
作者: v7q4 ((.)(.)乳剑双修 -|=>)   2017-08-07 10:43:00
就照他讲的ctrl+c ctrl+v 然后改到可以动就好了千万记得要有email备份! 以免被婊假装寄封信去问他是不是要这样做 让他回答是
作者: kurakidream (随波逐流)   2017-08-07 15:02:00
pick过去 可能要解一堆conflict
作者: KanoLoa (卡)   2017-08-07 15:14:00
Merge只是复制贴上? XD
作者: CrystalNik (水晶尼克)   2017-08-07 17:27:00
把这篇贴给你主管看XD 有很多人帮你背书这很困难
作者: jennya (Jennya)   2017-08-07 18:11:00
直接把旧版本从“1133”变成指向2103,这样符合主管要求吗还是主管要求的是:旧版本必须是“……、1132、1133、2103”如果是前者就很好解决,直接把旧版更新到2103的意思。如果每个commit都有做好,2103那版本应该也要能动。如果是后者,就很麻烦,一定不可能2103单独那个commit就能动,一定是要再补足1133~2103之间对2103而言必要的架构。如果只是小功能,说不定参考2103然后自己重写加到1133上还比较快。
作者: besmartAE (*无敌海滩男孩*)   2017-08-08 08:31:00
主管都嘛觉得什么都简单。可以列出困难点给他
作者: NCUking (中大王)   2017-08-08 12:38:00
不懂软件的主管 大灾难的起手式
作者: cerwvk (乎你~~~)   2017-08-08 14:55:00
认同楼上+1
作者: chrisjohn214 (咪咪奖)   2017-08-08 18:21:00
先看版本数量,接着一个个export出来用araxix merge比对,不要用svn内建的差异,你会累死
作者: vn509942 (如履薄冰)   2017-08-09 08:23:00
之后肯定会有大惊喜

Links booklink

Contact Us: admin [ a t ] ucptt.com