enhance: show friendly name instead of --theirs or --mine while resolving conflicts

This commit is contained in:
leo 2024-12-10 16:44:37 +08:00
parent c8cdda3477
commit feb7e96b2c
No known key found for this signature in database
5 changed files with 45 additions and 0 deletions

View file

@ -81,6 +81,12 @@ namespace SourceGit.ViewModels
public class RebaseInProgress : InProgressContext
{
public string HeadName
{
get;
private set;
}
public Models.Commit StoppedAt
{
get;
@ -93,6 +99,10 @@ namespace SourceGit.ViewModels
var stoppedSHA = File.ReadAllText(Path.Combine(repo.GitDir, "rebase-merge", "stopped-sha")).Trim();
StoppedAt = new Commands.QuerySingleCommit(repo.FullPath, stoppedSHA).Result();
HeadName = File.ReadAllText(Path.Combine(repo.GitDir, "rebase-merge", "head-name")).Trim();
if (HeadName.StartsWith("refs/heads/"))
HeadName = HeadName.Substring(11);
}
public override bool Continue()

View file

@ -569,6 +569,22 @@ namespace SourceGit.ViewModels
e.Handled = true;
};
if (_inProgressContext is RebaseInProgress rebase)
{
useTheirs.Header = App.Text("FileCM.ResolveUsing", rebase.HeadName);
useMine.Header = App.Text("FileCM.ResolveUsing", rebase.StoppedAt.SHA.Substring(0, 10));
}
else if (_inProgressContext is CherryPickInProgress cherryPick)
{
useTheirs.Header = App.Text("FileCM.ResolveUsing", cherryPick.Head.SHA.Substring(0, 10));
useMine.Header = App.Text("FileCM.ResolveUsing", _repo.CurrentBranch.Name);
}
else if (_inProgressContext is MergeInProgress merge)
{
useTheirs.Header = App.Text("FileCM.ResolveUsing", merge.SourceName);
useMine.Header = App.Text("FileCM.ResolveUsing", _repo.CurrentBranch.Name);
}
menu.Items.Add(useTheirs);
menu.Items.Add(useMine);
menu.Items.Add(openMerger);
@ -892,6 +908,22 @@ namespace SourceGit.ViewModels
e.Handled = true;
};
if (_inProgressContext is RebaseInProgress rebase)
{
useTheirs.Header = App.Text("FileCM.ResolveUsing", rebase.HeadName);
useMine.Header = App.Text("FileCM.ResolveUsing", rebase.StoppedAt.SHA.Substring(0, 10));
}
else if (_inProgressContext is CherryPickInProgress cherryPick)
{
useTheirs.Header = App.Text("FileCM.ResolveUsing", cherryPick.Head.SHA.Substring(0, 10));
useMine.Header = App.Text("FileCM.ResolveUsing", _repo.CurrentBranch.Name);
}
else if (_inProgressContext is MergeInProgress merge)
{
useTheirs.Header = App.Text("FileCM.ResolveUsing", merge.SourceName);
useMine.Header = App.Text("FileCM.ResolveUsing", _repo.CurrentBranch.Name);
}
menu.Items.Add(useTheirs);
menu.Items.Add(useMine);
return menu;