aboutsummaryrefslogtreecommitdiffstats
path: root/devscripts/make_changelog.py
diff options
context:
space:
mode:
authorpukkandan <pukkandan.ytdlp@gmail.com>2023-07-06 17:34:51 +0530
committerpukkandan <pukkandan.ytdlp@gmail.com>2023-07-06 20:22:04 +0530
commitfa44802809d189fca0f4782263d48d6533384503 (patch)
tree658db4178e9cdf9ff570bf913dc7f678e08f3106 /devscripts/make_changelog.py
parent47bcd437247152e0af5b3ebc5592db7bb66855c2 (diff)
downloadhypervideo-pre-fa44802809d189fca0f4782263d48d6533384503.tar.lz
hypervideo-pre-fa44802809d189fca0f4782263d48d6533384503.tar.xz
hypervideo-pre-fa44802809d189fca0f4782263d48d6533384503.zip
[devscripts/make_changelog] Skip reverted commits
Diffstat (limited to 'devscripts/make_changelog.py')
-rw-r--r--devscripts/make_changelog.py15
1 files changed, 14 insertions, 1 deletions
diff --git a/devscripts/make_changelog.py b/devscripts/make_changelog.py
index 0bcfa6ae7..eb0e3082f 100644
--- a/devscripts/make_changelog.py
+++ b/devscripts/make_changelog.py
@@ -252,6 +252,7 @@ class CommitRange:
(?:\ \((?P<issues>\#\d+(?:,\ \#\d+)*)\))?
''', re.VERBOSE | re.DOTALL)
EXTRACTOR_INDICATOR_RE = re.compile(r'(?:Fix|Add)\s+Extractors?', re.IGNORECASE)
+ REVERT_RE = re.compile(r'(?i:Revert)\s+([\da-f]{40})')
FIXES_RE = re.compile(r'(?i:Fix(?:es)?(?:\s+bugs?)?(?:\s+in|\s+for)?|Revert)\s+([\da-f]{40})')
UPSTREAM_MERGE_RE = re.compile(r'Update to ytdl-commit-([\da-f]+)')
@@ -279,7 +280,7 @@ class CommitRange:
self.COMMAND, 'log', f'--format=%H%n%s%n%b%n{self.COMMIT_SEPARATOR}',
f'{self._start}..{self._end}' if self._start else self._end).stdout
- commits = {}
+ commits, reverts = {}, {}
fixes = defaultdict(list)
lines = iter(result.splitlines(False))
for i, commit_hash in enumerate(lines):
@@ -300,6 +301,11 @@ class CommitRange:
logger.debug(f'Reached Release commit, breaking: {commit}')
break
+ revert_match = self.REVERT_RE.fullmatch(commit.short)
+ if revert_match:
+ reverts[revert_match.group(1)] = commit
+ continue
+
fix_match = self.FIXES_RE.search(commit.short)
if fix_match:
commitish = fix_match.group(1)
@@ -307,6 +313,13 @@ class CommitRange:
commits[commit.hash] = commit
+ for commitish, revert_commit in reverts.items():
+ reverted = commits.pop(commitish, None)
+ if reverted:
+ logger.debug(f'{commit} fully reverted {reverted}')
+ else:
+ commits[revert_commit.hash] = revert_commit
+
for commitish, fix_commits in fixes.items():
if commitish in commits:
hashes = ', '.join(commit.hash[:HASH_LENGTH] for commit in fix_commits)