大型并行提交

cac*_*ldo 1 svn commit

对于你们中的一些人来说,这听起来像是一个非常基本的问题,但我是颠覆的新手,希望你对这个问题有所建议:

如果B人在我之前修改并提交了他的更改,我该如何处理需要花费数天时间编写代码的大型提交?他的提交涉及与我相同的文件.

总而言之,这是工作流程:

  • 提交A基于rev.1,尚未推送
  • 提交B基于rev.0,已经推送,创建rev.2

考虑到rev.1和rev.2之间已经更改的代码量,推送提交A是否有风险?

抱歉没有问题,但我只是想避免破坏项目的代码.在最糟糕的情况下,我重写了我的部分代码,之前检查了repo到rev.2.

Jer*_*ner 5

如果SVN在上次更新后检测到您要提交的任何文件都是由其他人提交的,则SVN将不允许您进行提交.相反,它将错误输出一条错误消息,告诉您在提交之前需要执行"svn update".当您执行"svn update"时,其他人的更改将被集成到您的本地文件中而不会丢失任何数据,并且一旦您确认所有内容仍然有效,您就可以继续进行自己的提交.

这不是太冒险; 最糟糕的情况是,如果另一个人在你所做的相同文件中修改了很多相同的行; 在这种情况下,"svn update"将导致冲突,您将不得不进入冲突文件,手动编辑它们以选择要保留哪些行以及哪些行要删除(文件将包含您的版本和这些行的另一个版本,它们将在文件中清楚标记,所以这并不像它听起来那么糟糕),然后在冲突的文件上做一个"svn解决"让SVN知道你已经照顾好冲突.之后,您可以像往常一样编译,测试和提交代码.