mirror of
https://fastgit.cc/github.com/sourcegit-scm/sourcegit
synced 2026-04-30 22:01:10 +08:00
code_review: PR #1525
- `OpenForDiffAsync` should not use `await` (we do not need to wait it ends) - Modify `Checkout`, `CheckoutCommit` and `CreateBranch` Signed-off-by: leo <longshuang@msn.cn>
This commit is contained in:
@@ -125,13 +125,13 @@ namespace SourceGit.ViewModels
|
||||
var diffWithMerger = new MenuItem();
|
||||
diffWithMerger.Header = App.Text("DiffWithMerger");
|
||||
diffWithMerger.Icon = App.CreateMenuIcon("Icons.OpenWith");
|
||||
diffWithMerger.Click += async (_, ev) =>
|
||||
diffWithMerger.Click += (sender, ev) =>
|
||||
{
|
||||
var toolType = Preferences.Instance.ExternalMergeToolType;
|
||||
var toolPath = Preferences.Instance.ExternalMergeToolPath;
|
||||
var opt = new Models.DiffOption(_based.Head, _to.Head, change);
|
||||
|
||||
await Commands.MergeTool.OpenForDiffAsync(_repo, toolType, toolPath, opt);
|
||||
_ = Commands.MergeTool.OpenForDiffAsync(_repo, toolType, toolPath, opt);
|
||||
ev.Handled = true;
|
||||
};
|
||||
menu.Items.Add(diffWithMerger);
|
||||
|
||||
@@ -58,14 +58,8 @@ namespace SourceGit.ViewModels
|
||||
|
||||
var succ = false;
|
||||
var needPopStash = false;
|
||||
|
||||
if (DiscardLocalChanges)
|
||||
{
|
||||
succ = await new Commands.Checkout(_repo.FullPath)
|
||||
.Use(log)
|
||||
.BranchAsync(Branch, true);
|
||||
}
|
||||
else
|
||||
|
||||
if (!DiscardLocalChanges)
|
||||
{
|
||||
var changes = await new Commands.CountLocalChangesWithoutUntracked(_repo.FullPath).GetResultAsync();
|
||||
if (changes > 0)
|
||||
@@ -82,11 +76,11 @@ namespace SourceGit.ViewModels
|
||||
|
||||
needPopStash = true;
|
||||
}
|
||||
|
||||
succ = await new Commands.Checkout(_repo.FullPath)
|
||||
.Use(log)
|
||||
.BranchAsync(Branch, false);
|
||||
}
|
||||
|
||||
succ = await new Commands.Checkout(_repo.FullPath)
|
||||
.Use(log)
|
||||
.BranchAsync(Branch, DiscardLocalChanges);
|
||||
|
||||
if (succ)
|
||||
{
|
||||
|
||||
@@ -92,7 +92,6 @@ namespace SourceGit.ViewModels
|
||||
if (IsRecurseSubmoduleVisible && RecurseSubmodules)
|
||||
{
|
||||
var submodules = await new Commands.QueryUpdatableSubmodules(_repo.FullPath).GetResultAsync();
|
||||
|
||||
if (submodules.Count > 0)
|
||||
await new Commands.Submodule(_repo.FullPath)
|
||||
.Use(log)
|
||||
|
||||
@@ -41,10 +41,6 @@ namespace SourceGit.ViewModels
|
||||
var log = _repo.CreateLog("Checkout Commit");
|
||||
Use(log);
|
||||
|
||||
var updateSubmodules = IsRecurseSubmoduleVisible && RecurseSubmodules;
|
||||
bool succ;
|
||||
var needPop = false;
|
||||
|
||||
if (_repo.CurrentBranch is { IsDetachedHead: true })
|
||||
{
|
||||
var refs = await new Commands.QueryRefsContainsCommit(_repo.FullPath, _repo.CurrentBranch.Head).GetResultAsync();
|
||||
@@ -59,14 +55,11 @@ namespace SourceGit.ViewModels
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var succ = false;
|
||||
var needPop = false;
|
||||
|
||||
if (DiscardLocalChanges)
|
||||
{
|
||||
succ = await new Commands.Checkout(_repo.FullPath)
|
||||
.Use(log)
|
||||
.CommitAsync(Commit.SHA, true);
|
||||
}
|
||||
else
|
||||
if (!DiscardLocalChanges)
|
||||
{
|
||||
var changes = await new Commands.CountLocalChangesWithoutUntracked(_repo.FullPath).GetResultAsync();
|
||||
if (changes > 0)
|
||||
@@ -83,15 +76,15 @@ namespace SourceGit.ViewModels
|
||||
|
||||
needPop = true;
|
||||
}
|
||||
|
||||
succ = await new Commands.Checkout(_repo.FullPath)
|
||||
.Use(log)
|
||||
.CommitAsync(Commit.SHA, false);
|
||||
}
|
||||
|
||||
succ = await new Commands.Checkout(_repo.FullPath)
|
||||
.Use(log)
|
||||
.CommitAsync(Commit.SHA, DiscardLocalChanges);
|
||||
|
||||
if (succ)
|
||||
{
|
||||
if (updateSubmodules)
|
||||
if (IsRecurseSubmoduleVisible && RecurseSubmodules)
|
||||
{
|
||||
var submodules = await new Commands.QueryUpdatableSubmodules(_repo.FullPath).GetResultAsync();
|
||||
if (submodules.Count > 0)
|
||||
|
||||
@@ -325,13 +325,13 @@ namespace SourceGit.ViewModels
|
||||
var diffWithMerger = new MenuItem();
|
||||
diffWithMerger.Header = App.Text("DiffWithMerger");
|
||||
diffWithMerger.Icon = App.CreateMenuIcon("Icons.OpenWith");
|
||||
diffWithMerger.Click += async (_, ev) =>
|
||||
diffWithMerger.Click += (sender, ev) =>
|
||||
{
|
||||
var toolType = Preferences.Instance.ExternalMergeToolType;
|
||||
var toolPath = Preferences.Instance.ExternalMergeToolPath;
|
||||
var opt = new Models.DiffOption(_commit, change);
|
||||
|
||||
await Commands.MergeTool.OpenForDiffAsync(_repo.FullPath, toolType, toolPath, opt);
|
||||
_ = Commands.MergeTool.OpenForDiffAsync(_repo.FullPath, toolType, toolPath, opt);
|
||||
ev.Handled = true;
|
||||
};
|
||||
|
||||
|
||||
@@ -123,9 +123,6 @@ namespace SourceGit.ViewModels
|
||||
var log = _repo.CreateLog($"Create Branch '{fixedName}'");
|
||||
Use(log);
|
||||
|
||||
var updateSubmodules = IsRecurseSubmoduleVisible && RecurseSubmodules;
|
||||
bool succ;
|
||||
|
||||
if (CheckoutAfterCreated)
|
||||
{
|
||||
if (_repo.CurrentBranch is { IsDetachedHead: true } && !_repo.CurrentBranch.Head.Equals(_baseOnRevision, StringComparison.Ordinal))
|
||||
@@ -143,17 +140,12 @@ namespace SourceGit.ViewModels
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
bool succ;
|
||||
if (CheckoutAfterCreated && !_repo.IsBare)
|
||||
{
|
||||
var needPopStash = false;
|
||||
if (DiscardLocalChanges)
|
||||
{
|
||||
succ = await new Commands.Checkout(_repo.FullPath)
|
||||
.Use(log)
|
||||
.BranchAsync(fixedName, _baseOnRevision, true, _allowOverwrite);
|
||||
}
|
||||
else
|
||||
if (!DiscardLocalChanges)
|
||||
{
|
||||
var changes = await new Commands.CountLocalChangesWithoutUntracked(_repo.FullPath).GetResultAsync();
|
||||
if (changes > 0)
|
||||
@@ -170,15 +162,15 @@ namespace SourceGit.ViewModels
|
||||
|
||||
needPopStash = true;
|
||||
}
|
||||
|
||||
succ = await new Commands.Checkout(_repo.FullPath)
|
||||
.Use(log)
|
||||
.BranchAsync(fixedName, _baseOnRevision, false, _allowOverwrite);
|
||||
}
|
||||
|
||||
succ = await new Commands.Checkout(_repo.FullPath)
|
||||
.Use(log)
|
||||
.BranchAsync(fixedName, _baseOnRevision, DiscardLocalChanges, _allowOverwrite);
|
||||
|
||||
if (succ)
|
||||
{
|
||||
if (updateSubmodules)
|
||||
if (IsRecurseSubmoduleVisible && RecurseSubmodules)
|
||||
{
|
||||
var submodules = await new Commands.QueryUpdatableSubmodules(_repo.FullPath).GetResultAsync();
|
||||
if (submodules.Count > 0)
|
||||
|
||||
@@ -599,7 +599,11 @@ namespace SourceGit.ViewModels
|
||||
var parents = new List<Models.Commit>();
|
||||
foreach (var sha in commit.Parents)
|
||||
{
|
||||
var parent = _commits.Find(x => x.SHA == sha) ?? await new Commands.QuerySingleCommit(_repo.FullPath, sha).GetResultAsync();
|
||||
var parent = _commits.Find(x => x.SHA == sha);
|
||||
if (parent == null)
|
||||
parent = await new Commands.QuerySingleCommit(_repo.FullPath, sha)
|
||||
.GetResultAsync();
|
||||
|
||||
if (parent != null)
|
||||
parents.Add(parent);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user