eric 说:
SVN,一次提交多个文件,有一个文件本地已经old了,结果所有的提交都失败。
Rock 说:
恩,是啊。
eric 说:
为什么不把没问题的成功了呢?
Rock 说:
可能是为了获得“原子性”行为吧。
对于一次commit,要么成功,要么失败,不存在“60分”的commit。
eric 说:
这里有原子性的需要么?我想想。
不是60分,而是60%。
一个目录下上百个文件里,几十个有改动的文件(红色感叹号)里我要挑选十几个提交。
结果一失败,全部重新挑选。
挑选一次,半分钟以上。
而且,极容易出错。
Rock 说:
也是。
可以每次少提交几个,先把好的提交上去。
eric 说:
问题是我改之前update过一次,
改好后我不知道哪些别人没commit过,哪些有。
Rock 说:
恩。别人commit过的就会失败。
eric 说:
SVN已经做不到相关的改动一次提交了,文件位于不同目录下,我是不知道怎么一次提交,以前问过你,你说也是几次的。
他保证不了任一次提交,服务器上的都是可以编译通过的。
那干嘛要原子性啊。
Rock 说:
我想可能是因为所谓“commit失败”不一定是因为某个文件版本冲突造成的,可能还会有别的原因导致commit在中途失败,它给统一考虑了。
eric 说:
还会有什么情况。
Rock 说:
比如网络异常。
eric 说:
这不影响已经提交成功的就让他成功吧。
Rock 说:
恩,也是。
不知道它这里的原子性是出于什么考虑。照理说成功一半也不算什么严重问题。
只要状态一致就OK。