<零、附件与本贴内容无关>
如题
<一、防止他人的更改丢失>
因为SVN文管的文件编辑功能带有缓存(提示“文件已经被打开,
点击进入编辑”),所以,如果不太注意,就会造成他人的更改丢失,而且SVN可能不会有任何提示。
举个例子:
我们粗心的牛头人猎人霍特编辑了a.php,然后进行了SVN提交。随后,他离开了地精制造的互联网设备,去血蹄村外面闲逛了。
不久后,睡懒觉睡了半天,刚从翡翠梦境中醒来的牛头人德鲁伊虎符图腾看到了霍特的SVN提交提示,对自己的工作副本进行了更新,发现a.php还需要修改,于是就修改了它,并进行了SVN提交。随后,虎符开始用月火术生火做饭。
几小时后,霍特回到了他那令人不放心的“地精制造”面前,看到了虎符的SVN提交,于是就更新了自己的工作副本。不过,霍特没有注意到SVN的提示“正在更新a.php…”,他打开a.php,看到“文件已经被打开,
点击进入编辑”,就点击进入继续编辑了。编辑好之后,他保存了a.php,又进行了一次SVN提交。
……
几天后,虎符发现a.php工作不正常。“咦,我不是已经修复了霍特的那个BUG吗,怎么还出问题?”他打开了a.php,却发现自己的修改已经不见了。“难道我当时没有提交成功?”虎符开始翻提交日志。“我明明提交成功了啊,版本号是52。那是怎么回事?”
虎符突然注意到,版本53是霍特提交的。他马上使用比较文件功能对比了版本52和53,发现霍特果然把自己的修改删除了。
“猎人,你前天为什么要把我对a.php的修改删除呢?我好不容易才修复了你那个隐蔽的BUG。要不是我刚刚测试时意外发现了,检查了一下,可能到代码发布的时候都不会发现这个问题呢。”
“前天?我没有删除你的代码啊。我一直在编辑a.php,看到你提交了,我就更新了下,继续编辑a.php。我没有发现你的更改啊。咦,对了,不会是……”
于是,例子结束了,不知道你是否和霍特一样意识到了虎符的更改丢失的原因。
不过不管你看懂没有,我要提醒你的就是这样一句话:
在进行SVN更新之后,必须点“打开”重新打开文件,不能继续在已经打开的页面进行编辑,不能从“文件已经被打开,
点击进入编辑”的链接进入编辑。
原因你肯定已经知道了。
<二、防止自己的更改丢失>