1

对你们中的一些人来说,这听起来像是一个非常基本的问题,但我是 subversion 的新手,希望您对这个问题提出建议:

如果 B 人也在我之前修改并提交了他的更改,我应该如何处理需要几天工作才能编写代码的大型提交?他的提交涉及与我相同的文件。

总结一下,工作流程如下:

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

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

很抱歉这个菜鸟问题,但我只是想避免破坏项目的代码。在最坏的情况下,我重写了我的部分代码,之前检查了 repo 到 rev.2。

4

1 回答 1

5

如果 SVN 检测到您要提交的任何文件自您上次更新以来已由其他人提交,则 SVN 将不允许您进行提交。相反,它会出错并显示一条错误消息,告诉您在提交之前需要执行“svn update”。当您执行“svn update”时,其他人的更改将集成到您的本地文件中而不会丢失任何数据,并且一旦您验证一切仍然有效,您就可以继续进行自己的提交。

这不是太冒险。最坏的情况是,如果其他人在您所做的相同文件中修改了许多相同的行;在这种情况下,“svn update”将导致冲突,您必须进入冲突文件,手动编辑它们以选择要保留和删除的行(文件将包含您的版本和其他人的这些行的版本,它们将在文件中清楚地标记,所以这并不像听起来那么糟糕),然后对冲突的文件执行“svn resolved”,让 SVN 知道你已经处理了冲突。之后,您可以像往常一样编译、测试和提交您的代码。

于 2013-01-03T01:43:23.237 回答