Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Assoc only Pathspec Patterns #178

Open
wants to merge 25 commits into
base: master
Choose a base branch
from

Conversation

g-raud
Copy link
Contributor

@g-raud g-raud commented Mar 14, 2018

A "pattern" assoc <PATTERN> to record the associated string without setting the preference. Example:

merge = assoc Name *.txt -> mergecmd CURRENT1 CURRENT2                                                                             
merge = Path prefix*.txt

The patterns add <PATTERN> equivalent to <PATTERN> are also added for completeness but left undocumented.

This will be used to mark regexps as negative or positive.
Note that a string associated with a pathspec is not overriden nor
deleted by a negative pathspec; a string given with a negative pathspec
is completely ignored.  At present this behaviour is fine as when a
pathspec preference is overriden by another (negative) preference
(ending in "not") the associated string is not used.  If this changes
the functions assoc and assoc_all may have to be adapted.

pred.mli: mention negative pathspec patterns.
Avoid 2 list reversing and add 1 new.
@g-raud
Copy link
Contributor Author

g-raud commented Mar 14, 2018

This PR depends on PR #165 (Fixed String Pathspec Patterns).

g-raud added 7 commits April 13, 2018 13:13
This check is as valid for "name" patterns or Regex as for the others.
It is imperfect for glob patterns or regexes though (as was already the
case): a pattern always matching a leading slash may not begin by a
slash.
The assoc patterns can record an associated string without having to set
the preference for the matching paths.  So a preference that requires an
associated string can be enabled independently someplace else.

The associated string is recorded but the pattern is completely ignored
for the compiled regex used to match a path in Pred.test.

pred.mli: update the documentation.
These are equivalent to the non prefixed patterns and are added only for
completeness.
@g-raud g-raud force-pushed the assoc-pathspec-patterns branch from 05df1cd to 6adc57e Compare April 13, 2018 11:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants