SVN的工作流是checkout->modify->update->merge->commit, 如果多人修改同一个文件, 需要进行合并. 但对于Excel等复合文件格式, svn无法处理合并. 虽然云风尝试处理过Excel合并的问题, 但其实对于我们日常开发来说, 并不太期望有些操作进行合并, 而是类似于VSS那种早期的代码管理工具的锁定行为. SVN依然有这个功能.
这里使用的是风靡世界的TortoriseSVN. 选中一个SVN管理下的文件, 点击右键, 打开属性

在New对话框中选中Needs-Lock

提交这个属性修改.
现在我们的工作流的某些步骤变化了:

getlock->modify->commit
如果有他人在修改, getlock会失败
getlock的原理与早期的VSS一致, 使用了文件只读的属性. 如果尝试不getlock就修改文件, 那么文件最终无法保存!