在 GitHub 上编辑

unprotect

取消保护受跟踪的文件或目录(当使用 dvc config cache.type 启用了硬链接或符号链接时)。

概要

usage: dvc unprotect [-h] [-q | -v] targets [targets ...]

positional arguments:
  targets        Data files/directories to unprotect.

描述

默认情况下,此命令并非必需,因为 DVC 会避免使用硬链接和符号链接将受跟踪的数据文件从缓存链接到 工作区。但是,可以通过 dvc config cache(配置选项 cache.type)启用这些类型的文件链接。

启用硬链接或符号链接后,工作区中的受跟踪数据文件将变为只读链接(防止用户因手动修改内容而意外损坏缓存)。

运行 dvc unprotect 可确保工作区中的目标文件或目录(targets)与缓存物理“解除链接”,从而可以安全地更新。请阅读 更新受跟踪的文件 指南以了解更多有关此过程的信息。

dvc unprotect 可能是一个开销较大的操作(涉及数据复制)。请先确认您的任务是否属于以下被认为是安全的情况之一:

  • 向目录输入数据集添加更多文件(例如图像或视频)
  • 从目录数据集中删除文件

选项

  • -h, --help - 打印使用说明/帮助信息,然后退出。

  • -q, --quiet - 不向标准输出写入任何内容。如果没有问题则以 0 退出,否则以 1 退出。

  • -v, --verbose - 显示详细的跟踪信息。

示例

启用符号链接:

$ dvc config cache.type symlink

使用 DVC 跟踪一个数据文件:

$ ls -lh
-rw-r--r--  1 10576022 Nov 27 13:30 Posts.xml.zip

$ dvc add Posts.xml.zip

检查该文件是否为只读链接(@ 符号表示链接):

$ ls -lh
-r--r--r--@ 1 10576022 Apr 25  2017 Posts.xml.zip
-rw-r--r--  1      120 Nov 27 13:29 Posts.xml.zip.dvc

取消保护该文件:

$ dvc unprotect Posts.xml.zip

检查该文件现在是否可写,缓存版本是否完整,并且两者之间不再有链接(工作区中的文件是缓存文件的一个副本):

$ ls -lh
-rw-r--r--  1  120B Nov 27 13:29 Posts.xml.zip.dvc
-rw-r--r--  1   10M Nov 27 13:30 Posts.xml.zip

$ ls -lh .dvc/cache/files/md5/ce/
-rw-r--r--@ 1 10M Apr 25  2017 68b98d82545628782c66192c96f2d2
内容

🐛 发现问题?告诉我们!或者修复它:

在 GitHub 上编辑

有疑问?加入我们的聊天,我们会为您提供帮助:

Discord 聊天