From d7e30008f919fbbb444f2a3a8f3f3174c4226455 Mon Sep 17 00:00:00 2001 From: Ji Sang Seo Date: Sun, 11 Feb 2024 15:54:18 +0900 Subject: [PATCH] feature: finish command --- src/git.mjs | 2 +- src/task/create.mjs | 2 +- src/task/finish.mjs | 10 +++++++++- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/git.mjs b/src/git.mjs index 6e79bf9..44e38f7 100644 --- a/src/git.mjs +++ b/src/git.mjs @@ -68,7 +68,7 @@ export async function pull() { } export async function fetch() { - const result = git("fetch"); + const result = git("fetch", "--prune"); if (result.status !== 0) { throw new Error("Failed to fetch prune"); diff --git a/src/task/create.mjs b/src/task/create.mjs index 8f973d6..f027a48 100644 --- a/src/task/create.mjs +++ b/src/task/create.mjs @@ -68,7 +68,7 @@ export async function create( await git.create(taskBranch, baseBranch); await git.checkout(taskBranch); await git.push(true); - task.select(TASK_STATUS.WORKING); + task.select(); console.log(`Successfully Selected Task ${chalk.blueBright(taskKey)}`); console.log( diff --git a/src/task/finish.mjs b/src/task/finish.mjs index b773bde..655b6a4 100644 --- a/src/task/finish.mjs +++ b/src/task/finish.mjs @@ -23,11 +23,19 @@ export async function finish() { const seperatorIdx = task.baseBranch.indexOf("/"); const localBaseBranch = task.baseBranch.slice(seperatorIdx + 1); - const baseTask = Object.values(taskCollection).find( + let baseTask = Object.values(taskCollection).find( (task) => localBaseBranch === git.toBranchName(task.title) ); if (baseTask) { + baseTask = Task.build(baseTask); + baseTask.select(); + + const branchToCheckout = git.toBranchName(baseTask.title); + await git.checkout(branchToCheckout); + + await git.fetch(); + await git.pull(); } else { // probably, base task is original branch made by git or something which user manually created. // just set task status -> complete and let user to select which branch to move on.