def add(repo, target, recursive=False, no_commit=False, fname=None): if recursive and fname: raise RecursiveAddingWhileUsingFilename() targets = _find_all_targets(repo, target, recursive) if os.path.isdir(target) and len(targets) > LARGE_DIR_SIZE: logger.warning( "You are adding a large directory '{target}' recursively," " consider tracking it as a whole instead.\n" "{purple}HINT:{nc} Remove the generated stage files and then" " run {cyan}dvc add {target}{nc}".format( purple=colorama.Fore.MAGENTA, cyan=colorama.Fore.CYAN, nc=colorama.Style.RESET_ALL, target=target, )) stages = _create_stages(repo, targets, fname, no_commit) repo.check_dag(repo.stages() + stages) for stage in stages: stage.dump() return stages
def add(repo, target, recursive=False, no_commit=False, fname=None): if recursive and fname: raise RecursiveAddingWhileUsingFilename() targets = [target] if os.path.isdir(target) and recursive: targets = [ file for file in walk_files(target) if not Stage.is_stage_file(file) if os.path.basename(file) != repo.scm.ignore_file if not repo.scm.is_tracked(file) ] stages = _create_stages(repo, targets, fname, no_commit) repo.check_dag(repo.stages() + stages) for stage in stages: stage.dump() repo.remind_to_git_add() return stages
def run(self): from dvc.exceptions import ( DvcException, RecursiveAddingWhileUsingFilename, ) try: if len(self.args.targets) > 1 and self.args.file: raise RecursiveAddingWhileUsingFilename() self.repo.add( self.args.targets, recursive=self.args.recursive, no_commit=self.args.no_commit, fname=self.args.file, external=self.args.external, glob=self.args.glob, desc=self.args.desc, out=self.args.out, remote=self.args.remote, to_remote=self.args.to_remote, jobs=self.args.jobs, ) except DvcException: logger.exception("") return 1 return 0
def add(repo, target, recursive=False, no_commit=False, fname=None): if recursive and fname: raise RecursiveAddingWhileUsingFilename() targets = _find_all_targets(repo, target, recursive) stages = _create_stages(repo, targets, fname, no_commit) repo.check_dag(repo.stages() + stages) for stage in stages: stage.dump() return stages
def run(self): try: if len(self.args.targets) > 1 and self.args.file: raise RecursiveAddingWhileUsingFilename() self.repo.add( self.args.targets, recursive=self.args.recursive, no_commit=self.args.no_commit, fname=self.args.file, ) except DvcException: logger.exception("") return 1 return 0
def add(repo, targets, recursive=False, no_commit=False, fname=None): if recursive and fname: raise RecursiveAddingWhileUsingFilename() if isinstance(targets, string_types): targets = [targets] stages_list = [] with Tqdm(total=len(targets), desc="Add", unit="file", leave=True) as pbar: for target in targets: sub_targets = _find_all_targets(repo, target, recursive) pbar.total += len(sub_targets) - 1 if os.path.isdir(target) and len(sub_targets) > LARGE_DIR_SIZE: logger.warning( "You are adding a large directory '{target}' recursively," " consider tracking it as a whole instead.\n" "{purple}HINT:{nc} Remove the generated DVC-file and then" " run `{cyan}dvc add {target}{nc}`".format( purple=colorama.Fore.MAGENTA, cyan=colorama.Fore.CYAN, nc=colorama.Style.RESET_ALL, target=target, ) ) stages = _create_stages(repo, sub_targets, fname, pbar=pbar) repo.check_modified_graph(stages) for stage in stages: stage.save() if not no_commit: stage.commit() stage.dump() stages_list += stages # remove filled bar bit of progress, leaving stats pbar.bar_format = pbar.BAR_FMT_DEFAULT.replace("|{bar:10}|", " ") return stages_list