2012-03-16 02:54:47 +01:00
|
|
|
## #refex matching a ref and a refex
|
|
|
|
|
|
|
|
A refex is a word I made up to mean "a regex that matches a ref". If you know
|
|
|
|
[regular expressions][regex] you're halfway there.
|
|
|
|
|
2012-04-05 18:01:23 +02:00
|
|
|
In addition:
|
2012-03-16 02:54:47 +01:00
|
|
|
|
2012-04-17 03:13:13 +02:00
|
|
|
* If no refex is supplied, it defaults to `refs/.*`, for example in a rule
|
2012-04-05 18:01:23 +02:00
|
|
|
like this:
|
|
|
|
|
|
|
|
RW = alice
|
|
|
|
|
2012-04-17 03:13:13 +02:00
|
|
|
* A refex not starting with `refs/` is assumed to start with `refs/heads/`.
|
2012-04-05 18:01:23 +02:00
|
|
|
This means normal branches can be conveniently written like this:
|
2012-03-16 02:54:47 +01:00
|
|
|
|
|
|
|
RW master = alice
|
|
|
|
# becomes 'refs/heads/master' internally
|
|
|
|
|
|
|
|
while tags will need to be fully qualified
|
|
|
|
|
|
|
|
RW refs/tags/v[0-9] = bob
|
|
|
|
|
2012-04-17 03:13:13 +02:00
|
|
|
* A refex is implicitly anchored at the start, but not at the end. In
|
2012-03-16 02:54:47 +01:00
|
|
|
regular expression lingo, a `^` is assumed at the start (but no `$` at the
|
2012-04-05 18:01:23 +02:00
|
|
|
end is assumed). So a refex of `master` will match all these:
|
2012-03-16 02:54:47 +01:00
|
|
|
|
|
|
|
refs/heads/master
|
|
|
|
refs/heads/master1
|
|
|
|
refs/heads/master2
|
|
|
|
refs/heads/master/full
|
|
|
|
|
2012-04-05 18:01:23 +02:00
|
|
|
If you want to restrict the match to just the one specific ref, use
|
2012-03-16 02:54:47 +01:00
|
|
|
|
|
|
|
RW master$ = alice
|