From 717708469ac5e400c244c20a05c0f52c86510e1f Mon Sep 17 00:00:00 2001 From: Jonathan Teran Carballo Date: Wed, 26 Nov 2025 22:51:58 -0300 Subject: [PATCH] feature: modifico formato de listado de ramas --- src/git_flow/command/base.py | 1 + src/git_flow/command/branch.py | 54 ++++++++++++++++++++-------------- 2 files changed, 33 insertions(+), 22 deletions(-) diff --git a/src/git_flow/command/base.py b/src/git_flow/command/base.py index 056e805..d8a7cfe 100644 --- a/src/git_flow/command/base.py +++ b/src/git_flow/command/base.py @@ -21,6 +21,7 @@ COLOR_5 = "\033[35m" COLOR_6 = "\033[36m" COLOR_7 = "\033[37m" COLOR_BLACK_BOLD = "\033[1;30m" +COLOR_WHITE_BOLD = "\033[1;37m" COLOR_RESET = "\033[0m" TYPE_SUCCESS = 0 diff --git a/src/git_flow/command/branch.py b/src/git_flow/command/branch.py index c09cdd3..a41d732 100644 --- a/src/git_flow/command/branch.py +++ b/src/git_flow/command/branch.py @@ -1,6 +1,6 @@ from argparse import ArgumentParser, Namespace from git_flow import GitFlowError -from git_flow.command.base import COLOR_GREEN, COLOR_RED, COLOR_RESET, Command +from git_flow.command.base import COLOR_GREEN, COLOR_RED, COLOR_RESET, COLOR_WHITE_BOLD, Command from git_flow.git import Git @@ -30,17 +30,23 @@ class BranchCommand(Command): self.environments = self.flowconfig["flow.branches"].split(",") if args.environment is None: + self.show_envs() self.show_all_branches() + elif args.environment in self.environments: + self.show_envs() + self.show_env_branches(args.environment) elif args.environment == "trash": self.show_trash_branches() - elif args.environment in self.environments: - self.show_env_branches(args.environment) else: raise GitFlowError(f"'{args.environment}' no es un entorno vĂ¡lido.") def show_trash_branches(self): branches = self.get_trash_branches() + if not branches: + print("No hay ramas a mostrar.") + return + for branch in branches: prefix = (COLOR_RED + "*") if branch == self.current_branch else " " print(prefix + " " + branch + COLOR_RESET) @@ -50,30 +56,34 @@ class BranchCommand(Command): def show_all_branches(self): for environment in self.environments: - self.show_env_branches(environment) + self.show_env_branches(environment, len(self.environments) > 1) trash = len(self.get_trash_branches()) - print("\nTrash: " + str(trash) + " rama" + ("" if trash == 1 else "s")) - def show_env_branches(self, environment: str): + if trash: + print() + print(COLOR_WHITE_BOLD + "Papelera: " + COLOR_RESET + str(trash) + " rama" + ("" if trash == 1 else "s")) + + def show_envs(self): + print(COLOR_WHITE_BOLD + "Entornos" + COLOR_RESET) + for environment in self.environments: + prefix = (COLOR_GREEN + "*") if environment == self.current_branch else " " + print(prefix + " " + environment + COLOR_RESET) + print() + + def show_env_branches(self, environment: str, show_env: bool = False): is_first_env = environment == self.environments[0] - branches = ( - Git( - "for-each-ref", - "refs/heads/", - exclude=["refs/heads/trash/", "refs/heads/release/"], - format=BRANCH_FORMAT, - ).lines() - if is_first_env - else Git( - "for-each-ref", - "refs/heads/release/" + environment + "/", - format=BRANCH_FORMAT, - ).lines() - ) + 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 [] + branches = Git("for-each-ref", pattern, exclude=exclude, format=BRANCH_FORMAT).lines() + + print(COLOR_WHITE_BOLD + (environment if show_env else "Ramas") + COLOR_RESET) + + if not branches: + print("No hay ramas a mostrar.") + return for branch in branches: prefix = (COLOR_GREEN + "*") if branch == self.current_branch else " " print(prefix + " " + branch + COLOR_RESET) - -