added branch filter functionality, modified get commit functionality
This commit is contained in:
parent
d69bc83dc9
commit
cf54ae1848
@ -4,6 +4,7 @@ public class CommitDetail
|
|||||||
{
|
{
|
||||||
private List<string>? _authors;
|
private List<string>? _authors;
|
||||||
private SortedList<string, int>? _commitDetails;
|
private SortedList<string, int>? _commitDetails;
|
||||||
|
private string _currentBranch;
|
||||||
|
|
||||||
public List<string>? Authors
|
public List<string>? Authors
|
||||||
{
|
{
|
||||||
@ -17,13 +18,20 @@ public class CommitDetail
|
|||||||
set { _commitDetails = value; }
|
set { _commitDetails = value; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public string CurrentBranch
|
||||||
|
{
|
||||||
|
get { return _currentBranch; }
|
||||||
|
set { _currentBranch = value; }
|
||||||
|
}
|
||||||
|
|
||||||
public CommitDetail()
|
public CommitDetail()
|
||||||
{
|
{
|
||||||
_authors = new List<string>();
|
_authors = new List<string>();
|
||||||
_commitDetails = new SortedList<string, int>();
|
_commitDetails = new SortedList<string, int>();
|
||||||
|
_currentBranch = GetCurrentBranch();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void GetAllCommitsByName()
|
public void GetCurrentCommitsByName()
|
||||||
{
|
{
|
||||||
using (var repo = new Repository(Directory.GetCurrentDirectory()))
|
using (var repo = new Repository(Directory.GetCurrentDirectory()))
|
||||||
{
|
{
|
||||||
@ -43,7 +51,7 @@ public class CommitDetail
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void GetAllCommitsByEmail()
|
public void GetCurrentCommitsByEmail()
|
||||||
{
|
{
|
||||||
using (var repo = new Repository(Directory.GetCurrentDirectory()))
|
using (var repo = new Repository(Directory.GetCurrentDirectory()))
|
||||||
{
|
{
|
||||||
@ -70,4 +78,50 @@ public class CommitDetail
|
|||||||
return repo.Commits.Count();
|
return repo.Commits.Count();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public string GetCurrentBranch()
|
||||||
|
{
|
||||||
|
using (var repo = new Repository(Directory.GetCurrentDirectory()))
|
||||||
|
{
|
||||||
|
return repo.Head.Reference.TargetIdentifier;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void GetCommitsByBranch(string branchName)
|
||||||
|
{
|
||||||
|
using (var repo = new Repository(Directory.GetCurrentDirectory()))
|
||||||
|
{
|
||||||
|
var branchResult = repo.Branches[branchName];
|
||||||
|
|
||||||
|
if (branchResult == null)
|
||||||
|
{
|
||||||
|
branchResult = repo.Branches[$"origin/{branchName}"];
|
||||||
|
var remoteBranch = repo.CreateBranch(branchName, branchResult.Tip);
|
||||||
|
repo.Branches.Update(remoteBranch, b => b.UpstreamBranch = $"refs/heads/{branchName}");
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (var c in branchResult.Commits)
|
||||||
|
{
|
||||||
|
if (!_authors.Contains(c.Author.Name))
|
||||||
|
{
|
||||||
|
_authors.Add(c.Author.Name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (var a in _authors)
|
||||||
|
{
|
||||||
|
int commitCount = branchResult.Commits.Where(r => r.Author.Name == a).Count();
|
||||||
|
_commitDetails.Add(a, commitCount);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void GetCommitsByTag(string tagName)
|
||||||
|
{
|
||||||
|
using (var repo = new Repository(Directory.GetCurrentDirectory()))
|
||||||
|
{
|
||||||
|
var tagResult = repo.Tags[tagName];
|
||||||
|
System.Console.WriteLine(tagResult);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user