我们的客户希望引入我们的应用程序数据的locking和版本。 我们想出了使用颠覆/乌龟来做到这一点的想法。 这看起来简单而直截了当,但是我们有一些基于文件本质的特殊性质:
在我们的应用程序中,“数据库”(我们称之为文档)由许多文件组成,这些文件通过同一目录中的名称模式相互引用。 更多的一个“数据库”可能存在于一个目录中。 如果用户签出(定位)文件,则必须检出属于该数据库的所有其他文件。 这同样适用于签入。 这些文件包含二进制数据。
例如:一个目录包含2个“数据库”:
如果DB1.xxx被检出(locking),则A_DB1.xxx和B_DB1.xxx也必须被locking,但是DB2的文件可以由其他人检出。 然后,我们在本地副本上工作,之后可以检查或取消用户的更改。
这是可能的使用颠覆? 怎么样? 我们应该用别的东西吗?
我知道,我们的文件等的组织可以做得更好 – 但目前不可能改变这一点。
你试图做的应该是可能的使用颠覆预先提交钩子。 在hook scrip里面,如果文件集是错的,你可以检查提交的文件列表,否决提交(写一个有意义的错误信息到stderr)。
我还没有看到有人发布钩子脚本来做任何事情,所以你将不得不推出自己的。 要开始你应该阅读关于编写和实现钩子脚本和一些示例钩子脚本 的颠覆书部分