public ComparerResult Compare(Branch mainBranch, Branch refBranch)
        {
            var allCommitsMatch = true;
            var result          = new ComparerResult();

            result.MainBranch = mainBranch;
            result.RefBranch  = refBranch;

            foreach (var mainCommit in mainBranch.Commits)
            {
                if (!refBranch.Commits.Select(c => c.Id).Contains(mainCommit.Id))
                {
                    var potentialByMsg   = refBranch.Commits.Where(c => c.Message == mainCommit.Message);
                    var potentialByName  = potentialByMsg.Where(c => c.Name == mainCommit.Name);
                    var potentialByFiles = potentialByName.Where(c => c.Files == mainCommit.Files);

                    if (!potentialByFiles.Any())
                    {
                        allCommitsMatch = false;
                        break;
                    }
                }
            }

            if (allCommitsMatch)
            {
                result.Status = ResultStatus.Yes;
            }
            else
            {
                result.Status = ResultStatus.No;
            }

            return(result);
        }
Example #2
0
        public ComparerResult Compare(Branch mainBranch, Branch refBranch)
        {
            var containsAllIds = true;
            var result         = new ComparerResult();

            result.MainBranch = mainBranch;
            result.RefBranch  = refBranch;

            foreach (var mainCommit in mainBranch.Commits.Select(c => c.Id))
            {
                if (!refBranch.Commits.Select(c => c.Id).Contains(mainCommit))
                {
                    containsAllIds = false;
                    break;
                }
            }

            if (containsAllIds)
            {
                result.Status = ResultStatus.Yes;
            }
            else
            {
                result.Status = ResultStatus.Unknown;
            }

            return(result);
        }
        public ComparerResult Compare(Branch mainBranch, Branch refBranch)
        {
            var allCommitsMatch = true;
            var result = new ComparerResult();
            result.MainBranch = mainBranch;
            result.RefBranch = refBranch;

            foreach (var mainCommit in mainBranch.Commits)
            {
                if (!refBranch.Commits.Select(c => c.Id).Contains(mainCommit.Id))
                {
                    var potentialByMsg = refBranch.Commits.Where(c => c.Message == mainCommit.Message);
                    var potentialByName = potentialByMsg.Where(c => c.Name == mainCommit.Name);
                    var potentialByFiles = potentialByName.Where(c => c.Files == mainCommit.Files);

                    if (!potentialByFiles.Any())
                    {
                        allCommitsMatch = false;
                        break;
                    }
                }
            }

            if (allCommitsMatch)
            {
                result.Status = ResultStatus.Yes;
            }
            else
            {
                result.Status = ResultStatus.No;
            }

            return result;
        }
        public ComparerResult Compare(Branch mainBranch, Branch refBranch)
        {
            var mainCommits = mainBranch.Commits.Count();
            var refCommits  = refBranch.Commits.Count();

            var result = new ComparerResult();

            result.MainBranch = mainBranch;
            result.RefBranch  = refBranch;

            // If there are no commits on the main branch, then the main branch
            // should be deleted
            if (mainCommits == 0)
            {
                result.Status = ResultStatus.Yes;
            }
            // If the main branch contains more commits than the reference branch,
            // then the main branch should not be deleted
            else if (mainCommits > refCommits)
            {
                result.Status = ResultStatus.No;
            }
            // If the main branch contains the same number of commits/fewer commits than
            // the reference branch, then we cannot deduce whether the main branch should
            // be deleted
            else
            {
                result.Status = ResultStatus.Unknown;
            }

            return(result);
        }
Example #5
0
        public ComparerResult Compare(Branch mainBranch, Branch refBranch)
        {
            var result = new ComparerResult
            {
                MainBranch = mainBranch,
                RefBranch  = refBranch
            };

            if (mainBranch.Name == refBranch.Name)
            {
                result.Status = ResultStatus.No;
            }
            else
            {
                foreach (var comparer in _comparers)
                {
                    result = comparer.Compare(mainBranch, refBranch);
                    if (result.Status == ResultStatus.Yes || result.Status == ResultStatus.No)
                    {
                        break;
                    }
                }
            }
            Log.Information("Branches compared: " + mainBranch.Name + " + " + refBranch.Name + ", Result: " + result.Status + ".");
            return(result);
        }
Example #6
0
        public ComparerResult Compare(Branch mainBranch, Branch refBranch)
        {
            var containsAllIds = true;
            var result = new ComparerResult();
            result.MainBranch = mainBranch;
            result.RefBranch = refBranch;

            foreach (var mainCommit in mainBranch.Commits.Select(c => c.Id))
            {
                if (!refBranch.Commits.Select(c => c.Id).Contains(mainCommit))
                {
                    containsAllIds = false;
                    break;
                }
            }

            if (containsAllIds)
            {
                result.Status = ResultStatus.Yes;
            }
            else
            {
                result.Status = ResultStatus.Unknown;
            }

            return result;
        }
Example #7
0
        public ComparerResult Compare(Branch mainBranch, Branch refBranch)
        {
            var result = new ComparerResult
            {
                MainBranch = mainBranch,
                RefBranch = refBranch
            };

            if (mainBranch.Name == refBranch.Name)
            {
                result.Status = ResultStatus.No;
            }
            else
            {
                foreach (var comparer in _comparers)
                {
                    result = comparer.Compare(mainBranch, refBranch);
                    if (result.Status == ResultStatus.Yes || result.Status == ResultStatus.No)
                    {
                        break;
                    }
                }
            }
            Log.Information("Branches compared: " + mainBranch.Name + " + " + refBranch.Name + ", Result: " + result.Status + ".");
            return result;
        }
        public ComparerResult Compare(Branch mainBranch, Branch refBranch)
        {
            var mainCommits = mainBranch.Commits.Count();
            var refCommits = refBranch.Commits.Count();

            var result = new ComparerResult();
            result.MainBranch = mainBranch;
            result.RefBranch = refBranch;

            // If there are no commits on the main branch, then the main branch
            // should be deleted
            if (mainCommits == 0)
            {
                result.Status = ResultStatus.Yes;
            }
            // If the main branch contains more commits than the reference branch,
            // then the main branch should not be deleted
            else if (mainCommits > refCommits)
            {
                result.Status = ResultStatus.No;
            }
            // If the main branch contains the same number of commits/fewer commits than
            // the reference branch, then we cannot deduce whether the main branch should
            // be deleted
            else
            {
                result.Status = ResultStatus.Unknown;
            }

            return result;
        }
 /*
  * Compares a main branch against all branches in a list of branches.
  */
 public ComparerResult CheckBranch(Branch mainBranch, List<Branch> branches)
 {
     var result = new ComparerResult();
     foreach (var refBranch in branches)
     {
         result = _branchComparer.Compare(mainBranch, refBranch);
         if (result.Status == ResultStatus.Yes)
         {
             break;
         }
     }
     return result;
 }
Example #10
0
        /*
         * Compares a main branch against all branches in a list of branches.
         */
        public ComparerResult CheckBranch(Branch mainBranch, List <Branch> branches)
        {
            var result = new ComparerResult();

            foreach (var refBranch in branches)
            {
                result = _branchComparer.Compare(mainBranch, refBranch);
                if (result.Status == ResultStatus.Yes)
                {
                    break;
                }
            }
            return(result);
        }