feat(cli): support initializing DVC repository in an arbitrary directory (#10861)

Previously, it could be only initialized in the current working directory.
This commit is contained in:
skshetry
2025-09-02 10:52:27 +05:45
committed by GitHub
parent 6f4b8c98fc
commit 763cbf6bd1
2 changed files with 14 additions and 5 deletions
+13 -4
View File
@@ -42,7 +42,7 @@ class CmdInit(CmdBaseNoRepo):
try:
with Repo.init(
".",
self.args.directory,
no_scm=self.args.no_scm,
force=self.args.force,
subdir=self.args.subdir,
@@ -57,10 +57,11 @@ class CmdInit(CmdBaseNoRepo):
def add_parser(subparsers, parent_parser):
"""Setup parser for `dvc init`."""
INIT_HELP = "Initialize DVC in the current directory."
INIT_HELP = "Initialize DVC repository."
INIT_DESCRIPTION = (
"Initialize DVC in the current directory. Expects directory\n"
"to be a Git repository unless --no-scm option is specified."
"Initialize DVC repository in the given directory (defaults to the current "
"working directory).\n"
"Expects directory to be a Git repository unless --no-scm option is specified."
)
init_parser = subparsers.add_parser(
@@ -70,6 +71,14 @@ def add_parser(subparsers, parent_parser):
help=INIT_HELP,
formatter_class=formatter.RawDescriptionHelpFormatter,
)
init_parser.add_argument(
"directory",
nargs="?",
default=".",
help=(
"Directory to initialize DVC in. Defaults to the current working directory."
),
)
init_parser.add_argument(
"--no-scm",
action="store_true",
+1 -1
View File
@@ -63,7 +63,7 @@ def init(root_dir=os.curdir, no_scm=False, force=False, subdir=False): # noqa:
remove(dvc_dir)
os.mkdir(dvc_dir)
os.makedirs(dvc_dir, exist_ok=True)
config = Config.init(dvc_dir)