关于SVN的一个小问题,详细见补充

SVN:提交前都说先更新,我问下啊。假如服务器上的文件被A和B都更新了,在同一天内,A添加了java.java文件,并上传致服务器;但同时,B在本地也创建了一个java.... SVN:提交前都说先更新,我问下啊。假如服务器上的文件被A和B都更新了,在同一天内,A添加了java.java文件,并上传致服务器;但同时,B在本地也创建了一个java.java,那此时B应如何做,当B想提交时先更新,那会不会将本地的java.java给覆盖掉呢?是不是B和A应开始商量好,由一个人来创建并上传java.java,另一个不创建,从服务器下载来A的java.java并修改呢? 展开
 我来答
stoneman1976
2012-10-19 · TA获得超过7856个赞
知道大有可为答主
回答量:2125
采纳率:75%
帮助的人:2291万
展开全部
经验证,情况是这样的:
如果A增加了java.java并提交,B建立了java.java但还没有进行add操作,这时若B执行update操作,则B本地文件内容不变(update时会提示已合并),但这个文件会被标识为已修改待提交(TortoiseSVN下图标就是红色感叹号)。这时若B进行提交操作,会直接覆盖A的问题,而不产生冲突提示。

这个操作的确是存在隐患。

继续验证:
如果A增加了java.java并提交,B建立了java.java并进行了add操作,这时若B执行update操作,则会报错“无法识别的行结束样式”,update失败,B本地不发生任何改变;若此时B执行commit操作,则报错该文件已存在,commit失败,B本地不发生任何改变。

总结一下,建立新文件后,先执行一下add操作,然后可及时发现是否有人已经提交了同名的新文件。
百度网友f691b7d
2012-10-18 · TA获得超过457个赞
知道小有建树答主
回答量:344
采纳率:0%
帮助的人:388万
展开全部
你可以用两个working copy试验一下。
我试了下,结果不是很满意:svn并不提示,可能会造成覆盖。
比如A上传了,B更新,但svn不会动B的java.java。这时如果B再次提交,会直接覆盖掉A的java.java。
当然了,双方的修改都不会丢掉,就是麻烦。
这点上没有git做得好,git会提示的。
追问
你说更新后,svn不会动B的java.java,那如果这个文件跟A上传的在同一个文件夹下呢?麻烦试下,我这只有一台机器。看会不会冲突
追答
一台机器也照样试,checkout出来两个工作拷贝就是了。
结果在上面,完全一样的路径,不会动B的文件。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
avfrtgbnhy235
2012-10-17
知道答主
回答量:40
采纳率:0%
帮助的人:11.1万
展开全部
sdfsdfdhfgjfxsfdghxbcvhgh
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式