From 606d831834b5a480f024651352fe2959cb665395 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20BURGHARD?= Date: Sat, 7 Oct 2023 15:40:48 +0200 Subject: [PATCH] feat: remove non first parent on revwalk based on settings --- src/git/revspec.rs | 6 ++++++ src/settings/mod.rs | 2 ++ 2 files changed, 8 insertions(+) diff --git a/src/git/revspec.rs b/src/git/revspec.rs index 88f36161..3c888d8f 100644 --- a/src/git/revspec.rs +++ b/src/git/revspec.rs @@ -70,6 +70,9 @@ impl Repository { pub fn all_commits(&self) -> Result { let mut revwalk = self.0.revwalk()?; revwalk.push_head()?; + if SETTINGS.only_first_parent { + revwalk.simplify_first_parent()?; + } let mut commits = vec![]; for oid in revwalk { @@ -331,6 +334,9 @@ impl Repository { let mut revwalk = self.0.revwalk()?; revwalk.push_range(spec)?; + if SETTINGS.only_first_parent { + revwalk.simplify_first_parent()?; + } let mut commits: Vec = vec![]; diff --git a/src/settings/mod.rs b/src/settings/mod.rs index f9d061c7..7486a804 100644 --- a/src/settings/mod.rs +++ b/src/settings/mod.rs @@ -33,6 +33,7 @@ pub struct Settings { pub from_latest_tag: bool, pub ignore_merge_commits: bool, pub generate_mono_repository_global_tag: bool, + pub only_first_parent: bool, pub monorepo_version_separator: Option, pub branch_whitelist: Vec, pub tag_prefix: Option, @@ -55,6 +56,7 @@ impl Default for Settings { from_latest_tag: false, ignore_merge_commits: false, generate_mono_repository_global_tag: true, + only_first_parent: false, monorepo_version_separator: None, branch_whitelist: vec![], tag_prefix: None,