public override void CheckoutBranch(string branch)
        {
            var fullBranchName = "refs/heads/" + branch;
            var list           = _git.BranchList().Call();
            var branchExists   = list.Any(x => x.GetName() == fullBranchName);

            if (!branchExists)
            {
                var remoteBranchName = "refs/remotes/origin/" + branch;
                _git.BranchCreate().SetStartPoint(remoteBranchName).SetName(branch).Call();
            }
            _git.Checkout().SetName(branch).Call();

            BatchingProgressMonitor.ShutdownNow();
        }