private void GetFullModule(Dep dep, string[] force) { var getInfo = new GetInfo(); var module = modules.FirstOrDefault(m => m.Name.Equals(dep.Name)); if (module == null) { throw new CementException("Failed to find module " + dep.Name); } var repo = new GitRepository(dep.Name, Helper.CurrentWorkspace, Log); if (!repo.IsGitRepo) { ConsoleWriter.Shared.WriteProgress(dep.Name + " " + dep.Treeish + " cloning"); if (Directory.Exists(Path.Combine(repo.Workspace, repo.ModuleName))) { CloneInNotEmptyFolder(module, repo); } else { CloneInEmptyFolder(dep, module, repo); } getInfo.Cloned = true; } repo.TryUpdateUrl(modules.FirstOrDefault(m => m.Name.Equals(dep.Name))); repo.SubmoduleUpdate(); GetTreeish(repo, dep, force, dep.Treeish, getInfo); if (verbose) { getInfo.CommitInfo = repo.GetCommitInfo(); } if (HooksHelper.InstallHooks(dep.Name)) { getInfo.HookUpdated = true; } PrintProcessedModuleInfo(dep, getInfo, getInfo.Forced ? getInfo.ForcedBranch : dep.Treeish); WarnIfNotMerged(repo); }