询问一个关于SVN的问题
目前我准备用AnkhSvn 与 subversion来做代码管理。
我有一个困惑:
假如原来有一段代码
for(int i = 0;i < count;i++)
{
GetAsString(_T("name"),i); //错的,因为GetAsString是从1开始,而不是0开始的。
}
上面这段代码是有错的
---------------
此时,员工A发现后,先执行"update to latest version",然后把代码改成
for(int i = 1;i <= count;i++)
{
GetAsString(_T("name"),i); //对的
}
同时员工B也发现了,先执行"update to latest version",因为他紧接着A马上也发现了,A的修改此时还没提交,
也就是说B从服务器上更新下来后代码是:
for(int i = 0;i < count;i++)
{
GetAsString(_T("name"),i); //错的
}
然后B也改代码
for(int i = 0;i < count;i++)
{
GetAsString(_T("name"),i+1); //对的
}
此时A先提交,然后B提交。A可正常提交,B提交时,提示冲突。
这时B按提示要求,先再"update to latest version"一次,此时变成
for(int i = 1;i <= count;i++)
{
GetAsString(_T("name"),i+1); //这时又变错了
}
此时SVN并不会出现冲突的符号。于是B直接就commit。
导致了服务器上的代码错误。
-----------------------------------------------------
我用了后,发现SVN怎么会有这么大的漏洞,会不会我操作流程有问题啊
[解决办法]
发重复了
所以很多使用SVN的团体在commit前都会在相关内部群/论坛上通告,然后指定一人进行commit,或者仅由通告人进行commit
[解决办法]
这算不上bug,我觉得这是你们安排失误的原因,同一个问题为什么要安排给两个人了?然后b在提交的时候,有必要看一下当前修改版本和最新版本冲突的时候,最新版本是怎么改的。工具再好,只是工具,问题避免只能看人。