代码之家  ›  专栏  ›  技术社区  ›  Vagnerr

有没有一种方法可以让cvs在关键字替换(如$id:)上不产生合并冲突?$

  •  3
  • Vagnerr  · 技术社区  · 14 年前

    在合并到主干之前,我们目前使用cvs并在分支上开发新特性。有时,我们会得到由cvs关键字替换引起的合并冲突。所以在查看冲突文件时,我们看到类似这样的情况

    <<<<<<< collect_logs.conf
    # CVS $Id: collect_logs.conf,v 1.6 2010/02/03 16:43:11 peterw Exp $
    =======
    # CVS $Id: collect_logs.conf,v 1.13 2010-05-07 17:14:43 peterw Exp $
    >>>>>>> 1.13
    

    那就是 只有 文件中有冲突。

    我做了一些调查,正如您可能注意到的,条目中日期的格式略有不同。这是因为不同平台(一个在Solaris上,另一个在Linux上)上使用了不同的CVS版本,我认为这就是引发冲突的原因。

    解决方法是简单地对项目进行一次新的签出,然后从那里进行CVS更新。因为所有关键字都是以相同的格式生成的,所以很乐意合并。

    我的问题是,您能否命令cvs更好地处理关键字替换的合并。还是像我一样,通过新的退房来避免?

    谢谢

    彼得

    1 回复  |  直到 13 年前
        1
  •  2
  •   Burhan Ali    13 年前

    你会使用 update -kk ... 根据 Merging and keywords (第5.10节)。

    这个 k 附于 -k (关键字替换模式)使cvs只输出关键字,而不输出关键字的值。所以理论上,你的多种日期格式不应该是个问题。不过,我还没有检验过这个理论。