feature: supports to customize merge message (--edit) (#1421)

Signed-off-by: leo <longshuang@msn.cn>
This commit is contained in:
leo 2025-06-17 15:07:55 +08:00
parent a8da8c09ac
commit 90310a704d
No known key found for this signature in database
6 changed files with 28 additions and 4 deletions

View file

@ -5,11 +5,20 @@ namespace SourceGit.Commands
{
public class Merge : Command
{
public Merge(string repo, string source, string mode)
public Merge(string repo, string source, string mode, bool edit)
{
WorkingDirectory = repo;
Context = repo;
Args = $"merge --progress {source} {mode}";
Editor = EditorType.CoreEditor;
var builder = new StringBuilder();
builder.Append("merge --progress ");
builder.Append(edit ? "--edit " : "--no-edit ");
builder.Append(source);
builder.Append(' ');
builder.Append(mode);
Args = builder.ToString();
}
public Merge(string repo, List<string> targets, bool autoCommit, string strategy)

View file

@ -442,6 +442,7 @@
<x:String x:Key="Text.Launcher.Workspaces" xml:space="preserve">Workspaces</x:String>
<x:String x:Key="Text.Launcher.Pages" xml:space="preserve">Pages</x:String>
<x:String x:Key="Text.Merge" xml:space="preserve">Merge Branch</x:String>
<x:String x:Key="Text.Merge.Edit" xml:space="preserve">Customize merge message</x:String>
<x:String x:Key="Text.Merge.Into" xml:space="preserve">Into:</x:String>
<x:String x:Key="Text.Merge.Mode" xml:space="preserve">Merge Option:</x:String>
<x:String x:Key="Text.Merge.Source" xml:space="preserve">Source:</x:String>

View file

@ -446,6 +446,7 @@
<x:String x:Key="Text.Launcher.Workspaces" xml:space="preserve">工作区列表</x:String>
<x:String x:Key="Text.Launcher.Pages" xml:space="preserve">页面列表</x:String>
<x:String x:Key="Text.Merge" xml:space="preserve">合并分支</x:String>
<x:String x:Key="Text.Merge.Edit" xml:space="preserve">编辑合并信息</x:String>
<x:String x:Key="Text.Merge.Into" xml:space="preserve">目标分支 </x:String>
<x:String x:Key="Text.Merge.Mode" xml:space="preserve">合并方式 </x:String>
<x:String x:Key="Text.Merge.Source" xml:space="preserve">合并目标 </x:String>

View file

@ -446,6 +446,7 @@
<x:String x:Key="Text.Launcher.Workspaces" xml:space="preserve">工作區列表</x:String>
<x:String x:Key="Text.Launcher.Pages" xml:space="preserve">頁面列表</x:String>
<x:String x:Key="Text.Merge" xml:space="preserve">合併分支</x:String>
<x:String x:Key="Text.Merge.Edit" xml:space="preserve">編輯合併訊息</x:String>
<x:String x:Key="Text.Merge.Into" xml:space="preserve">目標分支:</x:String>
<x:String x:Key="Text.Merge.Mode" xml:space="preserve">合併方式:</x:String>
<x:String x:Key="Text.Merge.Source" xml:space="preserve">合併來源:</x:String>

View file

@ -21,6 +21,12 @@ namespace SourceGit.ViewModels
set;
}
public bool Edit
{
get;
set;
} = false;
public Merge(Repository repo, Models.Branch source, string into, bool forceFastForward)
{
_repo = repo;
@ -62,7 +68,7 @@ namespace SourceGit.ViewModels
return Task.Run(() =>
{
new Commands.Merge(_repo.FullPath, _sourceName, Mode.Arg).Use(log).Exec();
new Commands.Merge(_repo.FullPath, _sourceName, Mode.Arg, Edit).Use(log).Exec();
log.Complete();
var head = new Commands.QueryRevisionByRefName(_repo.FullPath, "HEAD").Result();

View file

@ -12,7 +12,7 @@
<TextBlock FontSize="18"
Classes="bold"
Text="{DynamicResource Text.Merge}"/>
<Grid Margin="0,16,0,0" RowDefinitions="32,32,32" ColumnDefinitions="130,*">
<Grid Margin="0,16,0,0" RowDefinitions="32,32,32,32" ColumnDefinitions="130,*">
<TextBlock Grid.Row="0" Grid.Column="0"
HorizontalAlignment="Right" VerticalAlignment="Center"
Margin="0,0,8,0"
@ -87,6 +87,12 @@
</DataTemplate>
</ComboBox.SelectionBoxItemTemplate>
</ComboBox>
<CheckBox Grid.Row="3" Grid.Column="1"
Height="32"
Content="{DynamicResource Text.Merge.Edit}"
IsChecked="{Binding Edit, Mode=TwoWay}"
ToolTip.Tip="--edit"/>
</Grid>
</StackPanel>
</UserControl>