Sep.Git.Tfs.Commands.Checkout.Run C# (CSharp) Method

Run() public method

public Run ( string id ) : int
id string
return int
        public int Run(string id)
        {
            int changesetId;
            if (!int.TryParse(id, out changesetId))
                throw new GitTfsException("error: wrong format for changeset id...");
            var sha = _globals.Repository.FindCommitHashByChangesetId(changesetId);
            if (string.IsNullOrEmpty(sha))
                throw new GitTfsException("error: commit not found for this changeset id...");
            if (ReturnShaOnly)
            {
                Trace.TraceInformation(sha);
                return GitTfsExitCodes.OK;
            }
            string commitishToCheckout = sha;
            if (!string.IsNullOrEmpty(BranchName))
            {
                BranchName = _globals.Repository.AssertValidBranchName(BranchName);
                if (!_globals.Repository.CreateBranch(BranchName.ToLocalGitRef(), sha))
                    throw new GitTfsException("error: can not create branch '" + BranchName + "'");
                Trace.TraceInformation("Branch '" + BranchName + "' created...");
                commitishToCheckout = BranchName;
            }
            if (!_globals.Repository.Checkout(commitishToCheckout))
                throw new GitTfsException("error: unable to checkout '" + commitishToCheckout + "' due to changes in your workspace!",
                    new List<string> { "commit or stash your changes before retrying..." });
            return GitTfsExitCodes.OK;
        }