(repo_root: Path)
| 451 | |
| 452 | |
| 453 | def git_pull_ff_only(repo_root: Path) -> Tuple[bool, str]: |
| 454 | result = subprocess.run( |
| 455 | ["git", "-C", str(repo_root), "pull", "--ff-only"], |
| 456 | capture_output=True, |
| 457 | text=True, |
| 458 | check=False, |
| 459 | ) |
| 460 | output_parts = [part.strip() for part in (result.stdout, result.stderr) if part.strip()] |
| 461 | output = "\n".join(output_parts) |
| 462 | return result.returncode == 0, output |
| 463 | |
| 464 | |
| 465 | def parse_args(argv: Optional[List[str]] = None) -> argparse.Namespace: |