Skip to content

Commit a9d7818

Browse files
authored
Merge pull request #13329 from gitbutlerapp/dp-fix-selection-after-rubbing
Fix some selections after rubbing
2 parents b1dfdc1 + 546b255 commit a9d7818

5 files changed

Lines changed: 117 additions & 127 deletions

File tree

crates/but/src/command/legacy/status/tui/rub.rs

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -99,19 +99,15 @@ pub(super) fn perform_operation(
9999
) -> anyhow::Result<Option<SelectAfterReload>> {
100100
let selection = match operation {
101101
RubOperation::UnassignUncommitted(operation) => {
102-
let path = operation.hunk_assignments.first().path_bytes.clone();
103102
operation.execute_inner(ctx)?;
104-
SelectAfterReload::UncommittedFile {
105-
path,
106-
stack_id: None,
107-
}
103+
SelectAfterReload::Unassigned
108104
}
109105
RubOperation::UncommittedToCommit(operation) => {
110-
let assignment = operation.hunk_assignments.first();
111-
let path = assignment.path_bytes.clone();
112-
let stack_id = assignment.stack_id;
113-
operation.execute_inner(ctx)?;
114-
SelectAfterReload::UncommittedFile { path, stack_id }
106+
let result = operation.execute_inner(ctx)?;
107+
result
108+
.new_commit
109+
.map(SelectAfterReload::Commit)
110+
.unwrap_or(SelectAfterReload::Unassigned)
115111
}
116112
RubOperation::UncommittedToBranch(operation) => {
117113
let assignment = operation.hunk_assignments.first();

crates/but/src/command/legacy/status/tui/tests/commit_tests.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -337,7 +337,7 @@ fn commit_mode_from_staged_changes_stays_within_current_stack() {
337337
.assert_current_line_eq(str!["┊● << amend >> 9477ae7 add A"]);
338338

339339
tui.input_then_render(KeyCode::Enter)
340-
.assert_current_line_eq(str!["╭┄zz [unassigned changes] (no changes)"]);
340+
.assert_current_line_eq(str!["┊● [..] add A"]);
341341

342342
tui.input_then_render([KeyCode::Up, KeyCode::Up])
343343
.assert_current_line_eq(str!["╭┄zz [unassigned changes] (no changes)"]);

crates/but/src/command/legacy/status/tui/tests/discard_tests.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ fn discard_stack_confirm_yes_discards_staged_changes() {
139139
.assert_current_line_eq(str!["┊● << amend >> 9477ae7 add A"]);
140140

141141
tui.input_then_render(KeyCode::Enter)
142-
.assert_current_line_eq(str!["╭┄zz [unassigned changes] (no changes)"]);
142+
.assert_current_line_eq(str!["┊● [..] add A"]);
143143

144144
tui.input_then_render([KeyCode::Up, KeyCode::Up])
145145
.assert_current_line_eq(str!["╭┄zz [unassigned changes] (no changes)"]);

crates/but/src/command/legacy/status/tui/tests/rub_tests.rs

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ fn rub_api_unassigned_to_commit() {
4141
]);
4242

4343
tui.input_then_render(KeyCode::Enter)
44-
.assert_current_line_eq(str!["╭┄zz [unassigned changes] (no changes)"])
44+
.assert_current_line_eq(str!["┊● [..] (no commit message)"])
4545
.assert_rendered_term_svg_eq(file!["snapshots/rub_api_unassigned_to_commit.svg"]);
4646
}
4747

@@ -235,7 +235,7 @@ fn rub_api_unassigned_to_stack_operation() {
235235
.assert_current_line_eq(str!["┊● << amend >> 9477ae7 add A"]);
236236

237237
tui.input_then_render(KeyCode::Enter)
238-
.assert_current_line_eq(str!["╭┄zz [unassigned changes]"]);
238+
.assert_current_line_eq(str!["┊● [..] add A"]);
239239
}
240240

241241
// Tests RubOperation::UncommittedToStack.
@@ -262,7 +262,7 @@ fn rub_api_uncommitted_to_stack_operation() {
262262
.assert_current_line_eq(str!["┊● << amend >> 9477ae7 add A"]);
263263

264264
tui.input_then_render(KeyCode::Enter)
265-
.assert_current_line_eq(str!["╭┄zz [unassigned changes]"]);
265+
.assert_current_line_eq(str!["┊● [..] add A"]);
266266
}
267267

268268
// Tests RubOperation::StackToUnassigned.
@@ -288,7 +288,7 @@ fn rub_api_stack_to_unassigned_operation() {
288288
.assert_current_line_eq(str!["┊● << amend >> 9477ae7 add A"]);
289289

290290
tui.input_then_render(KeyCode::Enter)
291-
.assert_current_line_eq(str!["╭┄zz [unassigned changes] (no changes)"]);
291+
.assert_current_line_eq(str!["┊● [..] add A"]);
292292
}
293293

294294
// Tests RubOperation::StackToStack.
@@ -315,7 +315,7 @@ fn rub_api_stack_to_stack_operation() {
315315
.assert_current_line_eq(str!["┊● << amend >> 9477ae7 add A"]);
316316

317317
tui.input_then_render(KeyCode::Enter)
318-
.assert_current_line_eq(str!["╭┄zz [unassigned changes]"]);
318+
.assert_current_line_eq(str!["┊● [..] add A"]);
319319

320320
tui.input_then_render([
321321
KeyCode::Up,
@@ -338,17 +338,11 @@ fn rub_api_stack_to_stack_operation() {
338338
.assert_current_line_eq(str!["┊● << amend >> d3e2ba3 add B"]);
339339

340340
tui.input_then_render(KeyCode::Enter)
341-
.assert_current_line_eq(str!["╭┄zz [unassigned changes] (no changes)"]);
341+
.assert_current_line_eq(str!["┊● [..] add B"]);
342342

343343
tui.input_then_render((KeyModifiers::SHIFT, KeyCode::Char('K')))
344-
.assert_current_line_eq(str!["╭┄zz [unassigned changes] (no changes)"]);
344+
.assert_current_line_eq(str!["┊╭┄h0 [B]"]);
345345

346-
tui.input_then_render('r').assert_current_line_eq(str![
347-
"╭┄<< source >> << noop >> zz [unassigned changes] (no changes)"
348-
]);
349-
350-
tui.input_then_render([KeyCode::Up, KeyCode::Up])
351-
.assert_current_line_eq(str![
352-
"╭┄<< source >> << noop >> zz [unassigned changes] (no changes)"
353-
]);
346+
tui.input_then_render('r')
347+
.assert_current_line_eq(str!["┊╭┄h0 [B]"]);
354348
}

crates/but/src/command/legacy/status/tui/tests/snapshots/rub_api_unassigned_to_commit.svg

Lines changed: 100 additions & 100 deletions
Loading

0 commit comments

Comments
 (0)