当前位置:  技术问答>linux和unix

重金悬赏:SVN Merge问题

    来源: 互联网  发布时间:2017-01-20

    本文导语:  本帖最后由 IamGooday 于 2011-11-29 06:06:29 编辑 公司在原第三方的代码基础上做了很多工作,现在第三方又提供了一个新版本的代码包,因此目前的要求是:把所有的公司修改的代码应用到新版本代码包里面。 当前做法...

本帖最后由 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比较差异,手工修改,提交

|
merge不能做这么智能的事情,有冲突时,只能自己去决定采用哪个

|
我不明白,难道不可以先本地删除合并再commit么

第二个用cl参数能否满足要求?

|
1770948999@qq.com

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 重金求《程序员大本营Java版》
  • 重金酬谢
  • 重金急救Neighbour table overflow
  • 重金求Linux 系列驱动开发
  • 重金求解
  • 重金求助,如何读写外部存储器
  • 关于开发代码的EJB容器——欢迎大家参与讨论(重金200分,看相应人数分值还会有所增加!)


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3