mirror of
https://github.com/sourcegit-scm/sourcegit
synced 2025-06-05 11:05:00 +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();
|
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(() =>
|
CallUIThread(() =>
|
||||||
{
|
{
|
||||||
_repo.NavigateToBranchDelayed(_repo.CurrentBranch?.Upstream);
|
if (!string.IsNullOrEmpty(upstreamHead))
|
||||||
|
_repo.NavigateToCommitDelayed(upstreamHead);
|
||||||
|
|
||||||
_repo.MarkFetched();
|
_repo.MarkFetched();
|
||||||
_repo.SetWatcherEnabled(true);
|
_repo.SetWatcherEnabled(true);
|
||||||
});
|
});
|
||||||
|
|
|
@ -33,11 +33,14 @@ namespace SourceGit.ViewModels
|
||||||
{
|
{
|
||||||
new Commands.Fetch(_repo.FullPath, Local, Upstream).Use(log).Exec();
|
new Commands.Fetch(_repo.FullPath, Local, Upstream).Use(log).Exec();
|
||||||
log.Complete();
|
log.Complete();
|
||||||
|
|
||||||
|
var changedLocalBranchHead = new Commands.QueryRevisionByRefName(_repo.FullPath, Local.Name).Result();
|
||||||
CallUIThread(() =>
|
CallUIThread(() =>
|
||||||
{
|
{
|
||||||
_repo.NavigateToBranchDelayed(Upstream.FullName);
|
_repo.NavigateToCommitDelayed(changedLocalBranchHead);
|
||||||
_repo.SetWatcherEnabled(true);
|
_repo.SetWatcherEnabled(true);
|
||||||
});
|
});
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -64,9 +64,10 @@ namespace SourceGit.ViewModels
|
||||||
new Commands.Merge(_repo.FullPath, _sourceName, Mode.Arg).Use(log).Exec();
|
new Commands.Merge(_repo.FullPath, _sourceName, Mode.Arg).Use(log).Exec();
|
||||||
log.Complete();
|
log.Complete();
|
||||||
|
|
||||||
|
var head = new Commands.QueryRevisionByRefName(_repo.FullPath, "HEAD").Result();
|
||||||
CallUIThread(() =>
|
CallUIThread(() =>
|
||||||
{
|
{
|
||||||
_repo.NavigateToBranchDelayed(_repo.CurrentBranch?.FullName);
|
_repo.NavigateToCommitDelayed(head);
|
||||||
_repo.SetWatcherEnabled(true);
|
_repo.SetWatcherEnabled(true);
|
||||||
});
|
});
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -164,9 +164,10 @@ namespace SourceGit.ViewModels
|
||||||
|
|
||||||
log.Complete();
|
log.Complete();
|
||||||
|
|
||||||
|
var head = new Commands.QueryRevisionByRefName(_repo.FullPath, "HEAD").Result();
|
||||||
CallUIThread(() =>
|
CallUIThread(() =>
|
||||||
{
|
{
|
||||||
_repo.NavigateToBranchDelayed(_repo.CurrentBranch?.FullName);
|
_repo.NavigateToCommitDelayed(head);
|
||||||
_repo.SetWatcherEnabled(true);
|
_repo.SetWatcherEnabled(true);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -922,17 +922,17 @@ namespace SourceGit.ViewModels
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void NavigateToCommitDelayed(string sha)
|
||||||
|
{
|
||||||
|
_navigateToCommitDelayed = sha;
|
||||||
|
}
|
||||||
|
|
||||||
public void NavigateToCurrentHead()
|
public void NavigateToCurrentHead()
|
||||||
{
|
{
|
||||||
if (_currentBranch != null)
|
if (_currentBranch != null)
|
||||||
NavigateToCommit(_currentBranch.Head);
|
NavigateToCommit(_currentBranch.Head);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void NavigateToBranchDelayed(string branch)
|
|
||||||
{
|
|
||||||
_navigateToBranchDelayed = branch;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void ClearHistoriesFilter()
|
public void ClearHistoriesFilter()
|
||||||
{
|
{
|
||||||
_settings.HistoriesFilters.Clear();
|
_settings.HistoriesFilters.Clear();
|
||||||
|
@ -1189,15 +1189,11 @@ namespace SourceGit.ViewModels
|
||||||
|
|
||||||
BisectState = _histories.UpdateBisectInfo();
|
BisectState = _histories.UpdateBisectInfo();
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(_navigateToBranchDelayed))
|
if (!string.IsNullOrEmpty(_navigateToCommitDelayed))
|
||||||
{
|
NavigateToCommit(_navigateToCommitDelayed);
|
||||||
var branch = _branches.Find(x => x.FullName == _navigateToBranchDelayed);
|
|
||||||
if (branch != null)
|
|
||||||
NavigateToCommit(branch.Head);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_navigateToBranchDelayed = string.Empty;
|
_navigateToCommitDelayed = string.Empty;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2937,6 +2933,6 @@ namespace SourceGit.ViewModels
|
||||||
private Models.BisectState _bisectState = Models.BisectState.None;
|
private Models.BisectState _bisectState = Models.BisectState.None;
|
||||||
private bool _isBisectCommandRunning = false;
|
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