ZheNing Hu <adlternative@xxxxxxxxx> 于2021年9月15日周三 下午8:27写道: > > > So yes, it's complicated. And it must be explained to the user that > > "%(refname)" behaves slightly differently with "git tag --verify", but > > that is unavoidable if we do not want to break scripts (it _already_ > > behaves slightly differently, and we just never told anyone). > > $ git tag --verify --format='verify: %(refname) %(symref)' annotated symref verify: annotated verify: symref $ git tag --verify --format='verify: %(refname) %(symref)' refs/tags/annotated refs/tags/symref error: tag 'refs/tags/annotated' not found. error: tag 'refs/tags/symref' not found. $ git verify-tag --format='verify: %(refname) %(symref)' annotated symref verify: annotated verify: symref $ git verify-tag --format='verify: %(refname) %(symref)' refs/tags/annotated refs/tags/symref verify: refs/tags/annotated verify: refs/tags/symref As we can see, there is a slight difference between git tag --verify and git verify-tag: git tag --verify can not handle refs' fullname refs/tags/* (because read_ref_full() | read_ref() can't handle them). So, as a standard, which characteristics should we keep? > > The other option is to declare the current behavior a bug and fix it. I > > am quite tempted by that route, given the inconsistency with other > > formatters, including even "git tag --list --format=%(refname)"! > > I don't know, I think both fix methods are okay. > > > > > -Peff > > Thanks. > -- > ZheNing Hu