首页 新闻 会员 周边

SVN版本控制器更新文件数据,即解决冲突的原理是什么?

0
悬赏园豆:10 [已解决问题] 解决于 2022-01-17 15:56

有以下几个问题:
1.我检出一份副本到本地,修改了几个文件,然后我提交到SVN服务器中,此时服务器是如何更新有关的数据的呢?是不是把原来旧的文件数据删除了,保存最新提交的数据呢?

  1. 假设我修改了 Person.java 文件,里面我已经改的面目全非了,在提交之前,也有个人修改了 Person.java 文件,他比我先一步完成提交,接着我再提交,那么 SVN 是怎么解决的?

  2. 上个问题中,另外一个人提交了,我先更新下来,此时SVN 又是如何确保我本地的 Person.java 文件中既保留了他人刚修改过的代码,又保留我自己修改的代码的呢?如果我们两个人都修改了同一个方法,怎么搞?或者说他把方法名都改了,我现在又更新了,那怎么玩?

求大神分享,万分感谢!!!!!!

liaowenxiong的主页 liaowenxiong | 初学一级 | 园豆:33
提问于:2021-07-29 18:58
< >
分享
最佳答案
0
  1. 不会删除旧的数据, 而是增加一个修订版本. 可以show log看到所有的更改历史.
  2. svn会告诉你当前的提交有文件冲突, 需要手动解决冲突后才能提交
  3. 你拉取的代码版本是1, 仓库版本是2, 当你代码修改后(称为版本3), svn会检查版本号,并提示要你先update在commit.
    update的时候svn会尝试自动合并代码, 如果有冲突不能自动合并(比如修改了同一行代码)就会要求手动合并,

可以查看官方文档: https://subversion.apache.org/faq.zh.html

收获园豆:10
czd890 | 专家六级 |园豆:14412 | 2021-08-03 00:16
其他回答(1)
0

还用SVN?的确不晓得。

在用GIT时,我会先把 自己的代码备份,然后还原到 未修改版本,再拉取(服务器最新的、同事修改过的),
再使用 beyond compare比较 两份代码,根据比较情况再更改,
再提交——此时,要其他同事没提交才是

快乐的凡人721 | 园豆:3916 (老鸟四级) | 2021-07-30 16:15
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册