Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion src/Commands/Merge.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ namespace SourceGit.Commands
{
public class Merge : Command
{
public Merge(string repo, string source, string mode, bool edit)
public Merge(string repo, string source, string mode, bool edit, string strategy)
{
WorkingDirectory = repo;
Context = repo;
Expand All @@ -14,6 +14,8 @@ public Merge(string repo, string source, string mode, bool edit)
var builder = new StringBuilder();
builder.Append("merge --progress ");
builder.Append(edit ? "--edit " : "--no-edit ");
if (!string.IsNullOrEmpty(strategy))
builder.Append("--strategy=").Append(strategy).Append(' ');
builder.Append(source);
builder.Append(' ');
builder.Append(mode);
Expand Down
1 change: 1 addition & 0 deletions src/Resources/Locales/de_DE.axaml
Original file line number Diff line number Diff line change
Expand Up @@ -529,6 +529,7 @@
<x:String x:Key="Text.Merge.Edit" xml:space="preserve">Merge-Nachricht anpassen</x:String>
<x:String x:Key="Text.Merge.Into" xml:space="preserve">Ziel-Branch:</x:String>
<x:String x:Key="Text.Merge.Mode" xml:space="preserve">Merge Option:</x:String>
<x:String x:Key="Text.Merge.Strategy" xml:space="preserve">Strategie:</x:String>
<x:String x:Key="Text.Merge.Source" xml:space="preserve">Quelle:</x:String>
<x:String x:Key="Text.MergeMultiple" xml:space="preserve">Merge (mehrere)</x:String>
<x:String x:Key="Text.MergeMultiple.CommitChanges" xml:space="preserve">Alle Änderungen committen</x:String>
Expand Down
1 change: 1 addition & 0 deletions src/Resources/Locales/en_US.axaml
Original file line number Diff line number Diff line change
Expand Up @@ -524,6 +524,7 @@
<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.Strategy" xml:space="preserve">Strategy:</x:String>
<x:String x:Key="Text.Merge.Source" xml:space="preserve">Source:</x:String>
<x:String x:Key="Text.MergeMultiple" xml:space="preserve">Merge (Multiple)</x:String>
<x:String x:Key="Text.MergeMultiple.CommitChanges" xml:space="preserve">Commit all changes</x:String>
Expand Down
1 change: 1 addition & 0 deletions src/Resources/Locales/es_ES.axaml
Original file line number Diff line number Diff line change
Expand Up @@ -528,6 +528,7 @@
<x:String x:Key="Text.Merge.Edit" xml:space="preserve">Personalizar mensaje de merge</x:String>
<x:String x:Key="Text.Merge.Into" xml:space="preserve">En:</x:String>
<x:String x:Key="Text.Merge.Mode" xml:space="preserve">Opción de Merge:</x:String>
<x:String x:Key="Text.Merge.Strategy" xml:space="preserve">Estrategia:</x:String>
<x:String x:Key="Text.Merge.Source" xml:space="preserve">Rama Fuente:</x:String>
<x:String x:Key="Text.MergeMultiple" xml:space="preserve">Merge (Multiplo)</x:String>
<x:String x:Key="Text.MergeMultiple.CommitChanges" xml:space="preserve">Commit todos los cambios</x:String>
Expand Down
1 change: 1 addition & 0 deletions src/Resources/Locales/fr_FR.axaml
Original file line number Diff line number Diff line change
Expand Up @@ -526,6 +526,7 @@
<x:String x:Key="Text.Merge.Edit" xml:space="preserve">Personnaliser le message de fusion</x:String>
<x:String x:Key="Text.Merge.Into" xml:space="preserve">Dans :</x:String>
<x:String x:Key="Text.Merge.Mode" xml:space="preserve">Option de merge:</x:String>
<x:String x:Key="Text.Merge.Strategy" xml:space="preserve">Stratégie:</x:String>
<x:String x:Key="Text.Merge.Source" xml:space="preserve">Source:</x:String>
<x:String x:Key="Text.MergeMultiple" xml:space="preserve">Fusionner (Plusieurs)</x:String>
<x:String x:Key="Text.MergeMultiple.CommitChanges" xml:space="preserve">Commit tous les changement</x:String>
Expand Down
1 change: 1 addition & 0 deletions src/Resources/Locales/id_ID.axaml
Original file line number Diff line number Diff line change
Expand Up @@ -503,6 +503,7 @@
<x:String x:Key="Text.Merge.Edit" xml:space="preserve">Sesuaikan pesan merge</x:String>
<x:String x:Key="Text.Merge.Into" xml:space="preserve">Ke:</x:String>
<x:String x:Key="Text.Merge.Mode" xml:space="preserve">Opsi Merge:</x:String>
<x:String x:Key="Text.Merge.Strategy" xml:space="preserve">Strategi:</x:String>
<x:String x:Key="Text.Merge.Source" xml:space="preserve">Sumber:</x:String>
<x:String x:Key="Text.MergeMultiple" xml:space="preserve">Merge (Beberapa)</x:String>
<x:String x:Key="Text.MergeMultiple.CommitChanges" xml:space="preserve">Commit semua perubahan</x:String>
Expand Down
1 change: 1 addition & 0 deletions src/Resources/Locales/it_IT.axaml
Original file line number Diff line number Diff line change
Expand Up @@ -490,6 +490,7 @@
<x:String x:Key="Text.Merge.Edit" xml:space="preserve">Personalizza messaggio di merge</x:String>
<x:String x:Key="Text.Merge.Into" xml:space="preserve">In:</x:String>
<x:String x:Key="Text.Merge.Mode" xml:space="preserve">Opzione di Unione:</x:String>
<x:String x:Key="Text.Merge.Strategy" xml:space="preserve">Strategia:</x:String>
<x:String x:Key="Text.Merge.Source" xml:space="preserve">Sorgente:</x:String>
<x:String x:Key="Text.MergeMultiple" xml:space="preserve">Unione (multipla)</x:String>
<x:String x:Key="Text.MergeMultiple.CommitChanges" xml:space="preserve">Commit di tutte le modifiche</x:String>
Expand Down
1 change: 1 addition & 0 deletions src/Resources/Locales/ja_JP.axaml
Original file line number Diff line number Diff line change
Expand Up @@ -386,6 +386,7 @@
<x:String x:Key="Text.Merge" 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.Strategy" xml:space="preserve">マージ戦略:</x:String>
<x:String x:Key="Text.Merge.Source" xml:space="preserve">ソースブランチ:</x:String>
<x:String x:Key="Text.MergeMultiple" xml:space="preserve">マージ (複数)</x:String>
<x:String x:Key="Text.MergeMultiple.CommitChanges" xml:space="preserve">すべての変更をコミット</x:String>
Expand Down
1 change: 1 addition & 0 deletions src/Resources/Locales/ko_KR.axaml
Original file line number Diff line number Diff line change
Expand Up @@ -505,6 +505,7 @@
<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.Strategy" xml:space="preserve">전략:</x:String>
<x:String x:Key="Text.Merge.Source" xml:space="preserve">소스:</x:String>
<x:String x:Key="Text.MergeMultiple" xml:space="preserve">병합 (다중)</x:String>
<x:String x:Key="Text.MergeMultiple.CommitChanges" xml:space="preserve">모든 변경 사항 커밋</x:String>
Expand Down
1 change: 1 addition & 0 deletions src/Resources/Locales/pt_BR.axaml
Original file line number Diff line number Diff line change
Expand Up @@ -357,6 +357,7 @@
<x:String x:Key="Text.Merge" xml:space="preserve">Mesclar Ramo</x:String>
<x:String x:Key="Text.Merge.Into" xml:space="preserve">Para:</x:String>
<x:String x:Key="Text.Merge.Mode" xml:space="preserve">Opção de Mesclagem:</x:String>
<x:String x:Key="Text.Merge.Strategy" xml:space="preserve">Estratégia:</x:String>
<x:String x:Key="Text.MoveRepositoryNode" xml:space="preserve">Mover nó do repositório</x:String>
<x:String x:Key="Text.MoveRepositoryNode.Target" xml:space="preserve">Selecionar nó pai para:</x:String>
<x:String x:Key="Text.Name" xml:space="preserve">Nome:</x:String>
Expand Down
1 change: 1 addition & 0 deletions src/Resources/Locales/ru_RU.axaml
Original file line number Diff line number Diff line change
Expand Up @@ -525,6 +525,7 @@
<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.Strategy" xml:space="preserve">Стратегия:</x:String>
<x:String x:Key="Text.Merge.Source" xml:space="preserve">Источник:</x:String>
<x:String x:Key="Text.MergeMultiple" xml:space="preserve">Влить несколько веток</x:String>
<x:String x:Key="Text.MergeMultiple.CommitChanges" xml:space="preserve">Зафиксировать все изменения</x:String>
Expand Down
1 change: 1 addition & 0 deletions src/Resources/Locales/ta_IN.axaml
Original file line number Diff line number Diff line change
Expand Up @@ -386,6 +386,7 @@
<x:String x:Key="Text.Merge" xml:space="preserve">கிளையை ஒன்றிணை</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">இணைப்பு விருப்பம்:</x:String>
<x:String x:Key="Text.Merge.Strategy" xml:space="preserve">சூழ்ச்சிமுறை:</x:String>
<x:String x:Key="Text.Merge.Source" xml:space="preserve">இதனுள்:</x:String>
<x:String x:Key="Text.MergeMultiple" xml:space="preserve">ஒன்றிணை (பல)</x:String>
<x:String x:Key="Text.MergeMultiple.CommitChanges" xml:space="preserve">அனைத்து மாற்றங்களையும் உறுதிமொழி</x:String>
Expand Down
1 change: 1 addition & 0 deletions src/Resources/Locales/uk_UA.axaml
Original file line number Diff line number Diff line change
Expand Up @@ -391,6 +391,7 @@
<x:String x:Key="Text.Merge" 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.Strategy" xml:space="preserve">Стратегія:</x:String>
<x:String x:Key="Text.Merge.Source" xml:space="preserve">Джерело:</x:String>
<x:String x:Key="Text.MergeMultiple" xml:space="preserve">Злиття (Кілька)</x:String>
<x:String x:Key="Text.MergeMultiple.CommitChanges" xml:space="preserve">Закомітити всі зміни</x:String>
Expand Down
1 change: 1 addition & 0 deletions src/Resources/Locales/zh_CN.axaml
Original file line number Diff line number Diff line change
Expand Up @@ -528,6 +528,7 @@
<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.Strategy" xml:space="preserve">合并策略 :</x:String>
<x:String x:Key="Text.Merge.Source" xml:space="preserve">合并目标 :</x:String>
<x:String x:Key="Text.MergeMultiple" xml:space="preserve">合并(多目标)</x:String>
<x:String x:Key="Text.MergeMultiple.CommitChanges" xml:space="preserve">提交变化</x:String>
Expand Down
1 change: 1 addition & 0 deletions src/Resources/Locales/zh_TW.axaml
Original file line number Diff line number Diff line change
Expand Up @@ -528,6 +528,7 @@
<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.Strategy" xml:space="preserve">合併策略:</x:String>
<x:String x:Key="Text.Merge.Source" xml:space="preserve">合併來源:</x:String>
<x:String x:Key="Text.MergeMultiple" xml:space="preserve">合併 (多個來源)</x:String>
<x:String x:Key="Text.MergeMultiple.CommitChanges" xml:space="preserve">提交變更</x:String>
Expand Down
13 changes: 12 additions & 1 deletion src/ViewModels/Merge.cs
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,12 @@ public Models.MergeMode Mode
set;
}

public Models.MergeStrategy Strategy
{
get;
set;
} = Models.MergeStrategy.ForMultiple[0];

public bool Edit
{
get;
Expand Down Expand Up @@ -65,7 +71,12 @@ public override async Task<bool> Sure()
var log = _repo.CreateLog($"Merging '{_sourceName}' into '{Into}'");
Use(log);

await new Commands.Merge(_repo.FullPath, _sourceName, Mode.Arg, Edit)
await new Commands.Merge(
_repo.FullPath,
_sourceName,
Mode.Arg,
Edit,
Strategy?.Arg ?? string.Empty)
.Use(log)
.ExecAsync();

Expand Down
23 changes: 21 additions & 2 deletions src/Views/Merge.axaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
<TextBlock FontSize="18"
Classes="bold"
Text="{DynamicResource Text.Merge}"/>
<Grid Margin="0,16,0,0" RowDefinitions="32,32,32,32" ColumnDefinitions="130,*">
<Grid Margin="0,16,0,0" RowDefinitions="32,32,32,32,32" ColumnDefinitions="130,*">
<TextBlock Grid.Row="0" Grid.Column="0"
HorizontalAlignment="Right" VerticalAlignment="Center"
Margin="0,0,8,0"
Expand Down Expand Up @@ -88,7 +88,26 @@
</ComboBox.SelectionBoxItemTemplate>
</ComboBox>

<CheckBox Grid.Row="3" Grid.Column="1"
<TextBlock Grid.Row="3" Grid.Column="0"
HorizontalAlignment="Right" VerticalAlignment="Center"
Margin="0,0,8,0"
Text="{DynamicResource Text.Merge.Strategy}"/>
<ComboBox Grid.Row="3" Grid.Column="1"
Height="28" Padding="8,0"
VerticalAlignment="Center" HorizontalAlignment="Stretch"
ItemsSource="{Binding Source={x:Static m:MergeStrategy.ForMultiple}}"
SelectedItem="{Binding Strategy, Mode=TwoWay}">
<ComboBox.ItemTemplate>
<DataTemplate DataType="m:MergeStrategy">
<StackPanel Orientation="Horizontal" Height="20" VerticalAlignment="Center">
<TextBlock Text="{Binding Name}"/>
<TextBlock Text="{Binding Desc}" Margin="8,0,0,0" FontSize="11" Foreground="{DynamicResource Brush.FG2}"/>
</StackPanel>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>

<CheckBox Grid.Row="4" Grid.Column="1"
Height="32"
Content="{DynamicResource Text.Merge.Edit}"
IsChecked="{Binding Edit, Mode=TwoWay}"
Expand Down