我刚刚发现,一个令我惊讶的 cvs 行为。
- 我在本地更改 file1
- 在此期间,人们更改同一文件的其他不相关部分,并提交到存储库
- 我从存储库更新我的本地副本
- 此时,我希望我的本地文件 file1 副本包含其他人对此文件所做的所有更改,除非上面的更新报告了冲突。但是,当我现在使用 head 进行比较时,我发现很多差异来自其他人对我根本没有触及的文件部分所做的更改。
有任何想法吗?这只是cvs合并的能力有限吗?有什么错误的设置吗?我的工作流程中有什么?
我刚刚发现,一个令我惊讶的 cvs 行为。
有任何想法吗?这只是cvs合并的能力有限吗?有什么错误的设置吗?我的工作流程中有什么?
CVS 的合并功能非常有限。如果您想要更好的合并体验,请切换到现代系统,例如 Git(git-cvsimport
如果 repo 维护者不合作,则可能通过)。另请参阅将 git 与 CVS 结合使用的最佳实践
最终解决方案是:
1.手动将本地代码保存到另一个地方
2. 将可能有冲突的文件恢复到 CVS 服务器上的 HEAD(最新)版本。
3. 将您的更改添加回 Reverted 文件。
上述解决方案的概念是通过 REVERT 清除所有可能的问题,并从存储库中获取 100% 干净的版本,然后添加回我们的更改。
它可以解决以下由代码过期/代码库混乱引起的问题。
- CVS 提交有冲突且未被修改
- CVS 更新失败
- CVS 不同步