Exemplo n.º 1
0
        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);
        }