Example #1
0
        private IGitTfsRemote InitBranchSupportingRename(string tfsBranchPath, string gitBranchNameExpected, IList <RootBranch> creationBranchData, IGitTfsRemote defaultRemote, out IFetchResult fetchResult)
        {
            fetchResult = null;
            _stdout.WriteLine("Branches to Initialize successively :");
            foreach (var branch in creationBranchData)
            {
                _stdout.WriteLine("-" + branch.TfsBranchPath + " (" + branch.RootChangeset + ")");
            }

            IGitTfsRemote tfsRemote      = null;
            var           remoteToDelete = new List <IGitTfsRemote>();

            foreach (var rootBranch in creationBranchData)
            {
                Trace.WriteLine("Processing " + (rootBranch.IsRenamedBranch ? "renamed " : string.Empty) + "branch :"
                                + rootBranch.TfsBranchPath + " (" + rootBranch.RootChangeset + ")");
                var cbd = new BranchCreationDatas()
                {
                    RootChangesetId = rootBranch.RootChangeset, TfsRepositoryPath = rootBranch.TfsBranchPath
                };
                if (cbd.TfsRepositoryPath == tfsBranchPath)
                {
                    cbd.GitBranchNameExpected = gitBranchNameExpected;
                }

                tfsRemote = defaultRemote.InitBranch(_remoteOptions, cbd.TfsRepositoryPath, cbd.RootChangesetId, !NoFetch, cbd.GitBranchNameExpected);
                if (tfsRemote == null)
                {
                    throw new GitTfsException("error: Couldn't fetch parent branch\n");
                }
                if (rootBranch.IsRenamedBranch || !NoFetch)
                {
                    fetchResult = FetchRemote(tfsRemote, false, !DontCreateGitBranch && !rootBranch.IsRenamedBranch);
                    if (fetchResult.IsSuccess && rootBranch.IsRenamedBranch)
                    {
                        remoteToDelete.Add(tfsRemote);
                    }
                }
                else
                {
                    Trace.WriteLine("Not fetching changesets, --no-fetch option specified");
                }
            }
            foreach (var gitTfsRemote in remoteToDelete)
            {
                _globals.Repository.DeleteTfsRemote(gitTfsRemote);
            }
            return(RemoteCreated = tfsRemote);
        }
Example #2
0
        private IGitTfsRemote InitBranchSupportingRename(string tfsBranchPath, string gitBranchNameExpected, IList <RootBranch> creationBranchData, IGitTfsRemote defaultRemote, out IFetchResult fetchResult)
        {
            fetchResult = null;

            RemoveAlreadyFetchedBranches(creationBranchData, defaultRemote);

            Trace.TraceInformation("Branches to Initialize successively :");
            foreach (var branch in creationBranchData)
            {
                Trace.TraceInformation("-" + branch.TfsBranchPath + " (" + branch.SourceBranchChangesetId + ")");
            }

            IGitTfsRemote branchTfsRemote = null;
            var           remoteToDelete  = new List <IGitTfsRemote>();

            foreach (var rootBranch in creationBranchData)
            {
                Trace.WriteLine("Processing " + (rootBranch.IsRenamedBranch ? "renamed " : string.Empty) + "branch :"
                                + rootBranch.TfsBranchPath + " (" + rootBranch.SourceBranchChangesetId + ")");
                var cbd = new BranchCreationDatas()
                {
                    RootChangesetId = rootBranch.SourceBranchChangesetId, TfsRepositoryPath = rootBranch.TfsBranchPath
                };
                if (cbd.TfsRepositoryPath == tfsBranchPath)
                {
                    cbd.GitBranchNameExpected = gitBranchNameExpected;
                }

                branchTfsRemote = defaultRemote.InitBranch(_remoteOptions, cbd.TfsRepositoryPath, cbd.RootChangesetId, !NoFetch, cbd.GitBranchNameExpected, fetchResult);
                if (branchTfsRemote == null)
                {
                    throw new GitTfsException("error: Couldn't fetch parent branch\n");
                }

                // If this branch's branch point is past the first commit, indicate this so Fetch can start from that point
                if (rootBranch.TargetBranchChangesetId > -1)
                {
                    branchTfsRemote.SetInitialChangeset(rootBranch.TargetBranchChangesetId);
                }

                if (rootBranch.IsRenamedBranch || !NoFetch)
                {
                    fetchResult = FetchRemote(branchTfsRemote, false, !DontCreateGitBranch && !rootBranch.IsRenamedBranch, fetchResult, rootBranch.TargetBranchChangesetId);
                    if (fetchResult.IsSuccess && rootBranch.IsRenamedBranch)
                    {
                        remoteToDelete.Add(branchTfsRemote);
                    }
                }
                else
                {
                    Trace.WriteLine("Not fetching changesets, --no-fetch option specified");
                }
            }
            foreach (var gitTfsRemote in remoteToDelete)
            {
                _globals.Repository.DeleteTfsRemote(gitTfsRemote);
            }
            return(RemoteCreated = branchTfsRemote);
        }
Example #3
0
        private IGitTfsRemote InitBranchSupportingRename(string tfsBranchPath, string gitBranchNameExpected, IList<RootBranch> creationBranchData, IGitTfsRemote defaultRemote, out IFetchResult fetchResult)
        {
            fetchResult = null;

            RemoveAlreadyFetchedBranches(creationBranchData, defaultRemote);

            _stdout.WriteLine("Branches to Initialize successively :");
            foreach (var branch in creationBranchData)
                _stdout.WriteLine("-" + branch.TfsBranchPath + " (" + branch.RootChangeset + ")");

            IGitTfsRemote tfsRemote = null;
            var remoteToDelete = new List<IGitTfsRemote>();
            foreach (var rootBranch in creationBranchData)
            {
                Trace.WriteLine("Processing " + (rootBranch.IsRenamedBranch ? "renamed " : string.Empty) + "branch :"
                    + rootBranch.TfsBranchPath + " (" + rootBranch.RootChangeset + ")");
                var cbd = new BranchCreationDatas() {RootChangesetId = rootBranch.RootChangeset, TfsRepositoryPath = rootBranch.TfsBranchPath};
                if (cbd.TfsRepositoryPath == tfsBranchPath)
                    cbd.GitBranchNameExpected = gitBranchNameExpected;

                tfsRemote = defaultRemote.InitBranch(_remoteOptions, cbd.TfsRepositoryPath, cbd.RootChangesetId, !NoFetch, cbd.GitBranchNameExpected, fetchResult);
                if (tfsRemote == null)
                {
                    throw new GitTfsException("error: Couldn't fetch parent branch\n");
                }
                if (rootBranch.IsRenamedBranch || !NoFetch)
                {
                    fetchResult = FetchRemote(tfsRemote, false, !DontCreateGitBranch && !rootBranch.IsRenamedBranch, fetchResult);
                    if(fetchResult.IsSuccess && rootBranch.IsRenamedBranch)
                        remoteToDelete.Add(tfsRemote);
                }
                else
                    Trace.WriteLine("Not fetching changesets, --no-fetch option specified");
            }
            foreach (var gitTfsRemote in remoteToDelete)
            {
                _globals.Repository.DeleteTfsRemote(gitTfsRemote);
            }
            return RemoteCreated = tfsRemote;
        }
Example #4
0
        private IGitTfsRemote InitBranchSupportingRename(string tfsBranchPath, string gitBranchNameExpected, IList<RootBranch> creationBranchData, IGitTfsRemote defaultRemote, out IFetchResult fetchResult)
        {
            fetchResult = null;

            RemoveAlreadyFetchedBranches(creationBranchData, defaultRemote);

            Trace.TraceInformation("Branches to Initialize successively :");
            foreach (var branch in creationBranchData)
                Trace.TraceInformation("-" + branch.TfsBranchPath + " (" + branch.SourceBranchChangesetId + ")");

            IGitTfsRemote branchTfsRemote = null;
            var remoteToDelete = new List<IGitTfsRemote>();
            foreach (var rootBranch in creationBranchData)
            {
                Trace.WriteLine("Processing " + (rootBranch.IsRenamedBranch ? "renamed " : string.Empty) + "branch :"
                    + rootBranch.TfsBranchPath + " (" + rootBranch.SourceBranchChangesetId + ")");
                var cbd = new BranchCreationDatas() { RootChangesetId = rootBranch.SourceBranchChangesetId, TfsRepositoryPath = rootBranch.TfsBranchPath };
                if (cbd.TfsRepositoryPath == tfsBranchPath)
                    cbd.GitBranchNameExpected = gitBranchNameExpected;

                branchTfsRemote = defaultRemote.InitBranch(_remoteOptions, cbd.TfsRepositoryPath, cbd.RootChangesetId, !NoFetch, cbd.GitBranchNameExpected, fetchResult);
                if (branchTfsRemote == null)
                {
                    throw new GitTfsException("error: Couldn't fetch parent branch\n");
                }

                // If this branch's branch point is past the first commit, indicate this so Fetch can start from that point
                if (rootBranch.TargetBranchChangesetId > -1)
                {
                    branchTfsRemote.SetInitialChangeset(rootBranch.TargetBranchChangesetId);
                }

                if (rootBranch.IsRenamedBranch || !NoFetch)
                {
                    fetchResult = FetchRemote(branchTfsRemote, false, !DontCreateGitBranch && !rootBranch.IsRenamedBranch, fetchResult, rootBranch.TargetBranchChangesetId);
                    if (fetchResult.IsSuccess && rootBranch.IsRenamedBranch)
                        remoteToDelete.Add(branchTfsRemote);
                }
                else
                    Trace.WriteLine("Not fetching changesets, --no-fetch option specified");
            }
            foreach (var gitTfsRemote in remoteToDelete)
            {
                _globals.Repository.DeleteTfsRemote(gitTfsRemote);
            }
            return RemoteCreated = branchTfsRemote;
        }