我的团队有一个设置,其中我们跟踪 DVC 中的数据集和模型,并有一个 GitLab 存储库用于跟踪我们的代码和 DVC 元数据文件。我们的开发 GitLab 管道中有一项工作(在每次推送合并请求时运行),其目标是检查以确保开发人员记得运行dvc push以保持 DVC 远程存储最新。目前,我们执行此操作的方法是dvc pull在 GitLab 运行程序上运行,该运行程序将失败并显示错误,告诉您未找到哪些文件(新文件或现有文件的最新版本)。
这种方法的缺点是,我们将存储在 DVC 中的全部数据加载到 GitLab 运行器上,并且我们遇到了内存不足的问题,更不用说下载所有数据的运行时间很长了。由于对象的路径和 md5 哈希存储在 DVC 元数据文件中,我认为这就是 DVC 需要能够回答“远程存储系统是否是最新的”问题的所有信息。
看起来dvc status与我所要求的类似,但比较了缓存或工作区和远程存储。换句话说,它要求文件实际存在于进行调用的任何文件系统上。
有没有什么方法可以实现我上面列出的目标(“通知开发人员他们需要运行dvc push”)而不从 DVC 中提取所有内容?