首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在DVC中更新跟踪dir

在DVC中更新跟踪dir
EN

Stack Overflow用户
提问于 2019-05-24 03:10:22
回答 2查看 1.2K关注 0票数 4

根据本教程,当我更新文件时,我应该先从DVC控制下删除文件(即执行dvc unprotect <myfile>.dvcdvc remove <myfile>.dvc),然后再通过dvc add <mifile>添加它。但是,还不清楚是否应该对目录应用相同的工作流。

我有DVC控制下的目录,其结构如下:

代码语言:javascript
复制
data/
    1.jpg
    2.jpg

是否应该每次更新目录内容时运行dvc unprotect data

更具体地说,我感兴趣的是是否应该在以下用例中运行dvc unprotect data

  • 例如,如果我将图像放入数据dir中,则添加3.jpg新文件。
  • 文件被删除。例如,如果我删除data dir中的2.jpg图像,则为
  • 文件被更新.例如,如果我通过图形编辑器编辑1.jpg图像的话,.
  • 以前用例的组合(即一些文件被更新,另一些文件被删除,新文件被添加)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-05-24 05:04:26

只有当文件被更新时--即,只有在启用hadrlink或符号链接缓存类型时,才使用编辑器编辑

请检查一下这个链接

当DVC配置选项cache.type设置为硬链接或/和符号链接时,必须谨慎地更新跟踪文件,以避免数据损坏。

我强烈建议阅读本文档:大文件的性能优化,它解释了使用硬链接/符号链接的好处。

票数 2
EN

Stack Overflow用户

发布于 2022-04-21 10:11:35

上面的链接不再起作用了,->这里是最新的链接,并且在这里粘贴说明:

修改内容

用dvc取消保护解除文件链接。这将使train.tsv安全地编辑:

代码语言:javascript
复制
dvc unprotect train.tsv

然后编辑文件的内容,例如:

代码语言:javascript
复制
echo "new data item" >> train.tsv

将该文件的新版本与DVC一起添加:

代码语言:javascript
复制
dvc add train.tsv
git add train.tsv.dvc
git commit -m "modify train data"

如果您有远程存储和/或上游回购:

代码语言:javascript
复制
dvc push
git push

替换文件

如果要完全替换该文件,可以执行以下步骤。

首先,通过在.dvc文件上使用dvc remove停止跟踪文件。这将从工作区中删除train.tsv (并从缓存中解除它的链接):

代码语言:javascript
复制
dvc remove train.tsv.dvc

接下来,用新内容替换该文件:

代码语言:javascript
复制
echo new > train.tsv

然后重新开始追踪:

代码语言:javascript
复制
dvc add train.tsv
git add train.tsv.dvc .gitignore
git commit -m "new train data"

如果您有远程存储和/或上游回购:

代码语言:javascript
复制
dvc push
git push
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56285351

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档