From 6b0cd6a9a7afbf92dcdfcdabf7cb798567046049 Mon Sep 17 00:00:00 2001 From: Dima Gerasimov Date: Tue, 16 Oct 2018 22:36:07 +0100 Subject: [PATCH] use sha, use only one commit per sha --- commits/__init__.py | 13 +++++++++++-- run | 3 +++ 2 files changed, 14 insertions(+), 2 deletions(-) create mode 100755 run diff --git a/commits/__init__.py b/commits/__init__.py index 9096dd5..a7944dd 100644 --- a/commits/__init__.py +++ b/commits/__init__.py @@ -39,6 +39,7 @@ class Commit(NamedTuple): dt: datetime message: str repo: str + sha: str # TODO filter so they are authored by me def iter_commits(repo: str): @@ -51,6 +52,7 @@ def iter_commits(repo: str): dt=c.committed_datetime, # TODO authored?? message=c.message.strip(), repo=rr, + sha=c.hexsha, ) def is_git_repo(d: str): @@ -75,5 +77,12 @@ def iter_all_commits(): def get_all_commits(): - ss = set(iter_all_commits()) - return list(sorted(ss, key=lambda c: c.dt)) + res = {} + for c in iter_all_commits(): + nn = res.get(c.sha, None) + if nn is None: + res[c.sha] = c + else: + res[c.sha] = min(nn, c, key=lambda c: c.sha) + + return list(sorted(res.values(), key=lambda c: c.dt)) diff --git a/run b/run new file mode 100755 index 0000000..e60aa44 --- /dev/null +++ b/run @@ -0,0 +1,3 @@ +#!/bin/bash +set -eu +python3 -m commits