This series is now 2x the size of v1. The reason is that the discussion for v1 brought up lots of related side-points that I fixed while I was at it. Most if this *could* be split off, but since a lot of it's modifying the same bits of code doing that would result in merge conflict galore, so I think it's easier to bundle it up. Comments on individual patches below: Ævar Arnfjörð Bjarmason (16): tag doc: move the description of --[no-]merged earlier tag doc: split up the --[no-]merged documentation tag doc: reword --[no-]merged to talk about commits, not tips NEW: Document that --merged & --no-merged operate on commits, not objects. Split up the docs to document each option indepenently for ease of subsequent changes. ref-filter: make combining --merged & --no-merged an error NEW: Currently "--merged HEAD --no-merged HEAD" is just silently equivalent to "--no-merged HEAD". Make the former an "incompatible options" error. ref-filter: add test for --contains on a non-commit NEW: Jeff suggested we should test for this. Make it so. tag: remove a TODO item from the test suite No changes. tag tests: fix a typo in a test description NEW: Fix a tag test typo. for-each-ref: partly change <object> to <commit> in help NEW: Clarify the for-each-ref --help output. tag: add more incompatibles mode tests CHANGED: I dropped the "tag: Refactor the options handling code to be less bizarro" patch, but these are the tests that came along with it. tag: change misleading --list <pattern> documentation No changes. tag: implicitly supply --list given another list-like option Changed: Typo fixes in commit message, `argc == 0 && !cmdmode` logic changes, code reflow, better error messages etc. tag: change --point-at to default to HEAD Changed: Fixed up an ">expect" at the start of the test. ref-filter: add --no-contains option to tag/branch/for-each-ref Changed: Typos/grammar in commit message, get rid of needless "else", tests for tree/tag blobs. ref-filter: reflow recently changed branch/tag/for-each-ref docs NEW: Split off reflowing of documentation paragraphs from the above for ease of reading. tag: implicitly supply --list given the -n option Re-arranged: I still want this included, but the consensus on the list wasn't as strong, so it's moved later in the series so it can be dropped without conflicts. tag: add tests for --with and --without No changes. Documentation/git-branch.txt | 33 +++-- Documentation/git-for-each-ref.txt | 12 +- Documentation/git-tag.txt | 60 ++++++--- builtin/branch.c | 5 +- builtin/for-each-ref.c | 5 +- builtin/tag.c | 27 ++-- contrib/completion/git-completion.bash | 4 +- parse-options.h | 4 +- ref-filter.c | 30 ++++- ref-filter.h | 1 + t/t3200-branch.sh | 4 + t/t3201-branch-contains.sh | 61 ++++++++- t/t6302-for-each-ref-filter.sh | 20 +++ t/t7004-tag.sh | 237 +++++++++++++++++++++++++++++++-- 14 files changed, 432 insertions(+), 71 deletions(-) -- 2.11.0