2013-01-10 90 views
0

我刚发现,对我来说CVS的行为令人惊讶。cvs:更新未能合并

  • 我localy
  • 更改文件1在这段时间人修改同一个文件的其他不相关的部分,并提交到库
  • 我从仓库
  • 更新我的本地副本,在这一点上,我希望我的本地副本file1包含其他人对此文件所做的所有更改,除非上述更新报告有冲突。但是,当我现在头脑发生变化时,我发现很多差异来自其他人在文件的某些部分所做的更改,这些更改我完全没有触及。

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

回答

1

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

+0

嗯...任何方式要求CVS使用外部合并工具? – shealtiel

+0

是的,这是可能的,但需要CVS支持的工具,或某种CVS包装。见例如http://stackoverflow.com/questions/631781/use-a-different-diff-command-with-cvs有些选项。 – tripleee

+0

似乎上述链接中提到的工具仅支持查看外部工具中的差异。有什么可以*与外部工具合并*? – shealtiel

0

最终的解决方案是:

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

2.还原这些可能有冲突的头文件(最新最)版本在CVS服务器上。

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

对上述方案的概念是从REVERT库清理所有可能的问题,并获得了100%的干净版本,则加回我们的变化。

它可以解决以下问题,这些问题是由代码过期/代码库造成的。

  1. CVS提交了冲突并没有被修改
  2. CVS更新失败
  3. CVS不同步