Skip to content

Commit ec1598f

Browse files
committed
allow aliases too
Signed-off-by: Kipras Melnikovas <kipras@kipras.org>
1 parent c3b3ca5 commit ec1598f

File tree

2 files changed

+18
-5
lines changed

2 files changed

+18
-5
lines changed

git-stacked-rebase.ts

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,13 @@ import { uniq } from "./util/uniq";
2121
import { parseTodoOfStackedRebase } from "./parse-todo-of-stacked-rebase/parseTodoOfStackedRebase";
2222
import { Termination } from "./util/error";
2323
import { assertNever } from "./util/assertNever";
24+
import { Single, Tuple } from "./util/tuple";
2425
import {
2526
GoodCommand,
2627
GoodCommandStacked, //
2728
namesOfRebaseCommandsThatMakeRebaseExitToPause,
2829
StackedRebaseCommand,
29-
StackedRebaseEitherCommandOrAlias,
30+
StackedRebaseCommandAlias,
3031
} from "./parse-todo-of-stacked-rebase/validator";
3132

3233
// console.log = () => {};
@@ -633,17 +634,20 @@ export const gitStackedRebase = async (
633634
// newLineBefore.splice(0, 1, "branch-end-last"); // remove 1st word ("branch-end") and add "branch-end-last"
634635
// linesOfEditedRebaseTodo[newLatestBranchCmd.lineNumber] = newLineBefore.join(" ");
635636

636-
replaceCommandInText(oldLatestBranchCmd, "branch-end-last", "branch-end");
637-
replaceCommandInText(newLatestBranchCmd, "branch-end-new", "branch-end-last");
637+
replaceCommandInText(oldLatestBranchCmd, ["branch-end-last"], "branch-end");
638+
replaceCommandInText(newLatestBranchCmd, ["branch-end-new", "ben"], "branch-end-last");
638639

639640
// eslint-disable-next-line no-inner-declarations
640641
function replaceCommandInText(
641642
cmd: GoodCommandStacked, //
642-
expectedOldName: StackedRebaseEitherCommandOrAlias,
643+
allowedOldName: Single<StackedRebaseCommand> | Tuple<StackedRebaseCommand, StackedRebaseCommandAlias>,
643644
newName: StackedRebaseCommand
644645
): void {
645646
const words = linesOfEditedRebaseTodo[cmd.lineNumber].split(" ");
646-
assert.equal(words[0], expectedOldName);
647+
assert(
648+
allowedOldName.some((n) => n === words[0]),
649+
"invalid old name of command in git-rebase-todo file"
650+
);
647651
words[0] = newName;
648652
linesOfEditedRebaseTodo[oldLatestBranchCmd.lineNumber] = words.join(" ");
649653
}

util/tuple.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
/**
2+
* ...because eslint >5 sucks
3+
*/
4+
5+
export type Single<A> = [A];
6+
export type ReadonlySingle<A> = readonly [A];
7+
8+
export type Tuple<A, B> = [A, B];
9+
export type ReadonlyTuple<A, B> = readonly [A, B];

0 commit comments

Comments
 (0)