加入收藏 | 设为首页 | Life家族 | SCMLife | RMLife | PMLife | SQALife | TESTLife | 企业VIP专区 | 中文化荣誉殿堂
 
发新话题
打印

[已解决] SVN会不会丢代码呀( 此文章被查看:561次,被回复:5篇!! )

SVN会不会丢代码呀


问题详述:
我的两个同事A和B,都从svn服务器下载了同一版本的代码
同事A 在12:00在一个文件中添加了几行代码,上传了。SVN上的版本也进行了更新
同事B在下午3点也在这个文件中添加了几行代码(不同位置),上传时报冲突,然后用updata同步服务器中的文件,在同步后的文件里从新添加代码,然后上传;
结果同事C在第二天修改这同一个文件时,发现同事A添加的代码不见了,同事C用的是最新版本,

请高手看看操作顺序是否有问题,是人为操作出了问题,还是SVN本身的bug?

小妹先谢过!

[ 本帖最后由 dingdong111 于 2008-7-9 15:38 编辑 ]



© 本文为 dingdong111SCMLife 共同所有,未经同意,请勿转载 ©如该文侵犯了您的版权,请联系管理员

TOP

出现该问题的关键在同事B的操作
“同事B在下午3点也在这个文件中添加了几行代码(不同位置),上传时报冲突,然后用updata同步服务器中的文件,在同步后的文件里从新添加代码,然后上传;”
上传报告冲突后,UPDATE服务器中的文件,因为此时工作区已经做了修改,即使UPDATE服务器的版本也不会覆盖工作区的文件,只会另外产生冲突文件,因此同事A的修改在UPDATE后的文件里还是没有的,因此即使重新修改,仍然不是在同事A产生的版本上修改。所以最后同事A的修改丢掉了。



© 本文为 千寻SCMLife 共同所有,未经同意,请勿转载 ©如该文侵犯了您的版权,请联系管理员

TOP

还是不太明白

updata后不是会同步到服务器里的最新版本么。怎末会只有冲突文件。

另外出现问题后,我和一位同事还做了试验,我们的代码在updata后是可以合并的(不是修改同一行)
没有出现丢代码情况。



© 本文为 dingdong111SCMLife 共同所有,未经同意,请勿转载 ©如该文侵犯了您的版权,请联系管理员

TOP

我特地也作了个试验,不知道是不是跟你的操作步骤一样。
环境:subversion1.2+tsvn1.4.5
两个用户test1,test2均update了test.c的r5035修订版。
test1增加了一行:add by test1 8:58,并提交产生r5036版;
test2未update,在工作空间(r5035)版上增加了一行:add by test2 9:03,commit失败提示:Out-of-date错误(如果工作空间不是服务器的最新版本,修改后提交都会提示这个错误);
test2执行update操作,因为工作空间文件已经修改,并且服务器上的文件已经被test1修改(冲突就是这样产生的,两个人同时对一个文件进行修改),更新后的目录多产生了三个文件:test.c.mine(工作区文件),test.c.r5035(修改前工作区版本),test.c.t5036(服务器最新修订版本),而已有的test.c的确进行了合并,内容如下:
add by admin 8:55
<<<<<<< .mine

add by test2 9:03
=======

add by test1 8:58
>>>>>>> .r5036

如果B是对这个test.c文件进行修改,并删除那三个冲突文件再提交(如果不删除提交失败),那结果是正确的。

[ 本帖最后由 千寻 于 2008-7-9 09:49 编辑 ]

© 本文为 千寻 所有,未经同意,请勿转载
©如该文侵犯了您的版权,请联系管理员

TOP

已经找到原因了

后来经过仔细询问,原来B传的时候操作有问题
他同步以后,又将自己原来的文件覆盖了,所以A修改的都没有了
谢谢你给我解答,叫我更深的理解了SVN的使用!

© 本文为 dingdong111 所有,未经同意,请勿转载
©如该文侵犯了您的版权,请联系管理员

TOP

个人认为操作规范太重要了

© 本文为 drang84 所有,未经同意,请勿转载
©如该文侵犯了您的版权,请联系管理员

TOP

发新话题