当前位置: 技术问答>linux和unix
重金悬赏:SVN Merge问题
来源: 互联网 发布时间:2017-01-20
本文导语: 本帖最后由 IamGooday 于 2011-11-29 06:06:29 编辑 公司在原第三方的代码基础上做了很多工作,现在第三方又提供了一个新版本的代码包,因此目前的要求是:把所有的公司修改的代码应用到新版本代码包里面。 当前做法...
当前做法是: svn merge vendorcode ourcode thisdir
以上命令的本意是找出vendorcode和ourcode的不同之处,然后应用到thisdir中。
问题出现了:第三方的新版代码包与老版有一些不一样的地方,有一些文件消失了,有一些文件又增加了。很奇怪的现象是SVN merge不仅仅是把我们的修改之处用于目标文件夹,同时还会把老版新版不一样的地方找出来并报错。
举例来说,以下log出现在merge过程中:
====================
C mvl5/drivers/usb/musb/plat_uds.c
C mvl5/drivers/usb/musb/musbhdrc.h
Conflict discovered in 'mvl5/drivers/usb/musb/davinci.c'.
Select: (p) postpone, (df) diff-full, (e) edit,
(mc) mine-conflict, (tc) theirs-conflict,
(s) show all options: p
C mvl5/drivers/usb/musb/davinci.c
====================
其中前面的2个C其实根本就不存在所谓冲突的,只是他们在旧版本中出现而新版本没有而已。只有后面一个是实实在在的冲突。
所以,我希望得到的是:如何去掉这些新旧版本的区别之处,而只是把我们修改的地方应用于目标文件夹?
附带问题2
有一个源码包A, 在SVN中为repos/vendor/A
有人在此包基础上做了不少修改,在SVN中保存在repos/branch/A
现在要想知道到底有哪些地方修改了。svn diff可以找出这些修改点来。但是我现在希望的是仅仅需要告诉我到底有那些文件修改了,而不需要细致到修改的具体源码。
请问:how to.
|
哦没用过这么高级的功能
都是自己beyond compare比较差异,手工修改,提交
都是自己beyond compare比较差异,手工修改,提交
|
merge不能做这么智能的事情,有冲突时,只能自己去决定采用哪个
|
我不明白,难道不可以先本地删除合并再commit么
第二个用cl参数能否满足要求?
第二个用cl参数能否满足要求?
|
1770948999@qq.com