Re: [PATCH 4/5] revision.c: refactor ref selection handler after --exclude
From: Jacob Keller <hidden>
Date: 2017-01-25 17:42:13
On Wed, Jan 25, 2017 at 4:50 AM, Nguyễn Thái Ngọc Duy [off-list ref] wrote:
Behavior change: "--exclude --blah --remotes" will not exclude remote
branches any more. Only "--exclude --remotes" does.
This is because --exclude is going to have a new friend --decorate-reflog
who haves the same way. When you allow a distant --remotes to complement
a previous option, things get complicated. In
--exclude .. --decorate-reflog ... --remotes
Does it mean decorate remote reflogs, or does it mean exclude remotes
from the selected revisions?
Granted, there may be valid use cases for such a combination (e.g.
"decorate all reflogs except remote ones") but I feel option order is
not a good fit to express them.Limiting the scope of the exclude seems somewhat reasonable to me, because it makes it much easier to explain and show the user. We do need to make sure it's not going to break any scripts or other issues. Is it possible for us to produce an error if the user does "--exclude" without a necessary connecting option? Thanks, Jake