Skip to content

Commit 3e54ab0

Browse files
committed
enhance: makes Create New Branch option as the default selected mode for adding new worktree
1 parent db8e534 commit 3e54ab0

File tree

3 files changed

+30
-29
lines changed

3 files changed

+30
-29
lines changed

src/Commands/Worktree.cs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,15 +62,20 @@ public Worktree(string repo)
6262
return worktrees;
6363
}
6464

65-
public bool Add(string fullpath, string name, string tracking, Action<string> outputHandler)
65+
public bool Add(string fullpath, string name, bool createNew, string tracking, Action<string> outputHandler)
6666
{
6767
Args = "worktree add ";
6868

6969
if (!string.IsNullOrEmpty(tracking))
7070
Args += "--track ";
7171

7272
if (!string.IsNullOrEmpty(name))
73-
Args += $"-B {name} ";
73+
{
74+
if (createNew)
75+
Args += $"-b {name} ";
76+
else
77+
Args += $"-B {name} ";
78+
}
7479

7580
Args += $"\"{fullpath}\" ";
7681

src/ViewModels/AddWorktree.cs

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,17 @@ public string Path
1515
set => SetProperty(ref _path, value);
1616
}
1717

18-
public bool UseExistingBranch
18+
public bool CreateNewBranch
1919
{
20-
get => _useExistingBranch;
20+
get => _createNewBranch;
2121
set
2222
{
23-
if (SetProperty(ref _useExistingBranch, value, true))
23+
if (SetProperty(ref _createNewBranch, value, true))
2424
{
2525
if (value)
26-
SelectedBranch = LocalBranches.Count > 0 ? LocalBranches[0] : string.Empty;
27-
else
2826
SelectedBranch = string.Empty;
27+
else
28+
SelectedBranch = LocalBranches.Count > 0 ? LocalBranches[0] : string.Empty;
2929
}
3030
}
3131
}
@@ -74,11 +74,6 @@ public AddWorktree(Repository repo)
7474
RemoteBranches.Add($"{branch.Remote}/{branch.Name}");
7575
}
7676

77-
if (LocalBranches.Count > 0)
78-
SelectedBranch = LocalBranches[0];
79-
else
80-
SelectedBranch = string.Empty;
81-
8277
if (RemoteBranches.Count > 0)
8378
SelectedTrackingBranch = RemoteBranches[0];
8479
else
@@ -114,19 +109,20 @@ public override Task<bool> Sure()
114109
_repo.SetWatcherEnabled(false);
115110
ProgressDescription = "Adding worktree ...";
116111

112+
var branchName = _selectedBranch;
117113
var tracking = _setTrackingBranch ? SelectedTrackingBranch : string.Empty;
118114

119115
return Task.Run(() =>
120116
{
121-
var succ = new Commands.Worktree(_repo.FullPath).Add(_path, _selectedBranch, tracking, SetProgressDescription);
117+
var succ = new Commands.Worktree(_repo.FullPath).Add(_path, branchName, _createNewBranch, tracking, SetProgressDescription);
122118
CallUIThread(() => _repo.SetWatcherEnabled(true));
123119
return succ;
124120
});
125121
}
126122

127123
private Repository _repo = null;
128124
private string _path = string.Empty;
129-
private bool _useExistingBranch = true;
125+
private bool _createNewBranch = true;
130126
private string _selectedBranch = string.Empty;
131127
private bool _setTrackingBranch = false;
132128
}

src/Views/AddWorktree.axaml

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -36,25 +36,32 @@
3636
Margin="0,0,8,0"
3737
Text="{DynamicResource Text.AddWorktree.WhatToCheckout}"/>
3838
<StackPanel Grid.Row="1" Grid.Column="1" Height="32" Orientation="Horizontal">
39-
<RadioButton Content="{DynamicResource Text.AddWorktree.WhatToCheckout.Existing}"
40-
GroupName="LocalChanges"
41-
IsChecked="{Binding UseExistingBranch, Mode=TwoWay}" />
4239
<RadioButton Content="{DynamicResource Text.AddWorktree.WhatToCheckout.CreateNew}"
43-
GroupName="LocalChanges"
44-
Margin="8,0,0,0" />
40+
GroupName="WhatToCheckout"
41+
IsChecked="{Binding CreateNewBranch, Mode=TwoWay}"/>
42+
<RadioButton Content="{DynamicResource Text.AddWorktree.WhatToCheckout.Existing}"
43+
GroupName="WhatToCheckout"
44+
Margin="8,0,0,0"/>
4545
</StackPanel>
4646

4747
<TextBlock Grid.Row="2" Grid.Column="0"
4848
HorizontalAlignment="Right" VerticalAlignment="Center"
4949
Margin="0,0,8,0"
5050
Text="{DynamicResource Text.AddWorktree.Name}"/>
51+
<TextBox Grid.Row="2" Grid.Column="1"
52+
Height="28"
53+
CornerRadius="3"
54+
Text="{Binding SelectedBranch, Mode=TwoWay}"
55+
Watermark="{DynamicResource Text.AddWorktree.Name.Placeholder}"
56+
IsEnabled="{Binding CreateNewBranch, Mode=OneWay}"
57+
IsVisible="{Binding CreateNewBranch, Mode=OneWay}"/>
5158
<ComboBox Grid.Row="2" Grid.Column="1"
5259
Height="28" Padding="8,0"
5360
VerticalAlignment="Center" HorizontalAlignment="Stretch"
5461
ItemsSource="{Binding LocalBranches}"
5562
SelectedItem="{Binding SelectedBranch, Mode=TwoWay}"
56-
IsEnabled="{Binding UseExistingBranch, Mode=OneWay}"
57-
IsVisible="{Binding UseExistingBranch, Mode=OneWay}">
63+
IsEnabled="{Binding !CreateNewBranch, Mode=OneWay}"
64+
IsVisible="{Binding !CreateNewBranch, Mode=OneWay}">
5865
<ComboBox.ItemTemplate>
5966
<DataTemplate>
6067
<StackPanel Orientation="Horizontal" Height="20" VerticalAlignment="Center">
@@ -63,14 +70,7 @@
6370
</StackPanel>
6471
</DataTemplate>
6572
</ComboBox.ItemTemplate>
66-
</ComboBox>
67-
<TextBox Grid.Row="2" Grid.Column="1"
68-
Height="28"
69-
CornerRadius="3"
70-
Text="{Binding SelectedBranch, Mode=TwoWay}"
71-
Watermark="{DynamicResource Text.AddWorktree.Name.Placeholder}"
72-
IsEnabled="{Binding !UseExistingBranch, Mode=OneWay}"
73-
IsVisible="{Binding !UseExistingBranch, Mode=OneWay}"/>
73+
</ComboBox>
7474

7575
<Border Grid.Row="3" Grid.Column="0"
7676
Height="32"

0 commit comments

Comments
 (0)