diff --git a/josh-core/src/filter/opt.rs b/josh-core/src/filter/opt.rs index 64fe12455..c5f96ff16 100644 --- a/josh-core/src/filter/opt.rs +++ b/josh-core/src/filter/opt.rs @@ -315,6 +315,8 @@ fn common_post(filters: &Vec) -> Option<(Filter, Vec)> { common_post.map(|c| (c, rest)) } else if let Op::Prefix(_) = to_op(c) { common_post.map(|c| (c, rest)) + } else if let Op::Message(..) = to_op(c) { + common_post.map(|c| (c, rest)) } else { None } diff --git a/tests/filter/compose_message.t b/tests/filter/compose_message.t new file mode 100644 index 000000000..a7d471138 --- /dev/null +++ b/tests/filter/compose_message.t @@ -0,0 +1,21 @@ + $ export TESTTMP=${PWD} + + $ cd ${TESTTMP} + $ git init -q repo 1> /dev/null + $ cd repo + + $ mkdir -p mono extras + $ echo a > mono/a.txt + $ echo b > extras/b.txt + $ git add . + $ git commit -m "initial commit" 1> /dev/null + + $ josh-filter -p ':[:/mono,:/extras]:"REWRITTEN"' + :[ + :/mono + :/extras + ]:"REWRITTEN" + + $ josh-filter ':[:/mono,:/extras]:"REWRITTEN"' > /dev/null + $ git log --pretty=%B -1 FILTERED_HEAD + REWRITTEN