diff --git a/src/git_flow/command/new.py b/src/git_flow/command/new.py index 8f23f92..2f142b5 100644 --- a/src/git_flow/command/new.py +++ b/src/git_flow/command/new.py @@ -13,7 +13,11 @@ class NewCommand(Command): def run(self, args: Namespace = Namespace()): self.ensure_initialized() - self.ensure_right_branch() + branch = self.ensure_right_branch() + envs = self.flowconfig["flow.branches"].split(",") + + if branch not in envs: + self.warning("La rama actual no corresponde a un entorno configurado.") self.info("Se creará una nueva rama de trabajo sobre la rama actual.") self.info("Debe seleccionar el tipo de cambio a realizar.") @@ -21,6 +25,9 @@ class NewCommand(Command): branch_type = self.choice("Tipos de cambio", BRANCH_TYPES) new_branch = self._get_unique_branch_name(branch_type) + if "flow.remote" in self.flowconfig and Git.get_tracking_branch(branch): + Git("pull").exec(print="Actualizando rama actual") + if self.confirm(f"¿Crear rama '{new_branch}' sobre la rama actual?"): Git("switch", new_branch, create=True).exec(print="Creando nueva rama") @@ -37,6 +44,9 @@ class NewCommand(Command): persistent=True, ) + ticket = self.prompt("[Opcional] Ingrese el ID del ticket (por ejemplo: ABC-123 o #123):") + ticket = ticket[1:] if ticket.startswith("#") else ticket + keywords = ticket + ' ' + keywords keywords = filter(lambda k: len(k) > 0, keywords.split(" ")) branch = branch_type + "/" + "-".join(keywords)