【问题标题】:cvs: updates fail to mergecvs:更新无法合并
【发布时间】:2013-01-10 12:53:52
【问题描述】:

我刚刚发现,一个令我惊讶的 cvs 行为。

  • 我在本地更改 file1
  • 在此期间,人们更改同一文件的其他不相关部分,并提交到存储库
  • 我从存储库更新我的本地副本
  • 此时,我希望文件 1 的本地副本包含其他人对此文件所做的所有更改,除非上述更新报告了冲突。但是,当我现在使用 head 进行比较时,我发现很多差异来自其他人对我根本没有触及的文件部分所做的更改。

有什么想法吗?这只是cvs合并的能力有限吗?有什么错误的设置吗?我的工作流程中有什么问题?

【问题讨论】:

    标签: version-control merge cvs


    【解决方案1】:

    CVS 的合并功能非常有限。如果您想要更好的合并体验,请切换到现代系统,例如 Git(如果 repo 维护者不合作,可能通过git-cvsimport)。另见Best practices for using git with CVS

    【讨论】:

    • 嗯...有什么方法可以让 cvs 使用外部合并工具?
    • 是的,这是可能的,但需要工具支持 CVS,或某种 CVS 包装器。参见例如stackoverflow.com/questions/631781/… 一些选项。
    • 您上面链接中提到的工具似乎只支持查看外部工具中的差异。有什么东西可以与外部工具合并
    • 我的印象是,例如Meld 也可以做到这一点,但我还没有尝试过(Emacs 的老用户,很久以前就从 CVS 迁移到 SVN 并迁移到 Darcs 和 Git)。我的建议是发布一个单独的问题,因为这个讨论基本上只有你和我才能看到。
    【解决方案2】:

    最终的解决方案是:

    1.手动将本地代码保存到另一个地方

    2。将可能有冲突的文件恢复到 CVS 服务器上的 HEAD(最新)版本。

    3.将您的更改添加回已恢复的文件。

    上述解决方案的概念是通过 REVERT 清除所有可能的问题,并从存储库中获取 100% 干净的版本,然后添加回我们的更改。

    它可以解决以下由代码过期/代码库混乱引起的问题。

    1. CVS 提交发生冲突,尚未修改
    2. CVS 更新失败
    3. CVS 不同步

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-09
      • 1970-01-01
      • 2018-04-15
      • 1970-01-01
      • 1970-01-01
      • 2018-04-11
      • 2019-01-28
      • 2019-07-09
      相关资源
      最近更新 更多