File tree 2 files changed +20
-8
lines changed
2 files changed +20
-8
lines changed Original file line number Diff line number Diff line change @@ -98,14 +98,10 @@ def generate_changelog(
98
98
# Additional sections will be added as new types are encountered
99
99
changes : dict = {"breaking" : []}
100
100
101
- rev = None
102
- if from_version :
103
- rev = from_version
104
-
105
101
found_the_release = to_version is None
106
102
to_version_commit = to_version and get_formatted_commit (to_version )
107
103
from_version_commit = from_version and get_formatted_commit (from_version )
108
- for _hash , commit_message in get_commit_log (rev ):
104
+ for _hash , commit_message in get_commit_log (from_version , to_version ):
109
105
if not found_the_release :
110
106
# Skip until we find the last commit in this release
111
107
# (we are looping in the order of newest -> oldest)
Original file line number Diff line number Diff line change @@ -50,18 +50,34 @@ def get_formatted_commit(version: str) -> str:
50
50
return message
51
51
52
52
53
- def get_commit_log (from_rev = None ):
53
+ def get_commit_log (from_rev = None , to_rev = None ):
54
54
"""Yield all commit messages from last to first."""
55
- rev = None
56
55
if from_rev :
57
56
from_rev = get_formatted_tag (from_rev )
58
57
try :
59
58
repo ().commit (from_rev )
60
- rev = f"...{ from_rev } "
61
59
except BadName :
62
60
logger .debug (
63
61
f"Reference { from_rev } does not exist, considering entire history"
64
62
)
63
+ from_rev = None
64
+ if to_rev :
65
+ to_rev = get_formatted_tag (to_rev )
66
+ try :
67
+ repo ().commit (to_rev )
68
+ except BadName :
69
+ logger .debug (
70
+ f"Reference { to_rev } does not exist, considering entire history until HEAD"
71
+ )
72
+ to_rev = None
73
+
74
+ rev = None
75
+ if from_rev and to_rev :
76
+ rev = f"{ to_rev } ...{ from_rev } "
77
+ elif from_rev :
78
+ rev = f"...{ from_rev } "
79
+ elif to_rev :
80
+ rev = f"{ to_rev } ..."
65
81
66
82
for commit in repo ().iter_commits (rev ):
67
83
yield (commit .hexsha , commit .message .replace ("\r \n " , "\n " ))
You can’t perform that action at this time.
0 commit comments