Beispiel #1
0
        private string GetBatchScript(ISolutionProjectModel solutionProject, IServiceSettings settings)
        {
            if (solutionProject.ParentWorkingFolder == null)
            {
                var context = CheckoutAndBuild2Package.GetGlobalService <TfsContext>();
                if (context.IsGitSourceControlled(solutionProject.ItemPath))
                {
                    string _s = Path.GetPathRoot(solutionProject.SolutionFolder).Replace("\\", string.Empty) + Environment.NewLine;
                    _s += $"cd \"{solutionProject.SolutionFolder}\"" + Environment.NewLine;
                    //_s += "git checkout master";  // TODO Mal richtig für git auschecken und branch ermitteln
                    _s += "git pull";
                    return(_s);
                }
                return(string.Empty);
            }

            CheckTFExe();
            CheckoutServiceSettings serviceSettings = settings.GetSettingsFromProvider <CheckoutServiceSettings>(solutionProject);

            var path = GetItemPath(solutionProject, serviceSettings, false);

            string s = Path.GetPathRoot(solutionProject.ParentWorkingFolder.LocalItem).Replace("\\", string.Empty);

            s += Environment.NewLine + $"cd \"{solutionProject.ParentWorkingFolder.LocalItem}\"" + Environment.NewLine;
            s += $"\"{tfExe}\" get \"{path}\" /recursive {GetFlags(serviceSettings)} ";
            return(s);
        }
Beispiel #2
0
        private string GetFlags(CheckoutServiceSettings serviceSettings)
        {
            string promptFlag         = "/noprompt";
            string forceOverwriteFlag = "";

            if (serviceSettings.ForceAndOverwrite)
            {
                forceOverwriteFlag = "/force /overwrite";
            }
            if (serviceSettings.PromptForMerge)
            {
                promptFlag = "";
            }
            return($"{promptFlag} {forceOverwriteFlag}");
        }
Beispiel #3
0
        private string GetPowershellScript(ISolutionProjectModel solutionProject, IServiceSettings settings)
        {
            var context = CheckoutAndBuild2Package.GetGlobalService <TfsContext>();

            if (solutionProject.ParentWorkingFolder == null)
            {
                if (context.IsGitSourceControlled(solutionProject.ItemPath))
                {
                    string _s = Path.GetPathRoot(solutionProject.SolutionFolder).Replace("\\", string.Empty);
                    return("git pull \"" + _s + "\"");
                }
                return(string.Empty);
            }
            CheckoutServiceSettings serviceSettings = settings.GetSettingsFromProvider <CheckoutServiceSettings>(solutionProject);

            CheckTFExe();
            var builder = new StringBuilder()
                          .AppendLine($"set-alias TFS \"{tfExe}\"");
            var tfsCollection = context.TeamProjectCollection.Uri;
            var path          = GetItemPath(solutionProject, serviceSettings, true);

            if (ScriptExportProvider.IsTeamFoundationPowerShellSnapInInstalled)
            {
                var basePath = context.TfsContextManager.CurrentContext.TeamProjectName;

                //CheckoutServiceSettings serviceSettings = settings.GetSettingsFromProvider<CheckoutServiceSettings>(solutionProject);
                //var versionSpec = settingsService.Get(SettingsKeys.VersionSpecKey, VersionSpec.Latest);
                //string versionSpecStr = versionSpec == VersionSpec.Latest ? "Latest" : versionSpec.DisplayString;
                builder.AppendLine($"$tfsCollectionUrl = \"{tfsCollection}\"")
                .AppendLine($"$teamProjectBasePath = \"{basePath}\"")
                .AppendLine("$tfs=get-tfsserver $tfsCollectionUrl")
                .AppendLine("$vCS = $tfs.GetService([Microsoft.TeamFoundation.VersionControl.Client.VersionControlServer])")
                .AppendLine("$tfsProject = $vcs.GetTeamProject($teamProjectBasePath)")
                .AppendLine($"$workSpaceName = \"{context.SelectedWorkspace.Name}\"")
                .AppendLine("[Microsoft.TeamFoundation.VersionControl.Client.WorkSpace] $tfws = Get-TfsWorkspace -Server $tfs  -Name $workSpaceName")
                .AppendLine($"$path=\"{path}\"")
                .AppendLine($"TFS get $path /recursive")
                .AppendLine($"TFS resolve $path /prompt");
                return(builder.ToString());
            }

            string flags = GetFlags(serviceSettings);

            builder.AppendLine($"& TFS get \"{path}\" {flags} /recursive");
            return(builder.ToString());
        }
Beispiel #4
0
        private static string GetItemPath(ISolutionProjectModel solutionProject, CheckoutServiceSettings serviceSettings, bool local)
        {
            string path;

            if (local)
            {
                path = solutionProject.SolutionFolder;
                if (serviceSettings.CheckoutWorkingfolder)
                {
                    path = solutionProject.ParentWorkingFolder.LocalItem;
                }
                return(path);
            }
            path = solutionProject.ServerItem.Replace(solutionProject.SolutionFileName, string.Empty);
            if (serviceSettings.CheckoutWorkingfolder)
            {
                path = solutionProject.ParentWorkingFolder.ServerItem;
            }
            return(path);
        }