Compare commits

..

No commits in common. "3dcb32aec98cddce317314b9909980bf57310184" and "9d3a87469ff0236bdff60f554d33c534646ed120" have entirely different histories.

4 changed files with 38 additions and 50 deletions

View file

@ -1,5 +1,4 @@
using System; using System.Threading.Tasks;
using System.Threading.Tasks;
namespace SourceGit.ViewModels namespace SourceGit.ViewModels
{ {
@ -8,11 +7,13 @@ namespace SourceGit.ViewModels
public string Source public string Source
{ {
get; get;
private set;
} }
public string Into public string Into
{ {
get; get;
private set;
} }
public Models.MergeMode SelectedMode public Models.MergeMode SelectedMode
@ -26,7 +27,7 @@ namespace SourceGit.ViewModels
_repo = repo; _repo = repo;
Source = source; Source = source;
Into = into; Into = into;
SelectedMode = AutoSelectMergeMode(); SelectedMode = Models.MergeMode.Supported[0];
View = new Views.Merge() { DataContext = this }; View = new Views.Merge() { DataContext = this };
} }
@ -43,21 +44,6 @@ namespace SourceGit.ViewModels
}); });
} }
private Models.MergeMode AutoSelectMergeMode()
{
var config = new Commands.Config(_repo.FullPath).Get($"branch.{Into}.mergeoptions");
if (string.IsNullOrEmpty(config))
return Models.MergeMode.Supported[0];
if (config.Equals("--no-ff", StringComparison.Ordinal))
return Models.MergeMode.Supported[1];
if (config.Equals("--squash", StringComparison.Ordinal))
return Models.MergeMode.Supported[2];
if (config.Equals("--no-commit", StringComparison.Ordinal) || config.Equals("--no-ff --no-commit", StringComparison.Ordinal))
return Models.MergeMode.Supported[3];
return Models.MergeMode.Supported[0];
}
private readonly Repository _repo = null; private readonly Repository _repo = null;
} }
} }

View file

@ -26,6 +26,7 @@ namespace SourceGit.ViewModels
public List<Models.Branch> LocalBranches public List<Models.Branch> LocalBranches
{ {
get; get;
private set;
} }
public List<Models.Remote> Remotes public List<Models.Remote> Remotes
@ -156,7 +157,7 @@ namespace SourceGit.ViewModels
{ {
_repo.SetWatcherEnabled(false); _repo.SetWatcherEnabled(false);
var remoteBranchName = _selectedRemoteBranch.Name; var remoteBranchName = _selectedRemoteBranch.Name.Replace(" (new)", "");
ProgressDescription = $"Push {_selectedLocalBranch.Name} -> {_selectedRemote.Name}/{remoteBranchName} ..."; ProgressDescription = $"Push {_selectedLocalBranch.Name} -> {_selectedRemote.Name}/{remoteBranchName} ...";
return Task.Run(() => return Task.Run(() =>
@ -186,7 +187,7 @@ namespace SourceGit.ViewModels
branches.Add(branch); branches.Add(branch);
} }
// If selected local branch has upstream. Try to find it in current remote branches. // If selected local branch has upstream branch. Try to find it in current remote branches.
if (!string.IsNullOrEmpty(_selectedLocalBranch.Upstream)) if (!string.IsNullOrEmpty(_selectedLocalBranch.Upstream))
{ {
foreach (var branch in branches) foreach (var branch in branches)
@ -200,7 +201,7 @@ namespace SourceGit.ViewModels
} }
} }
// Try to find a remote branch with the same name of selected local branch. // Find best remote branch by name.
foreach (var branch in branches) foreach (var branch in branches)
{ {
if (_selectedLocalBranch.Name == branch.Name) if (_selectedLocalBranch.Name == branch.Name)
@ -214,7 +215,7 @@ namespace SourceGit.ViewModels
// Add a fake new branch. // Add a fake new branch.
var fake = new Models.Branch() var fake = new Models.Branch()
{ {
Name = _selectedLocalBranch.Name, Name = $"{_selectedLocalBranch.Name} (new)",
Remote = _selectedRemote.Name, Remote = _selectedRemote.Name,
}; };
branches.Add(fake); branches.Add(fake);
@ -225,7 +226,7 @@ namespace SourceGit.ViewModels
private readonly Repository _repo = null; private readonly Repository _repo = null;
private Models.Branch _selectedLocalBranch = null; private Models.Branch _selectedLocalBranch = null;
private Models.Remote _selectedRemote = null; private Models.Remote _selectedRemote = null;
private List<Models.Branch> _remoteBranches = []; private List<Models.Branch> _remoteBranches = new List<Models.Branch>();
private Models.Branch _selectedRemoteBranch = null; private Models.Branch _selectedRemoteBranch = null;
private bool _isSetTrackOptionVisible = false; private bool _isSetTrackOptionVisible = false;
} }

View file

@ -12,19 +12,10 @@
Classes="bold" Classes="bold"
Text="{DynamicResource Text.Discard}"/> Text="{DynamicResource Text.Discard}"/>
<StackPanel Margin="0,6,0,0" Orientation="Horizontal">
<Path Width="14" Height="14"
Data="{StaticResource Icons.Error}"
Fill="DarkOrange"/>
<TextBlock Margin="4,0,0,0"
Text="{DynamicResource Text.Discard.Warning}"
Foreground="{DynamicResource Brush.FG2}"/>
</StackPanel>
<ContentControl Margin="0,16,0,8" Content="{Binding Mode}"> <ContentControl Margin="0,16,0,8" Content="{Binding Mode}">
<ContentControl.DataTemplates> <ContentControl.DataTemplates>
<DataTemplate DataType="vm:DiscardAllMode"> <DataTemplate DataType="vm:DiscardAllMode">
<Grid RowDefinitions="32,32" ColumnDefinitions="120,*"> <Grid RowDefinitions="Auto,Auto,36" ColumnDefinitions="120,*">
<TextBlock Grid.Row="0" Grid.Column="0" <TextBlock Grid.Row="0" Grid.Column="0"
Margin="0,0,8,0" Margin="0,0,8,0"
HorizontalAlignment="Right" HorizontalAlignment="Right"
@ -35,33 +26,51 @@
<CheckBox Grid.Row="1" Grid.Column="1" <CheckBox Grid.Row="1" Grid.Column="1"
Content="{DynamicResource Text.Discard.IncludeIgnored}" Content="{DynamicResource Text.Discard.IncludeIgnored}"
IsChecked="{Binding IncludeIgnored, Mode=TwoWay}"/> IsChecked="{Binding IncludeIgnored, Mode=TwoWay}"/>
<StackPanel Grid.Row="2" Grid.Column="1" Orientation="Horizontal">
<Path Width="14" Height="14"
Data="{StaticResource Icons.Error}"
Fill="DarkOrange"/>
<TextBlock Margin="4,0,0,0"
Text="{DynamicResource Text.Discard.Warning}"
Foreground="{DynamicResource Brush.FG2}"/>
</StackPanel>
</Grid> </Grid>
</DataTemplate> </DataTemplate>
<DataTemplate DataType="vm:DiscardSingleFile"> <DataTemplate DataType="vm:DiscardSingleFile">
<Grid Height="32" ColumnDefinitions="120,*"> <Grid RowDefinitions="32,32" ColumnDefinitions="120,*">
<TextBlock Grid.Column="0" <TextBlock Grid.Row="0" Grid.Column="0"
Margin="0,0,8,0" Margin="0,0,8,0"
HorizontalAlignment="Right" HorizontalAlignment="Right"
Text="{DynamicResource Text.Discard.Changes}"/> Text="{DynamicResource Text.Discard.Changes}"/>
<StackPanel Grid.Column="1" Orientation="Horizontal"> <StackPanel Grid.Row="0" Grid.Column="1" Orientation="Horizontal">
<Path Width="12" Height="12" Data="{StaticResource Icons.File}"/> <Path Width="12" Height="12" Data="{StaticResource Icons.File}"/>
<TextBlock Text="{Binding Path}" Margin="4,0,0,0"/> <TextBlock Text="{Binding Path}" Margin="4,0,0,0"/>
</StackPanel> </StackPanel>
<TextBlock Grid.Row="1" Grid.Column="1"
VerticalAlignment="Center"
Text="{DynamicResource Text.Discard.Warning}"
Foreground="{DynamicResource Brush.FG2}"/>
</Grid> </Grid>
</DataTemplate> </DataTemplate>
<DataTemplate DataType="vm:DiscardMultipleFiles"> <DataTemplate DataType="vm:DiscardMultipleFiles">
<Grid Height="32" ColumnDefinitions="120,*"> <Grid RowDefinitions="32,32" ColumnDefinitions="120,*">
<TextBlock Grid.Column="0" <TextBlock Grid.Row="0" Grid.Column="0"
Margin="0,0,8,0" Margin="0,0,8,0"
HorizontalAlignment="Right" HorizontalAlignment="Right"
Text="{DynamicResource Text.Discard.Changes}"/> Text="{DynamicResource Text.Discard.Changes}"/>
<StackPanel Grid.Column="1" Orientation="Horizontal"> <StackPanel Grid.Row="0" Grid.Column="1" Orientation="Horizontal">
<Path Width="12" Height="12" Data="{StaticResource Icons.File}"/> <Path Width="12" Height="12" Data="{StaticResource Icons.File}"/>
<TextBlock Text="{Binding Count, Converter={x:Static c:StringConverters.FormatByResourceKey}, ConverterParameter='Discard.Total'}" <TextBlock Text="{Binding Count, Converter={x:Static c:StringConverters.FormatByResourceKey}, ConverterParameter='Discard.Total'}" Margin="4,0,0,0"/>
Margin="4,0,0,0"/>
</StackPanel> </StackPanel>
<TextBlock Grid.Row="1" Grid.Column="1"
VerticalAlignment="Center"
Text="{DynamicResource Text.Discard.Warning}"
Foreground="{DynamicResource Brush.FG2}"/>
</Grid> </Grid>
</DataTemplate> </DataTemplate>
</ContentControl.DataTemplates> </ContentControl.DataTemplates>

View file

@ -65,15 +65,7 @@
<DataTemplate x:DataType="{x:Type m:Branch}"> <DataTemplate x:DataType="{x:Type m:Branch}">
<StackPanel Orientation="Horizontal" Height="20" VerticalAlignment="Center"> <StackPanel Orientation="Horizontal" Height="20" VerticalAlignment="Center">
<Path Margin="0,0,8,0" Width="14" Height="14" Fill="{DynamicResource Brush.FG1}" Data="{StaticResource Icons.Branch}"/> <Path Margin="0,0,8,0" Width="14" Height="14" Fill="{DynamicResource Brush.FG1}" Data="{StaticResource Icons.Branch}"/>
<TextBlock Text="{Binding Name}" VerticalAlignment="Center"/> <TextBlock Text="{Binding Name}"/>
<Border Height="14"
CornerRadius="7"
Margin="4,0,0,0" Padding="6,0"
VerticalAlignment="Center"
Background="Green"
IsVisible="{Binding Head, Converter={x:Static StringConverters.IsNullOrEmpty}}">
<TextBlock Text="NEW" FontSize="9" FontFamily="{DynamicResource Fonts.Monospace}" Foreground="White" VerticalAlignment="Center"/>
</Border>
</StackPanel> </StackPanel>
</DataTemplate> </DataTemplate>
</ComboBox.ItemTemplate> </ComboBox.ItemTemplate>