Re: [PATCH v1 2/2] log: add option to choose which refs to decorate
From: Junio C Hamano <hidden>
Date: 2017-11-05 02:03:27
Rafael Ascensão [off-list ref] writes:
quoted
quoted
The pattern follows similar rules as `--glob` except it doesn't assume a trailing '/*' if glob characters are missing.Why should this be a special case that burdens users to remember one more rule? Wouldn't users find "--decorate-refs=refs/tags" useful and it woulld be shorter and nicer than having to say "refs/tags/*"?I wanted to allow exact patterns like: "--decorate-refs=refs/heads/master" and for that I disabled the flag that adds the trailing '/*' if no globs are found. As a side effect, I lost the shortcut. Is adding a yet another flag that appends '/*' only if the pattern equals "refs/{heads,remotes,tags}" a good idea?
No.
Because changing the default behavior of that function has implications on multiple commands which I think shouldn't change. But at the same time, would be nice to have the logic that deals with glob-ref patterns all in one place. What's the sane way to do this?
Learn to type "--decorate-refs="refs/heads/[m]aster", and not twewak the code at all, perhaps. The users of existing "with no globbing, /* is appended" interface are already used to that way and they do not have to learn a new and inconsistent interface. After all, "I only want to see 'git log' output with 'master' decorated" (i.e. not specifying "this class of refs I can glob by using the naming convention I am using" and instead enumerating the ones you care about) does not sound like a sensible thing people often want to do, so making it follow the other codepath so that people can say "refs/tags" to get "refs/tags/*", while still allowing such a rare but specific and exact one possible, may not sound too bad to me.