Coverage for src / gitq / git_edit.py: 93%
35 statements
« prev ^ index » next coverage.py v7.13.5, created at 2026-04-15 15:32 -0400
« prev ^ index » next coverage.py v7.13.5, created at 2026-04-15 15:32 -0400
1#!/usr/bin/env python3
3import sys
4import argparse
6from . import continuations
7from .continuations import EditBranch, Suspend, Abort
8from .git_swap import edit_commit
11description = """
12Detaches HEAD at COMMIT, suspending so the user can amend it. When done,
13resume with `git edit --continue` to replay all commits that were above
14COMMIT back on top.
15"""
18class Main(continuations.Main):
20 tool = "git-edit"
21 suspend_message = "Suspended! edit HEAD, then resume with `git edit --continue`"
23 def main(self):
24 parser = argparse.ArgumentParser(
25 description=description, formatter_class=argparse.RawDescriptionHelpFormatter
26 )
27 parser.add_argument("commit", nargs="?", metavar="COMMIT")
28 parser.add_argument(
29 "--continue",
30 "-c",
31 action="store_true",
32 dest="resume",
33 help="resume edits have been made",
34 )
35 parser.add_argument(
36 "--abort",
37 action="store_true",
38 )
39 parser.add_argument("--status", action="store_true", help="print status")
40 args = parser.parse_args()
42 if args.resume:
43 self.resume(None)
44 return
46 if args.abort:
47 self.resume(Abort())
49 if args.status:
50 self.status()
51 return
53 if not args.commit:
54 parser.print_usage()
55 sys.exit(1)
57 with self.setup():
58 commit = self.git.commit(args.commit)
59 with EditBranch(message="git-edit"):
60 with edit_commit(commit, git=self.git, edit=True):
61 raise Suspend
64main = Main()
66if __name__ == "__main__": 66 ↛ 67line 66 didn't jump to line 67 because the condition on line 66 was never true
67 main()