![如何知道服务器上的文件是否已被其他用户打开?](https://linux22.com/image/1455547/%E5%A6%82%E4%BD%95%E7%9F%A5%E9%81%93%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E7%9A%84%E6%96%87%E4%BB%B6%E6%98%AF%E5%90%A6%E5%B7%B2%E8%A2%AB%E5%85%B6%E4%BB%96%E7%94%A8%E6%88%B7%E6%89%93%E5%BC%80%EF%BC%9F.png)
我们将文件存储在网络服务器(Windows Server
)中,以便团队访问它们。
这与 Microsoft Office 配合得很好 - 如果我想打开一个已被其他用户打开的文件,我会收到一条警告消息和以只读方式打开的选项。
但是,我们也在使用开源软件,但这个功能不起作用。多个用户可以同时打开同一个文件,这会导致问题,例如在以下情况下:
- 用户 1 打开一个文件(我们称之为版本“v1”)并对其进行修改而不保存
- 用户 2 从服务器打开文件,该文件仍为 v1,并开始修改
- 现在用户 1 将他的更改保存到服务器并创建 v2
- 现在用户 2 保存他的更改,创建 v3,而用户 1(v2)的更改丢失!
我们不能使用svn
其他版本控制工具(太复杂),所以我想知道是否存在一个标准机制可以在软件中实现以防止这些问题。
其他程序如何解决这个问题?是否有一种“文件锁定”信息,只要有人打开文件就必须将其切换为“打开”?
答案1
看一下这篇有关 Windows 文件锁定的维基百科文章它为您的调查提供了良好的概述和起点。
根据您的数据量/类型,您可以考虑创建一个小型且便宜的 Sharepoint Foundation 服务器,因为它具有一些易于使用的基本文档管理功能,可以防止中间更新。
你们的开源软件是如何运作的?