-
Notifications
You must be signed in to change notification settings - Fork 0
/
gitdifflog.py
28 lines (22 loc) · 920 Bytes
/
gitdifflog.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
from termcolor import colored
from githelper import GitHelper
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("directory")
parser.add_argument("first")
parser.add_argument("second")
parser.add_argument("-c", nargs = "?", type = int)
parser.add_argument("-r", action = "store_true")
args = parser.parse_args()
print(colored("Starting Git-Diff-Log", "green"))
print("Searching for Git Repo in", args.directory)
git = GitHelper(args.directory)
git.validate_branches_are_present(args.first, args.second)
commits_in_first = git.commits(args.first, max_count = args.c)
commits_in_second = git.commits(args.second)
different_commits = git.different_commits(commits_in_first, commits_in_second)
different_commits.sort(key = lambda commit: commit.authored_date)
for commit in different_commits:
if git.should_print_commit(commit):
git.print_commit_info(commit)
git.resolve_commit(commit, args.r)