mirror of
https://github.com/sourcegit-scm/sourcegit.git
synced 2024-12-23 20:47:25 -08:00
enhance: makes Create New Branch
option as the default selected mode for adding new worktree
This commit is contained in:
parent
db8e534a0a
commit
3e54ab0227
3 changed files with 30 additions and 29 deletions
|
@ -62,7 +62,7 @@ namespace SourceGit.Commands
|
|||
return worktrees;
|
||||
}
|
||||
|
||||
public bool Add(string fullpath, string name, string tracking, Action<string> outputHandler)
|
||||
public bool Add(string fullpath, string name, bool createNew, string tracking, Action<string> outputHandler)
|
||||
{
|
||||
Args = "worktree add ";
|
||||
|
||||
|
@ -70,7 +70,12 @@ namespace SourceGit.Commands
|
|||
Args += "--track ";
|
||||
|
||||
if (!string.IsNullOrEmpty(name))
|
||||
{
|
||||
if (createNew)
|
||||
Args += $"-b {name} ";
|
||||
else
|
||||
Args += $"-B {name} ";
|
||||
}
|
||||
|
||||
Args += $"\"{fullpath}\" ";
|
||||
|
||||
|
|
|
@ -15,17 +15,17 @@ namespace SourceGit.ViewModels
|
|||
set => SetProperty(ref _path, value);
|
||||
}
|
||||
|
||||
public bool UseExistingBranch
|
||||
public bool CreateNewBranch
|
||||
{
|
||||
get => _useExistingBranch;
|
||||
get => _createNewBranch;
|
||||
set
|
||||
{
|
||||
if (SetProperty(ref _useExistingBranch, value, true))
|
||||
if (SetProperty(ref _createNewBranch, value, true))
|
||||
{
|
||||
if (value)
|
||||
SelectedBranch = LocalBranches.Count > 0 ? LocalBranches[0] : string.Empty;
|
||||
else
|
||||
SelectedBranch = string.Empty;
|
||||
else
|
||||
SelectedBranch = LocalBranches.Count > 0 ? LocalBranches[0] : string.Empty;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -74,11 +74,6 @@ namespace SourceGit.ViewModels
|
|||
RemoteBranches.Add($"{branch.Remote}/{branch.Name}");
|
||||
}
|
||||
|
||||
if (LocalBranches.Count > 0)
|
||||
SelectedBranch = LocalBranches[0];
|
||||
else
|
||||
SelectedBranch = string.Empty;
|
||||
|
||||
if (RemoteBranches.Count > 0)
|
||||
SelectedTrackingBranch = RemoteBranches[0];
|
||||
else
|
||||
|
@ -114,11 +109,12 @@ namespace SourceGit.ViewModels
|
|||
_repo.SetWatcherEnabled(false);
|
||||
ProgressDescription = "Adding worktree ...";
|
||||
|
||||
var branchName = _selectedBranch;
|
||||
var tracking = _setTrackingBranch ? SelectedTrackingBranch : string.Empty;
|
||||
|
||||
return Task.Run(() =>
|
||||
{
|
||||
var succ = new Commands.Worktree(_repo.FullPath).Add(_path, _selectedBranch, tracking, SetProgressDescription);
|
||||
var succ = new Commands.Worktree(_repo.FullPath).Add(_path, branchName, _createNewBranch, tracking, SetProgressDescription);
|
||||
CallUIThread(() => _repo.SetWatcherEnabled(true));
|
||||
return succ;
|
||||
});
|
||||
|
@ -126,7 +122,7 @@ namespace SourceGit.ViewModels
|
|||
|
||||
private Repository _repo = null;
|
||||
private string _path = string.Empty;
|
||||
private bool _useExistingBranch = true;
|
||||
private bool _createNewBranch = true;
|
||||
private string _selectedBranch = string.Empty;
|
||||
private bool _setTrackingBranch = false;
|
||||
}
|
||||
|
|
|
@ -36,25 +36,32 @@
|
|||
Margin="0,0,8,0"
|
||||
Text="{DynamicResource Text.AddWorktree.WhatToCheckout}"/>
|
||||
<StackPanel Grid.Row="1" Grid.Column="1" Height="32" Orientation="Horizontal">
|
||||
<RadioButton Content="{DynamicResource Text.AddWorktree.WhatToCheckout.Existing}"
|
||||
GroupName="LocalChanges"
|
||||
IsChecked="{Binding UseExistingBranch, Mode=TwoWay}" />
|
||||
<RadioButton Content="{DynamicResource Text.AddWorktree.WhatToCheckout.CreateNew}"
|
||||
GroupName="LocalChanges"
|
||||
Margin="8,0,0,0" />
|
||||
GroupName="WhatToCheckout"
|
||||
IsChecked="{Binding CreateNewBranch, Mode=TwoWay}"/>
|
||||
<RadioButton Content="{DynamicResource Text.AddWorktree.WhatToCheckout.Existing}"
|
||||
GroupName="WhatToCheckout"
|
||||
Margin="8,0,0,0"/>
|
||||
</StackPanel>
|
||||
|
||||
<TextBlock Grid.Row="2" Grid.Column="0"
|
||||
HorizontalAlignment="Right" VerticalAlignment="Center"
|
||||
Margin="0,0,8,0"
|
||||
Text="{DynamicResource Text.AddWorktree.Name}"/>
|
||||
<TextBox Grid.Row="2" Grid.Column="1"
|
||||
Height="28"
|
||||
CornerRadius="3"
|
||||
Text="{Binding SelectedBranch, Mode=TwoWay}"
|
||||
Watermark="{DynamicResource Text.AddWorktree.Name.Placeholder}"
|
||||
IsEnabled="{Binding CreateNewBranch, Mode=OneWay}"
|
||||
IsVisible="{Binding CreateNewBranch, Mode=OneWay}"/>
|
||||
<ComboBox Grid.Row="2" Grid.Column="1"
|
||||
Height="28" Padding="8,0"
|
||||
VerticalAlignment="Center" HorizontalAlignment="Stretch"
|
||||
ItemsSource="{Binding LocalBranches}"
|
||||
SelectedItem="{Binding SelectedBranch, Mode=TwoWay}"
|
||||
IsEnabled="{Binding UseExistingBranch, Mode=OneWay}"
|
||||
IsVisible="{Binding UseExistingBranch, Mode=OneWay}">
|
||||
IsEnabled="{Binding !CreateNewBranch, Mode=OneWay}"
|
||||
IsVisible="{Binding !CreateNewBranch, Mode=OneWay}">
|
||||
<ComboBox.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<StackPanel Orientation="Horizontal" Height="20" VerticalAlignment="Center">
|
||||
|
@ -64,13 +71,6 @@
|
|||
</DataTemplate>
|
||||
</ComboBox.ItemTemplate>
|
||||
</ComboBox>
|
||||
<TextBox Grid.Row="2" Grid.Column="1"
|
||||
Height="28"
|
||||
CornerRadius="3"
|
||||
Text="{Binding SelectedBranch, Mode=TwoWay}"
|
||||
Watermark="{DynamicResource Text.AddWorktree.Name.Placeholder}"
|
||||
IsEnabled="{Binding !UseExistingBranch, Mode=OneWay}"
|
||||
IsVisible="{Binding !UseExistingBranch, Mode=OneWay}"/>
|
||||
|
||||
<Border Grid.Row="3" Grid.Column="0"
|
||||
Height="32"
|
||||
|
|
Loading…
Reference in a new issue