Mercurial > hg
annotate tests/fakemergerecord.py @ 32395:24245b54aa8a
match: replace match class by match function (API)
The matcher class is getting hard to understand. It will be easier to
follow if we can break it up into simpler matchers that we then
compose. I'm hoping to have one matcher that accepts regular
(non-include) patterns, one for exact file matches, one that always
matches (and maybe one that never does) and then compose them by
intersection and difference.
This patch takes a simple but important step towards that goal by
making match.match() a function (and renaming the matcher class itself
from "match" to "matcher"). The new function will eventually be
responsible for creating the simple matchers and composing them.
icasefsmatcher similarly gets a factory function (called
"icasefsmatch"). I also moved the other factory functions nearby.
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Fri, 12 May 2017 23:11:41 -0700 |
parents | 46ba2cdda476 |
children | 8173eeb69fb3 |
rev | line source |
---|---|
27027
a01ecbcfaf84
mergestate: handle additional record types specially
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
1 # Extension to write out fake unsupported records into the merge state |
a01ecbcfaf84
mergestate: handle additional record types specially
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
2 # |
a01ecbcfaf84
mergestate: handle additional record types specially
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
3 # |
a01ecbcfaf84
mergestate: handle additional record types specially
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
4 |
a01ecbcfaf84
mergestate: handle additional record types specially
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
5 from __future__ import absolute_import |
a01ecbcfaf84
mergestate: handle additional record types specially
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
6 |
a01ecbcfaf84
mergestate: handle additional record types specially
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
7 from mercurial import ( |
a01ecbcfaf84
mergestate: handle additional record types specially
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
8 merge, |
32337
46ba2cdda476
registrar: move cmdutil.command to registrar module (API)
Yuya Nishihara <yuya@tcha.org>
parents:
29754
diff
changeset
|
9 registrar, |
27027
a01ecbcfaf84
mergestate: handle additional record types specially
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
10 ) |
a01ecbcfaf84
mergestate: handle additional record types specially
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
11 |
a01ecbcfaf84
mergestate: handle additional record types specially
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
12 cmdtable = {} |
32337
46ba2cdda476
registrar: move cmdutil.command to registrar module (API)
Yuya Nishihara <yuya@tcha.org>
parents:
29754
diff
changeset
|
13 command = registrar.command(cmdtable) |
27027
a01ecbcfaf84
mergestate: handle additional record types specially
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
14 |
a01ecbcfaf84
mergestate: handle additional record types specially
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
15 @command('fakemergerecord', |
a01ecbcfaf84
mergestate: handle additional record types specially
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
16 [('X', 'mandatory', None, 'add a fake mandatory record'), |
a01ecbcfaf84
mergestate: handle additional record types specially
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
17 ('x', 'advisory', None, 'add a fake advisory record')], '') |
a01ecbcfaf84
mergestate: handle additional record types specially
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
18 def fakemergerecord(ui, repo, *pats, **opts): |
29754
b303b3817d0e
fakemergerecord: take wlock to write the merge state
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
27027
diff
changeset
|
19 with repo.wlock(): |
b303b3817d0e
fakemergerecord: take wlock to write the merge state
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
27027
diff
changeset
|
20 ms = merge.mergestate.read(repo) |
b303b3817d0e
fakemergerecord: take wlock to write the merge state
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
27027
diff
changeset
|
21 records = ms._makerecords() |
b303b3817d0e
fakemergerecord: take wlock to write the merge state
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
27027
diff
changeset
|
22 if opts.get('mandatory'): |
b303b3817d0e
fakemergerecord: take wlock to write the merge state
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
27027
diff
changeset
|
23 records.append(('X', 'mandatory record')) |
b303b3817d0e
fakemergerecord: take wlock to write the merge state
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
27027
diff
changeset
|
24 if opts.get('advisory'): |
b303b3817d0e
fakemergerecord: take wlock to write the merge state
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
27027
diff
changeset
|
25 records.append(('x', 'advisory record')) |
b303b3817d0e
fakemergerecord: take wlock to write the merge state
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
27027
diff
changeset
|
26 ms._writerecords(records) |