diff --git a/dvc/command/gc.py b/dvc/command/gc.py index 56c5840af..0d38e5acc 100644 --- a/dvc/command/gc.py +++ b/dvc/command/gc.py @@ -48,7 +48,7 @@ class CmdGC(CmdBase): def add_parser(subparsers, parent_parser): GC_HELP = ( "Collect garbage from your DVC cache. \n" - "Deletes all files in the cache which are not in use by the " + "Deletes all files in the cache which are not in use by the \n" "specified git references (defaults to just HEAD)." ) gc_parser = subparsers.add_parser( diff --git a/scripts/completion/dvc.bash b/scripts/completion/dvc.bash index 4b0a8cc5a..d31149459 100644 --- a/scripts/completion/dvc.bash +++ b/scripts/completion/dvc.bash @@ -9,28 +9,28 @@ #---------------------------------------------------------- _dvc_commands='init destroy add import checkout run pull push fetch \ - status repro remove move gc config remote metrics install \ - root lock unlock pipeline' + status repro remove move unprotect gc config remote metrics \ + install root lock unlock pipeline commit' _dvc_global_options="-h --help -q --quiet -V --verbose" _dvc_options="-h --help -v --version" _dvc_init="--no-scm -f --force" _dvc_destroy="-f --force" -_dvc_add="-R --recursive" -_dvc_run="--no-exec -f --file -c --cwd -d --deps -o --outs -O --outs-no-cache -M --metrics-no-cache -y --yes" -_dvc_pull="--show-checksums -j --jobs -r --remote -a --all-branches -T --all-tags -d --with-deps" -_dvc_push="--show-checksums -j --jobs -r --remote -a --all-branches -T --all-tags -d --with-deps" -_dvc_fetch="--show-checksums -j --jobs -r --remote -a --all-branches -T --all-tags -d --with-deps" -_dvc_status="--show-checksums -j --jobs -r --remote -a --all-branches -T --all-tags -d --with-deps -c --cloud" -_dvc_repro="--dry -f --force -s --single-item -c --cwd -m --metrics -i --interactive -p --pipeline -P --all-pipelines" -_dvc_remove="--dry -o --outs -p --purge" -_dvc_gc="-a --all-branches -T --all-tags -c --cloud -r --remote" -_dvc_config="-u --unset --local" +_dvc_add="-R --recursive -f --file --no-commit" +_dvc_run="--no-exec -f --file -c --cwd -d --deps -o --outs -O --outs-no-cache -M --metrics-no-cache -y --yes --overwrite-dvc-file --ignore-build-cache --remove-outs --no-commit -w --wdir" +_dvc_pull="--show-checksums -j --jobs -r --remote -a --all-branches -T --all-tags -d --with-deps -f --force -R --recursive" +_dvc_push="--show-checksums -j --jobs -r --remote -a --all-branches -T --all-tags -d --with-deps -R --recursive" +_dvc_fetch="--show-checksums -j --jobs -r --remote -a --all-branches -T --all-tags -d --with-deps -R --recursive" +_dvc_status="--show-checksums -j --jobs -r --remote -a --all-branches -T --all-tags -d --with-deps -c --cloud -q --quiet" +_dvc_repro="--dry -f --force -s --single-item -c --cwd -m --metrics -i --interactive -p --pipeline -P --all-pipelines --ignore-build-cache --no-commit -s --single-item" +_dvc_remove="--dry -o --outs -p --purge --force" +_dvc_gc="-a --all-branches -T --all-tags -c --cloud -r --remote -f --force -p --project" +_dvc_config="-u --unset --local --system --global" _dvc_checkout="$(compgen -G '*.dvc')" _dvc_move="$(compgen -G '*')" _dvc_lock="$(compgen -G '*.dvc')" _dvc_unlock="$(compgen -G '*.dvc')" -_dvc_import="" +_dvc_import="--resume" _dvc_remote="" _dvc_metrics="" _dvc_install="" diff --git a/scripts/completion/dvc.zsh b/scripts/completion/dvc.zsh index f516aeb45..606dc778f 100644 --- a/scripts/completion/dvc.zsh +++ b/scripts/completion/dvc.zsh @@ -25,6 +25,7 @@ _dvc_commands() { "repro:Reproduce DVC file. Default file name - 'Dvcfile'." "remove:Remove outputs of DVC file." "move:Move output of DVC file." + "unprotect:Unprotect data file/directory." "gc:Collect garbage." "config:Get or set config options." "remote:Manage set of tracked repositories." @@ -34,6 +35,7 @@ _dvc_commands() { "lock:Lock DVC file." "unlock:Unlock DVC file." "pipeline:Manage pipeline." + "commit:Record changes to the repository." ) _describe 'dvc commands' _commands @@ -61,61 +63,80 @@ _dvc_destroy=( _dvc_add=( {-R,--recursive}"[Recursively add each file under the directory.]" + {-f,--file}"[Specify name of the stage file.]:File:_files" + "--no-commit[Don't put files/directories into cache.]" "1:File:_files" ) _dvc_import=( + "--resume[Resume previously started download.]" "1:URL:" "2:Output:" ) _dvc_checkout=( - "1:DVC files:_files -g '(*.dvc|Dvcfile)'" + {-f,--force}"[Do not prompt when removing working directory files.]" + {-d,--with-deps}"[Checkout all dependencies of the specified target.]" + "1:Stages:_files -g '(*.dvc|Dvcfile)'" +) + +_dvc_unprotect=( + "*:Data files:_files" ) _dvc_run=( "--no-exec[Only create stage file without actually running it.]" + "--overwrite-dvcfile[Overwrite existing dvc file without asking for confirmation.]" + "--ignore-build-cache[Run this stage even if it has been already ran with the same command/dependencies/outputs/etc before.]" + "--remove-outs[Remove outputs before running the command.]" + "--no-commit[Don't put files/directories into cache.]" {-f,--file}"[Specify name of the stage file.]:File:_files" - {-c,--cwd}"[Directory to run your command and place state file in.]:CWD:_files -/" + {-c,--cwd}"[Deprecated, use -w and -f instead.]:CWD:_files -/" + {-w,--wdir}"[Directory to run your command and place state file in.]:WDIR:_files -/" "*"{-d,--deps}"[Declare dependencies for reproducible cmd.]:Dependency:_files" "*"{-o,--outs}"[Declare output data file or data directory.]:Output data:_files" "*"{-O,--outs-no-cache}"[Declare output regular file or directory.]:Output regular:_files" - "*"{-M,--metrics-no-cache}"[Declare output metric file or directory]:Metrics (no cache):_files" + "*"{-M,--metrics-no-cache}"[Declare output metric file or directory (do not put into DVC cache)]:Metrics (no cache):_files" + "*"{-m,--metrics}"[Declare output metric file or directory]:Metrics:_files" {-y,--yes}"[Automatic 'yes' answer to all prompts.]" ) _dvc_pull=( - "*:DVC files:_files -g '(*.dvc|Dvcfile)'" + "*:Stages:_files -g '(*.dvc|Dvcfile)'" "--show-checksums[Show checksums instead of file names]" {-j,--jobs}"[Number of jobs to run simultaneously]:Number of jobs:" {-r,--remote}"[Remote repository to pull from]:Remote repository:" {-a,--all-branches}"[Fetch cache for all branches]" {-T,--all-tags}"[Fetch cache for all tags]" {-d,--with-deps}"[Fetch cache for all dependencies of the specified target]" + {-f,--force}"[Do not prompt when removing working directory files.]" + {-R,--recursive}"[Pull cache for subdirectories of the specified directory.]" ) _dvc_push=( - "*:DVC files:_files -g '(*.dvc|Dvcfile)'" + "*:Stages:_files -g '(*.dvc|Dvcfile)'" "--show-checksums[Show checksums instead of file names]" {-j,--jobs}"[Number of jobs to run simultaneously]:Number of jobs:" {-r,--remote}"[Remote repository to pull from]:Remote repository:" {-a,--all-branches}"[Fetch cache for all branches]" {-T,--all-tags}"[Fetch cache for all tags]" {-d,--with-deps}"[Fetch cache for all dependencies of the specified target]" + {-R,--recursive}"[Push cache for subdirectories of the specified directory.]" ) _dvc_fetch=( - "*:DVC files:_files -g '(*.dvc|Dvcfile)'" + "*:Stages:_files -g '(*.dvc|Dvcfile)'" "--show-checksums[Show checksums instead of file names]" {-j,--jobs}"[Number of jobs to run simultaneously]:Number of jobs:" {-r,--remote}"[Remote repository to pull from]:Remote repository:" {-a,--all-branches}"[Fetch cache for all branches]" {-T,--all-tags}"[Fetch cache for all tags]" {-d,--with-deps}"[Fetch cache for all dependencies of the specified target]" + {-R,--recursive}"[Fetch cache for subdirectories of the specified directory.]" ) _dvc_status=( - "*:DVC files:_files -g '(*.dvc|Dvcfile)'" + "*:Stages:_files -g '(*.dvc|Dvcfile)'" "--show-checksums[Show checksums instead of file names]" {-j,--jobs}"[Number of jobs to run simultaneously]:Number of jobs:" {-r,--remote}"[Remote repository to pull from]:Remote repository:" @@ -123,14 +144,16 @@ _dvc_status=( {-T,--all-tags}"[Fetch cache for all tags]" {-d,--with-deps}"[Fetch cache for all dependencies of the specified target]" {-c,--cloud}"[Show status of a local cache compared to a remote repository]" + {-q,--quiet}"[Suppresses all output. Exit with 0 if pipeline is up]" ) _dvc_repro=( - "*:DVC files:_files -g '(*.dvc|Dvcfile)'" + "*:Stages:_files -g '(*.dvc|Dvcfile)'" "--dry[Only print the commands that would be executed without actually executing]" + "--ignore-build-cache[Reproduce all descendants of a changed stage even if their direct dependencies didn't change.]" + "--no-commit[Don't put files/directories into cache.]" {-f,--force}"[Reproduce even if dependencies were not changed.]" {-s,--single-item}"[Reproduce only single data item without recursive dependencies check.]" - {-c,--cwd}"[Directory to reproduce from]:CWD:_files -/" {-m,--metrics}"[Show metrics after reproduction.]" {-i,--interactive}"[Ask for confirmation before reproducing each stage.]" {-p,--pipeline}"[Reproduce the whole pipeline that the specified stage file belongs to.]" @@ -138,10 +161,11 @@ _dvc_repro=( ) _dvc_remove=( - "*:DVC files:_files -g '(*.dvc|Dvcfile)'" + "*:Stages:_files -g '(*.dvc|Dvcfile)'" "--dry[Only print the commands that would be executed without actually executing]" {-o,--outs}"[Only remove DVC file outputs.(default)]" {-p,--purge}"[Remove DVC file and all its outputs]" + {-f,--force}"[Force purge.]" ) _dvc_move=( @@ -154,19 +178,28 @@ _dvc_gc=( {-T,--all-tags}"[Collect garbage for all tags]" {-c,--cloud}"[Collect garbage in remote repository]" {-r,--remote}"[Remote repository to collect garbage in]:Remote repository:" + {-f,--force}"[Force garbage collection - automatically agree to all prompts.]" + + {-p,--projects}"[Keep data files required by these projects in addition to the current one. Useful if you share a single cache across repos.]:Repos:_files" ) _dvc_config=( {-u,--unset}"[Unset option.]" "--local[Unset option.]" + "--system[Use system config.]" + "--global[Use global config.]" ) _dvc_remote=( - "1:Task:(add remove modify list)" + "1:Sub command:(add default remove modify list)" +) + +_dvc_cache=( + "1:Sub command:(dir)" ) _dvc_metrics=( - "1:Task:(show add modify remove)" + "1:Sub command:(show add modify remove)" ) _dvc_install=() @@ -174,15 +207,22 @@ _dvc_install=() _dvc_root=() _dvc_lock=( - "*:DVC files:_files -g '(*.dvc|Dvcfile)'" + "*:Stages:_files -g '(*.dvc|Dvcfile)'" ) _dvc_unlock=( - "*:DVC files:_files -g '(*.dvc|Dvcfile)'" + "*:Stages:_files -g '(*.dvc|Dvcfile)'" ) _dvc_pipeline=( - "1:Task:(show)" + "1:Sub command:(show,list)" +) + +_dvc_commit=( + "*:Stages:_files -g '(*.dvc|Dvcfile)'" + {-d,--with-deps}"[Commit all dependencies of the specified target.]" + {-f,--force}"[Commit even if checksums for dependencies/outputs changed.]" + {-R,--recursive}"[Commit cache for subdirectories of the specified directory.]" ) typeset -A opt_args @@ -194,26 +234,28 @@ _arguments \ '*::args:->args' case $words[1] in - init) _arguments $_dvc_global_options $_dvc_init ;; - destroy) _arguments $_dvc_global_options $_dvc_destroy ;; - add) _arguments $_dvc_global_options $_dvc_add ;; - import) _arguments $_dvc_global_options $_dvc_import ;; - checkout) _arguments $_dvc_global_options $_dvc_checkout ;; - run) _arguments $_dvc_global_options $_dvc_run ;; - pull) _arguments $_dvc_global_options $_dvc_pull ;; - push) _arguments $_dvc_global_options $_dvc_push ;; - fetch) _arguments $_dvc_global_options $_dvc_fetch ;; - status) _arguments $_dvc_global_options $_dvc_status ;; - repro) _arguments $_dvc_global_options $_dvc_repro ;; - remove) _arguments $_dvc_global_options $_dvc_remove ;; - move) _arguments $_dvc_global_options $_dvc_move ;; - gc) _arguments $_dvc_global_options $_dvc_gc ;; - config) _arguments $_dvc_global_options $_dvc_config ;; - remote) _arguments $_dvc_global_options $_dvc_remote ;; - metrics) _arguments $_dvc_global_options $_dvc_metrics ;; - install) _arguments $_dvc_global_options $_dvc_install ;; - root) _arguments $_dvc_global_options $_dvc_root ;; - lock) _arguments $_dvc_global_options $_dvc_lock ;; - unlock) _arguments $_dvc_global_options $_dvc_unlock ;; - pipeline) _arguments $_dvc_global_options $_dvc_pipeline ;; + init) _arguments $_dvc_global_options $_dvc_init ;; + destroy) _arguments $_dvc_global_options $_dvc_destroy ;; + add) _arguments $_dvc_global_options $_dvc_add ;; + import) _arguments $_dvc_global_options $_dvc_import ;; + checkout) _arguments $_dvc_global_options $_dvc_checkout ;; + run) _arguments $_dvc_global_options $_dvc_run ;; + pull) _arguments $_dvc_global_options $_dvc_pull ;; + push) _arguments $_dvc_global_options $_dvc_push ;; + fetch) _arguments $_dvc_global_options $_dvc_fetch ;; + status) _arguments $_dvc_global_options $_dvc_status ;; + repro) _arguments $_dvc_global_options $_dvc_repro ;; + remove) _arguments $_dvc_global_options $_dvc_remove ;; + move) _arguments $_dvc_global_options $_dvc_move ;; + gc) _arguments $_dvc_global_options $_dvc_gc ;; + config) _arguments $_dvc_global_options $_dvc_config ;; + remote) _arguments $_dvc_global_options $_dvc_remote ;; + metrics) _arguments $_dvc_global_options $_dvc_metrics ;; + install) _arguments $_dvc_global_options $_dvc_install ;; + root) _arguments $_dvc_global_options $_dvc_root ;; + lock) _arguments $_dvc_global_options $_dvc_lock ;; + unlock) _arguments $_dvc_global_options $_dvc_unlock ;; + pipeline) _arguments $_dvc_global_options $_dvc_pipeline ;; + commit) _arguments $_dvc_global_options $_dvc_commit ;; + unprotect) _arguments $_dvc_global_options $_dvc_unprotect ;; esac