diff --git a/src/git_flow/__init__.py b/src/git_flow/__init__.py index 454bea0..049ad89 100644 --- a/src/git_flow/__init__.py +++ b/src/git_flow/__init__.py @@ -21,6 +21,9 @@ COMMIT_TYPES = [ "wip", ] +WIP_BRANCH_PREFIX = "wip/" +TRASH_BRANCH_PREFIX = "trash/" + # Commits con estos valores incrementan el componente correspondiente SEMVER_MAJOR = 3 SEMVER_MINOR = 2 diff --git a/src/git_flow/command/branch.py b/src/git_flow/command/branch.py index f987bdf..e02a298 100644 --- a/src/git_flow/command/branch.py +++ b/src/git_flow/command/branch.py @@ -1,5 +1,5 @@ from argparse import ArgumentParser, Namespace -from git_flow import COLOR_WHITE_BOLD, COLOR_GREEN, COLOR_RED, COLOR_RESET, GitFlowError +from git_flow import COLOR_WHITE_BOLD, COLOR_GREEN, COLOR_RED, COLOR_RESET, TRASH_BRANCH_PREFIX, WIP_BRANCH_PREFIX, GitFlowError from git_flow.command.base import Command from git_flow.git import Git @@ -24,7 +24,13 @@ class BranchCommand(Command): parser.add_argument( "--trash", action="store_true", - help="Listar ramas en la 'papelera de reciclaje' (ramas que empiezan con 'trash/')" + help=f"Listar ramas en la 'papelera de reciclaje' (ramas que empiezan con '{TRASH_BRANCH_PREFIX}')" + ) + + parser.add_argument( + "--wip", + action="store_true", + help=f"Listar ramas 'en progreso' (ramas que empiezan con '{WIP_BRANCH_PREFIX}')" ) return parser @@ -36,8 +42,10 @@ class BranchCommand(Command): self.environments = self.flowconfig["flow.branches"].split(",") if args.trash: - self.show_trash_branches() - if args.environment is None: + self.show_branches(TRASH_BRANCH_PREFIX) + elif args.wip: + self.show_branches(WIP_BRANCH_PREFIX) + elif args.environment is None: self.show_envs() self.show_all_branches() elif args.environment in self.environments: @@ -46,8 +54,8 @@ class BranchCommand(Command): else: raise GitFlowError(f"'{args.environment}' no es un entorno vĂ¡lido.") - def show_trash_branches(self): - branches = self.get_trash_branches() + def show_branches(self, prefix: str): + branches = self.get_branches(prefix) if not branches: print("No hay ramas a mostrar.") @@ -57,14 +65,14 @@ class BranchCommand(Command): prefix = (COLOR_RED + "*") if branch == self.current_branch else " " print(prefix + " " + branch + COLOR_RESET) - def get_trash_branches(self): - return Git("for-each-ref", "refs/heads/trash/", format=BRANCH_FORMAT).lines() + def get_branches(self, prefix: str): + return Git("for-each-ref", "refs/heads/" + prefix, format=BRANCH_FORMAT).lines() def show_all_branches(self): for environment in self.environments: self.show_env_branches(environment, len(self.environments) > 1) - trash = len(self.get_trash_branches()) + trash = len(self.get_branches(TRASH_BRANCH_PREFIX)) if trash: print() @@ -81,7 +89,7 @@ class BranchCommand(Command): is_first_env = environment == self.environments[0] pattern = "refs/heads/" if is_first_env else "refs/heads/release/" + environment + "/" pattern += "*/*" - exclude = ["refs/heads/trash/", "refs/heads/release/"] if is_first_env else [] + exclude = ["refs/heads/" + TRASH_BRANCH_PREFIX, "refs/heads/release/"] if is_first_env else [] branches = Git("for-each-ref", pattern, exclude=exclude, format=BRANCH_FORMAT).lines() print(COLOR_WHITE_BOLD + (environment if show_env else "Ramas") + COLOR_RESET) diff --git a/src/git_flow/command/commit.py b/src/git_flow/command/commit.py index 2966fe3..73c1fdd 100644 --- a/src/git_flow/command/commit.py +++ b/src/git_flow/command/commit.py @@ -1,6 +1,6 @@ from argparse import Namespace from datetime import datetime -from git_flow import COMMIT_TYPES, GitFlowError +from git_flow import COMMIT_TYPES, TRASH_BRANCH_PREFIX, WIP_BRANCH_PREFIX, GitFlowError from git_flow.command.base import Command from git_flow.git import Git @@ -31,8 +31,8 @@ class CommitCommand(Command): ) message = commit_type + ": " + commit_message - if branch.startswith("wip/"): - original_branch = branch.removeprefix("wip/") + if branch.startswith(WIP_BRANCH_PREFIX): + original_branch = branch.removeprefix(WIP_BRANCH_PREFIX) Git("commit", m=message).exec(print="Creando commit en rama WIP") if commit_type != "wip": @@ -40,10 +40,10 @@ class CommitCommand(Command): Git("switch", original_branch).exec(print="Volviendo a rama original") Git("merge", branch, squash=True).exec(print="Squasheando commits WIP en uno solo") Git("commit", m=message).exec(print="Creando commit final de rama WIP") - Git("branch", branch, "trash/" + branch + "/" + suffix, move=True).exec(print="Backup de rama WIP") + Git("branch", branch, TRASH_BRANCH_PREFIX + branch + "/" + suffix, move=True).exec(print="Backup de rama WIP") else: if commit_type == "wip": - Git("switch", "wip/" + branch, create=True).exec(print="Creando nueva rama WIP") + Git("switch", WIP_BRANCH_PREFIX + branch, create=True).exec(print="Creando nueva rama WIP") Git("commit", m=message).exec(print="Creando commit")