mirror of
https://github.com/sourcegit-scm/sourcegit
synced 2025-05-20 19:55:00 +00:00
code_style: move commit link parser to Models.CommitLink.Get
Signed-off-by: leo <longshuang@msn.cn>
This commit is contained in:
parent
750ca8ec61
commit
06d033464d
5 changed files with 47 additions and 31 deletions
|
@ -471,7 +471,7 @@ namespace SourceGit
|
||||||
if (!collection.Onto.Equals(onto) || !collection.OrigHead.Equals(origHead))
|
if (!collection.Onto.Equals(onto) || !collection.OrigHead.Equals(origHead))
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
var done = File.ReadAllText(doneFile).Trim().Split([ '\r', '\n' ], StringSplitOptions.RemoveEmptyEntries);
|
var done = File.ReadAllText(doneFile).Trim().Split(['\r', '\n'], StringSplitOptions.RemoveEmptyEntries);
|
||||||
if (done.Length == 0)
|
if (done.Length == 0)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,49 @@
|
||||||
namespace SourceGit.Models
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace SourceGit.Models
|
||||||
{
|
{
|
||||||
public class CommitLink
|
public class CommitLink
|
||||||
{
|
{
|
||||||
public string Name { get; set; } = null;
|
public string Name { get; set; } = null;
|
||||||
public string URLPrefix { get; set; } = null;
|
public string URLPrefix { get; set; } = null;
|
||||||
|
|
||||||
|
public CommitLink(string name, string prefix)
|
||||||
|
{
|
||||||
|
Name = name;
|
||||||
|
URLPrefix = prefix;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static List<CommitLink> Get(List<Remote> remotes)
|
||||||
|
{
|
||||||
|
var outs = new List<CommitLink>();
|
||||||
|
|
||||||
|
foreach (var remote in remotes)
|
||||||
|
{
|
||||||
|
if (remote.TryGetVisitURL(out var url))
|
||||||
|
{
|
||||||
|
var trimmedUrl = url;
|
||||||
|
if (url.EndsWith(".git"))
|
||||||
|
trimmedUrl = url.Substring(0, url.Length - 4);
|
||||||
|
|
||||||
|
if (url.StartsWith("https://github.com/", StringComparison.Ordinal))
|
||||||
|
outs.Add(new($"Github ({trimmedUrl.Substring(19)})", $"{url}/commit/"));
|
||||||
|
else if (url.StartsWith("https://gitlab.", StringComparison.Ordinal))
|
||||||
|
outs.Add(new($"GitLab ({trimmedUrl.Substring(trimmedUrl.Substring(15).IndexOf('/') + 16)})", $"{url}/-/commit/"));
|
||||||
|
else if (url.StartsWith("https://gitee.com/", StringComparison.Ordinal))
|
||||||
|
outs.Add(new($"Gitee ({trimmedUrl.Substring(18)})", $"{url}/commit/"));
|
||||||
|
else if (url.StartsWith("https://bitbucket.org/", StringComparison.Ordinal))
|
||||||
|
outs.Add(new($"BitBucket ({trimmedUrl.Substring(22)})", $"{url}/commits/"));
|
||||||
|
else if (url.StartsWith("https://codeberg.org/", StringComparison.Ordinal))
|
||||||
|
outs.Add(new($"Codeberg ({trimmedUrl.Substring(21)})", $"{url}/commit/"));
|
||||||
|
else if (url.StartsWith("https://gitea.org/", StringComparison.Ordinal))
|
||||||
|
outs.Add(new($"Gitea ({trimmedUrl.Substring(18)})", $"{url}/commit/"));
|
||||||
|
else if (url.StartsWith("https://git.sr.ht/", StringComparison.Ordinal))
|
||||||
|
outs.Add(new($"sourcehut ({trimmedUrl.Substring(18)})", $"{url}/commit/"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return outs;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -134,31 +134,7 @@ namespace SourceGit.ViewModels
|
||||||
public CommitDetail(Repository repo)
|
public CommitDetail(Repository repo)
|
||||||
{
|
{
|
||||||
_repo = repo;
|
_repo = repo;
|
||||||
|
WebLinks = Models.CommitLink.Get(repo.Remotes);
|
||||||
foreach (var remote in repo.Remotes)
|
|
||||||
{
|
|
||||||
if (remote.TryGetVisitURL(out var url))
|
|
||||||
{
|
|
||||||
var trimmedUrl = url;
|
|
||||||
if (url.EndsWith(".git"))
|
|
||||||
trimmedUrl = url.Substring(0, url.Length - 4);
|
|
||||||
|
|
||||||
if (url.StartsWith("https://github.com/", StringComparison.Ordinal))
|
|
||||||
WebLinks.Add(new Models.CommitLink() { Name = $"Github ({trimmedUrl.Substring(19)})", URLPrefix = $"{url}/commit/" });
|
|
||||||
else if (url.StartsWith("https://gitlab.", StringComparison.Ordinal))
|
|
||||||
WebLinks.Add(new Models.CommitLink() { Name = $"GitLab ({trimmedUrl.Substring(trimmedUrl.Substring(15).IndexOf('/') + 16)})", URLPrefix = $"{url}/-/commit/" });
|
|
||||||
else if (url.StartsWith("https://gitee.com/", StringComparison.Ordinal))
|
|
||||||
WebLinks.Add(new Models.CommitLink() { Name = $"Gitee ({trimmedUrl.Substring(18)})", URLPrefix = $"{url}/commit/" });
|
|
||||||
else if (url.StartsWith("https://bitbucket.org/", StringComparison.Ordinal))
|
|
||||||
WebLinks.Add(new Models.CommitLink() { Name = $"BitBucket ({trimmedUrl.Substring(22)})", URLPrefix = $"{url}/commits/" });
|
|
||||||
else if (url.StartsWith("https://codeberg.org/", StringComparison.Ordinal))
|
|
||||||
WebLinks.Add(new Models.CommitLink() { Name = $"Codeberg ({trimmedUrl.Substring(21)})", URLPrefix = $"{url}/commit/" });
|
|
||||||
else if (url.StartsWith("https://gitea.org/", StringComparison.Ordinal))
|
|
||||||
WebLinks.Add(new Models.CommitLink() { Name = $"Gitea ({trimmedUrl.Substring(18)})", URLPrefix = $"{url}/commit/" });
|
|
||||||
else if (url.StartsWith("https://git.sr.ht/", StringComparison.Ordinal))
|
|
||||||
WebLinks.Add(new Models.CommitLink() { Name = $"sourcehut ({trimmedUrl.Substring(18)})", URLPrefix = $"{url}/commit/" });
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Cleanup()
|
public void Cleanup()
|
||||||
|
@ -173,7 +149,6 @@ namespace SourceGit.ViewModels
|
||||||
_diffContext = null;
|
_diffContext = null;
|
||||||
_viewRevisionFileContent = null;
|
_viewRevisionFileContent = null;
|
||||||
_cancellationSource = null;
|
_cancellationSource = null;
|
||||||
WebLinks.Clear();
|
|
||||||
_revisionFiles = null;
|
_revisionFiles = null;
|
||||||
_revisionFileSearchSuggestion = null;
|
_revisionFileSearchSuggestion = null;
|
||||||
}
|
}
|
||||||
|
|
|
@ -304,7 +304,7 @@ namespace SourceGit.ViewModels
|
||||||
if (picker.Count == 1)
|
if (picker.Count == 1)
|
||||||
{
|
{
|
||||||
log = _repo.CreateLog("Save as Patch");
|
log = _repo.CreateLog("Save as Patch");
|
||||||
|
|
||||||
var succ = false;
|
var succ = false;
|
||||||
for (var i = 0; i < selected.Count; i++)
|
for (var i = 0; i < selected.Count; i++)
|
||||||
{
|
{
|
||||||
|
|
|
@ -67,7 +67,7 @@ namespace SourceGit.Views
|
||||||
presenter.Content = null;
|
presenter.Content = null;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var viewTypeName = dataTypeName.Replace(".ViewModels.", ".Views.");
|
var viewTypeName = dataTypeName.Replace(".ViewModels.", ".Views.");
|
||||||
var viewType = Type.GetType(viewTypeName);
|
var viewType = Type.GetType(viewTypeName);
|
||||||
if (viewType == null)
|
if (viewType == null)
|
||||||
|
@ -75,7 +75,7 @@ namespace SourceGit.Views
|
||||||
presenter.Content = null;
|
presenter.Content = null;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var view = Activator.CreateInstance(viewType);
|
var view = Activator.CreateInstance(viewType);
|
||||||
presenter.Content = view;
|
presenter.Content = view;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue