mirror of
https://github.com/sourcegit-scm/sourcegit
synced 2025-06-03 10:04:59 +00:00
refactor: query branch head after operation finished to avoid branch head mismatch
Signed-off-by: leo <longshuang@msn.cn>
This commit is contained in:
parent
9fb8af51ff
commit
c112549b69
5 changed files with 25 additions and 17 deletions
|
@ -80,9 +80,16 @@ namespace SourceGit.ViewModels
|
|||
|
||||
log.Complete();
|
||||
|
||||
var upstream = _repo.CurrentBranch?.Upstream;
|
||||
var upstreamHead = string.Empty;
|
||||
if (!string.IsNullOrEmpty(upstream))
|
||||
upstreamHead = new Commands.QueryRevisionByRefName(_repo.FullPath, upstream.Substring(13)).Result();
|
||||
|
||||
CallUIThread(() =>
|
||||
{
|
||||
_repo.NavigateToBranchDelayed(_repo.CurrentBranch?.Upstream);
|
||||
if (!string.IsNullOrEmpty(upstreamHead))
|
||||
_repo.NavigateToCommitDelayed(upstreamHead);
|
||||
|
||||
_repo.MarkFetched();
|
||||
_repo.SetWatcherEnabled(true);
|
||||
});
|
||||
|
|
|
@ -33,11 +33,14 @@ namespace SourceGit.ViewModels
|
|||
{
|
||||
new Commands.Fetch(_repo.FullPath, Local, Upstream).Use(log).Exec();
|
||||
log.Complete();
|
||||
|
||||
var changedLocalBranchHead = new Commands.QueryRevisionByRefName(_repo.FullPath, Local.Name).Result();
|
||||
CallUIThread(() =>
|
||||
{
|
||||
_repo.NavigateToBranchDelayed(Upstream.FullName);
|
||||
_repo.NavigateToCommitDelayed(changedLocalBranchHead);
|
||||
_repo.SetWatcherEnabled(true);
|
||||
});
|
||||
|
||||
return true;
|
||||
});
|
||||
}
|
||||
|
|
|
@ -64,9 +64,10 @@ namespace SourceGit.ViewModels
|
|||
new Commands.Merge(_repo.FullPath, _sourceName, Mode.Arg).Use(log).Exec();
|
||||
log.Complete();
|
||||
|
||||
var head = new Commands.QueryRevisionByRefName(_repo.FullPath, "HEAD").Result();
|
||||
CallUIThread(() =>
|
||||
{
|
||||
_repo.NavigateToBranchDelayed(_repo.CurrentBranch?.FullName);
|
||||
_repo.NavigateToCommitDelayed(head);
|
||||
_repo.SetWatcherEnabled(true);
|
||||
});
|
||||
return true;
|
||||
|
|
|
@ -164,9 +164,10 @@ namespace SourceGit.ViewModels
|
|||
|
||||
log.Complete();
|
||||
|
||||
var head = new Commands.QueryRevisionByRefName(_repo.FullPath, "HEAD").Result();
|
||||
CallUIThread(() =>
|
||||
{
|
||||
_repo.NavigateToBranchDelayed(_repo.CurrentBranch?.FullName);
|
||||
_repo.NavigateToCommitDelayed(head);
|
||||
_repo.SetWatcherEnabled(true);
|
||||
});
|
||||
|
||||
|
|
|
@ -922,17 +922,17 @@ namespace SourceGit.ViewModels
|
|||
}
|
||||
}
|
||||
|
||||
public void NavigateToCommitDelayed(string sha)
|
||||
{
|
||||
_navigateToCommitDelayed = sha;
|
||||
}
|
||||
|
||||
public void NavigateToCurrentHead()
|
||||
{
|
||||
if (_currentBranch != null)
|
||||
NavigateToCommit(_currentBranch.Head);
|
||||
}
|
||||
|
||||
public void NavigateToBranchDelayed(string branch)
|
||||
{
|
||||
_navigateToBranchDelayed = branch;
|
||||
}
|
||||
|
||||
public void ClearHistoriesFilter()
|
||||
{
|
||||
_settings.HistoriesFilters.Clear();
|
||||
|
@ -1189,15 +1189,11 @@ namespace SourceGit.ViewModels
|
|||
|
||||
BisectState = _histories.UpdateBisectInfo();
|
||||
|
||||
if (!string.IsNullOrEmpty(_navigateToBranchDelayed))
|
||||
{
|
||||
var branch = _branches.Find(x => x.FullName == _navigateToBranchDelayed);
|
||||
if (branch != null)
|
||||
NavigateToCommit(branch.Head);
|
||||
}
|
||||
if (!string.IsNullOrEmpty(_navigateToCommitDelayed))
|
||||
NavigateToCommit(_navigateToCommitDelayed);
|
||||
}
|
||||
|
||||
_navigateToBranchDelayed = string.Empty;
|
||||
_navigateToCommitDelayed = string.Empty;
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -2937,6 +2933,6 @@ namespace SourceGit.ViewModels
|
|||
private Models.BisectState _bisectState = Models.BisectState.None;
|
||||
private bool _isBisectCommandRunning = false;
|
||||
|
||||
private string _navigateToBranchDelayed = string.Empty;
|
||||
private string _navigateToCommitDelayed = string.Empty;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue