微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在不提取整个文件夹的内容的情况下将文件添加到 dvc 跟踪的文件夹?

如何解决如何在不提取整个文件夹的内容的情况下将文件添加到 dvc 跟踪的文件夹?

假设我在 git/dvc 存储库中工作。有一个文件data 包含 10 万个小文件。我按照文档的建议将 DVC 作为单个元素进行跟踪:

dvc add data

因为根据我的经验,DVC 在一个一个跟踪这么多文件时有点慢。

我将 repo 克隆到另一个工作区,现在我在本地拥有 data.dvc 文件,但其中还没有任何实际文件。我想将名为 newfile.txt文件添加data 文件夹并使用 DVC 对其进行跟踪。有没有办法做到这一点而无需在本地提取 data 的全部内容

我目前尝试过的:

  1. 再次添加 data 文件夹:

    mkdir data
    mv path/to/newfile.txt data/newfile.txt
    dvc add data
    

    data.dvc 文件是从 data 的本地状态再次构建的,它只包含 newfile.txt,所以这不起作用。

  2. 文件作为单个元素添加data 文件夹中:

     dvc add data/newfile.txt
    

    我明白了:

     Cannot add 'data/newfile.txt',because it is overlapping with other DVC tracked output: 'data'. 
     To include 'data/newfile.txt' in 'data',run 'dvc commit data.dvc'
    
  3. 按照建议使用 dvc commit

     mkdir data
     mv path/to/newfile.txt data/newfile.txt
     dvc commit data.dvc
    

    与 1. 类似,从 data.dvc 的本地状态再次重建 data

解决方法

我将 repo 克隆到另一个工作区,现在我在本地拥有 data.dvc 文件,但里面没有任何实际文件(还没有 dvc pulled)。我想将文件添加到数据文件夹并使用 DVC 进行跟踪。有没有办法在不在本地提取数据的全部内容的情况下做到这一点?

有趣的问题。我认为现在没有简单的方法可以做到这一点,因为在另一台机器上,如果您再次 dvc add data 但其中只有一个文件,DVC 会认为您删除了所有其他文件,创建新的数据缓存版本dir(仅包含新文件),并相应地更新 .dvc 文件(如您所见)。

您可以在 https://github.com/iterative/dvc.org/issues 中打开功能请求。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。