本文整理汇总了C#中IRepository.FindBranch方法的典型用法代码示例。如果您正苦于以下问题:C# IRepository.FindBranch方法的具体用法?C# IRepository.FindBranch怎么用?C# IRepository.FindBranch使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IRepository
的用法示例。
在下文中一共展示了IRepository.FindBranch方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: EnsureLocalBranchExists
void EnsureLocalBranchExists(IRepository repository, string branchName)
{
if (repository.FindBranch(branchName) != null)
{
return;
}
var existingBranches = string.Format("'{0}'", string.Join("', '", repository.Branches.Select(x => x.CanonicalName)));
throw new WarningException(string.Format("This repository doesn't contain a branch named '{0}'. Please create one. Existing branches: {1}", branchName, existingBranches));
}
示例2: EnsurePullBranchShareACommonAncestorWithMaster
void EnsurePullBranchShareACommonAncestorWithMaster(IRepository repository, Branch pullBranch)
{
var masterTip = repository.FindBranch("master").Tip;
var ancestor = repository.Commits.FindMergeBase(masterTip, pullBranch.Tip);
if (ancestor != null)
{
return;
}
var message = string.Format("A pull request branch is expected to branch off of 'master'. However, branch 'master' and '{0}' do not share a common ancestor.", pullBranch.Name);
throw new Exception(message);
}
示例3: FindCommonAncestorWithDevelop
Commit FindCommonAncestorWithDevelop(IRepository repo, Branch branch, BranchType branchType)
{
var ancestor = repo.Commits.FindMergeBase(
repo.FindBranch("develop").Tip,
branch.Tip);
if (ancestor != null)
{
return ancestor;
}
throw new ErrorException(
string.Format("A {0} branch is expected to branch off of 'develop'. "
+ "However, branch 'develop' and '{1}' do not share a common ancestor."
, branchType, branch.Name));
}
示例4: IsThereAnyCommitOnTheBranch
public bool IsThereAnyCommitOnTheBranch(IRepository repo, Branch branch)
{
var filter = new CommitFilter
{
Since = branch,
Until = repo.FindBranch("develop")
};
var commits = repo.Commits.QueryBy(filter);
if (!commits.Any())
{
return false;
}
return true;
}
示例5: FindLatestStableTaggedCommitReachableFrom
public VersionPoint FindLatestStableTaggedCommitReachableFrom(IRepository repo, Commit commit)
{
var masterTip = repo.FindBranch("master").Tip;
var ancestor = repo.Commits.FindMergeBase(masterTip, commit);
var allTags = repo.Tags.ToList();
foreach (var c in repo.Commits.QueryBy(new CommitFilter
{
Since = ancestor.Id,
SortBy = CommitSortStrategies.Topological | CommitSortStrategies.Time
}
))
{
var vp = RetrieveStableVersionPointFor(allTags, c);
if (vp != null)
{
return vp;
}
}
return null;
}
示例6: NumberOfCommitsInBranchNotKnownFromBaseBranch
int NumberOfCommitsInBranchNotKnownFromBaseBranch(
IRepository repo,
Branch branch,
BranchType branchType,
string baseBranchName)
{
var baseTip = repo.FindBranch(baseBranchName).Tip;
if (branch.Tip == baseTip)
{
// The branch bears no additional commit
return 0;
}
var ancestor = repo.Commits.FindMergeBase(
baseTip,
branch.Tip);
if (ancestor == null)
{
var message = string.Format("A {0} branch is expected to branch off of '{1}'. However, branch '{1}' and '{2}' do not share a common ancestor.", branchType, baseBranchName, branch.Name);
throw new ErrorException(message);
}
var filter = new CommitFilter
{
Since = branch.Tip,
Until = ancestor,
SortBy = CommitSortStrategies.Topological | CommitSortStrategies.Time
};
return repo.Commits.QueryBy(filter).Count();
}
示例7: ShouldGitHubFlowVersioningSchemeApply
public static bool ShouldGitHubFlowVersioningSchemeApply(IRepository repo)
{
return repo.FindBranch("develop") == null;
}
示例8: InheritBranchConfiguration
static KeyValuePair<string, BranchConfig> InheritBranchConfiguration(
bool onlyEvaluateTrackedBranches, IRepository repository, Commit currentCommit,
Branch currentBranch, KeyValuePair<string, BranchConfig> keyValuePair,
BranchConfig branchConfiguration, Config config)
{
Logger.WriteInfo("Attempting to inherit branch configuration from parent branch");
var excludedBranches = new [] { currentBranch };
// Check if we are a merge commit. If so likely we are a pull request
var parentCount = currentCommit.Parents.Count();
if (parentCount == 2)
{
var parents = currentCommit.Parents.ToArray();
var branch = repository.Branches.SingleOrDefault(b => !b.IsRemote && b.Tip == parents[1]);
if (branch != null)
{
excludedBranches = new[]
{
currentBranch,
branch
};
currentBranch = branch;
}
else
{
currentBranch = repository.Branches.SingleOrDefault(b => !b.IsRemote && b.Tip == parents[0]) ?? currentBranch;
}
Logger.WriteInfo("HEAD is merge commit, this is likely a pull request using " + currentBranch.Name + " as base");
}
var branchPoint = currentBranch.FindCommitBranchWasBranchedFrom(repository, onlyEvaluateTrackedBranches, excludedBranches);
List<Branch> possibleParents;
if (branchPoint.Sha == currentCommit.Sha)
{
possibleParents = currentCommit.GetBranchesContainingCommit(repository, true).Except(excludedBranches).ToList();
}
else
{
var branches = branchPoint.GetBranchesContainingCommit(repository, true).Except(excludedBranches).ToList();
var currentTipBranches = currentCommit.GetBranchesContainingCommit(repository, true).Except(excludedBranches).ToList();
possibleParents = branches
.Except(currentTipBranches)
.ToList();
}
Logger.WriteInfo("Found possible parent branches: " + string.Join(", ", possibleParents.Select(p => p.Name)));
// If it comes down to master and something, master is always first so we pick other branch
if (possibleParents.Count == 2 && possibleParents.Any(p => p.Name == "master"))
{
possibleParents.Remove(possibleParents.Single(p => p.Name == "master"));
}
if (possibleParents.Count == 1)
{
var branchConfig = GetBranchConfiguration(currentCommit, repository, onlyEvaluateTrackedBranches, config, possibleParents[0]).Value;
return new KeyValuePair<string, BranchConfig>(
keyValuePair.Key,
new BranchConfig(branchConfiguration)
{
Increment = branchConfig.Increment,
PreventIncrementOfMergedBranchVersion = branchConfig.PreventIncrementOfMergedBranchVersion
});
}
// If we fail to inherit it is probably because the branch has been merged and we can't do much. So we will fall back to develop's config
// if develop exists and master if not
string errorMessage;
if (possibleParents.Count == 0)
errorMessage = "Failed to inherit Increment branch configuration, no branches found.";
else
errorMessage = "Failed to inherit Increment branch configuration, ended up with: " + string.Join(", ", possibleParents.Select(p => p.Name));
var hasDevelop = repository.FindBranch("develop") != null;
var branchName = hasDevelop ? "develop" : "master";
Logger.WriteWarning(errorMessage + Environment.NewLine + Environment.NewLine + "Falling back to " + branchName + " branch config");
var value = GetBranchConfiguration(currentCommit, repository, onlyEvaluateTrackedBranches, config, repository.Branches[branchName]).Value;
return new KeyValuePair<string, BranchConfig>(
keyValuePair.Key,
new BranchConfig(branchConfiguration)
{
Increment = value.Increment,
PreventIncrementOfMergedBranchVersion = value.PreventIncrementOfMergedBranchVersion
});
}