On Wed, Jan 18, 2017 at 12:11 PM, Junio C Hamano <gitster@xxxxxxxxx> wrote: > Jacob Keller <jacob.e.keller@xxxxxxxxx> writes: > >> From: Jacob Keller <jacob.keller@xxxxxxxxx> >> >> Extend name-rev further to support matching refs by adding `--exclude` >> patterns. These patterns will limit the scope of refs by excluding any >> ref that matches at least one exclude pattern. Checking the exclude refs >> shall happen first, before checking the include --refs patterns. > > I do not think we should have this "exclude first and then include" > written down here, as it is an irrelevant implementation detail. > The desired end result is that only refs that match at least one > include and none of the exclude survive. You could implement it by > first checking with include and then further narrowing that set by > filtering those that match exclude (I am not saying that "include > first then exclude" is better---I am saying that it is far less > important than "at least one include and none of the exclude" to > mention the order of application). > >> +--exclude=<pattern>:: >> + Do not use any ref whose name matches a given shell pattern. The >> + pattern can be one of branch name, tag name or fully qualified ref >> + name. If given multiple times, exclude refs that match any of the given >> + shell patterns. Use `--no-exclude` to clear the list of exclude >> + patterns. > > Perhaps insert > > When used together with --refs, only those that match at least > one of the --refs patterns and none of the --exclude patterns > are used. > > before "Use `--no-exclude` to clear"? > Yes this makes sense. I'm still looking at whether the alternative implementation suggested based on the git-log style would make more sense or not, but if we keep this as is, the added text you gave is important. Thanks, Jake