Skip to content

Commit eca8f79

Browse files
Support annotated tags when using --squash
Change: annotated-tags-squash
1 parent 5ab61c8 commit eca8f79

File tree

2 files changed

+6
-5
lines changed

2 files changed

+6
-5
lines changed

src/bin/josh-filter.rs

+3-4
Original file line numberDiff line numberDiff line change
@@ -176,10 +176,9 @@ fn run_filter(args: Vec<String>) -> josh::JoshResult<i32> {
176176
let pattern = pattern.to_string();
177177
for reference in repo.references_glob(&pattern).unwrap() {
178178
let reference = reference?;
179-
if let Some(target) = reference.target() {
180-
ids.push((target, reference.name().unwrap().to_string()));
181-
refs.push((reference.name().unwrap().to_string(), target));
182-
}
179+
let target = reference.peel_to_commit()?.id();
180+
ids.push((target, reference.name().unwrap().to_string()));
181+
refs.push((reference.name().unwrap().to_string(), target));
183182
}
184183
filterobj = josh::filter::chain(josh::filter::squash(Some(&ids)), filterobj);
185184
};

tests/filter/squash.t

+3-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,9 @@
3939
Use '--' to separate paths from revisions, like this:
4040
'git <command> [<revision>...] -- [<file>...]'
4141
[128]
42-
$ git tag tag_a 1d69b7d
42+
43+
This one tag is an annotated tag, to make sure those are handled as well
44+
$ git tag -a tag_a -m "created a tag" 1d69b7d
4345
$ josh-filter -s --squash "refs/tags/*" :author=\"New\ Author\"\;\"new@e.mail\" --update refs/heads/filtered
4446
[1] :author="New Author";"new@e.mail"
4547
[1] :squash(

0 commit comments

Comments
 (0)