From eca8f79decc59a16034bf995ed45bb0ca5ae2244 Mon Sep 17 00:00:00 2001 From: Christian Schilling Date: Wed, 11 Jan 2023 16:49:23 +0100 Subject: [PATCH] Support annotated tags when using --squash Change: annotated-tags-squash --- src/bin/josh-filter.rs | 7 +++---- tests/filter/squash.t | 4 +++- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/bin/josh-filter.rs b/src/bin/josh-filter.rs index a416b82bb..d9737667a 100644 --- a/src/bin/josh-filter.rs +++ b/src/bin/josh-filter.rs @@ -176,10 +176,9 @@ fn run_filter(args: Vec) -> josh::JoshResult { let pattern = pattern.to_string(); for reference in repo.references_glob(&pattern).unwrap() { let reference = reference?; - if let Some(target) = reference.target() { - ids.push((target, reference.name().unwrap().to_string())); - refs.push((reference.name().unwrap().to_string(), target)); - } + let target = reference.peel_to_commit()?.id(); + ids.push((target, reference.name().unwrap().to_string())); + refs.push((reference.name().unwrap().to_string(), target)); } filterobj = josh::filter::chain(josh::filter::squash(Some(&ids)), filterobj); }; diff --git a/tests/filter/squash.t b/tests/filter/squash.t index 73ff013bb..1feffd4f2 100644 --- a/tests/filter/squash.t +++ b/tests/filter/squash.t @@ -39,7 +39,9 @@ Use '--' to separate paths from revisions, like this: 'git [...] -- [...]' [128] - $ git tag tag_a 1d69b7d + +This one tag is an annotated tag, to make sure those are handled as well + $ git tag -a tag_a -m "created a tag" 1d69b7d $ josh-filter -s --squash "refs/tags/*" :author=\"New\ Author\"\;\"new@e.mail\" --update refs/heads/filtered [1] :author="New Author";"new@e.mail" [1] :squash(