Mercurial > hg
annotate mercurial/repository.py @ 37908:8808d5d401ee
templates: split getgraphnode() body into two functions
getgraphnodecurrent() is checking if the node is currently checked out and
getgraphnodesymbol() is checking properties that have more to do with the
stored data and the DAG.
author | Anton Shestakov <av6@dwimlabs.net> |
---|---|
date | Tue, 08 May 2018 17:54:57 +0800 |
parents | 856f381ad74b |
children | 5cfb01d5ff26 |
rev | line source |
---|---|
33800
f257943e47ab
repository: formalize peer interface with abstract base class
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
1 # repository.py - Interfaces and base classes for repositories and peers. |
f257943e47ab
repository: formalize peer interface with abstract base class
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
2 # |
f257943e47ab
repository: formalize peer interface with abstract base class
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
3 # Copyright 2017 Gregory Szorc <gregory.szorc@gmail.com> |
f257943e47ab
repository: formalize peer interface with abstract base class
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
4 # |
f257943e47ab
repository: formalize peer interface with abstract base class
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
5 # This software may be used and distributed according to the terms of the |
f257943e47ab
repository: formalize peer interface with abstract base class
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
6 # GNU General Public License version 2 or any later version. |
f257943e47ab
repository: formalize peer interface with abstract base class
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
7 |
f257943e47ab
repository: formalize peer interface with abstract base class
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
8 from __future__ import absolute_import |
f257943e47ab
repository: formalize peer interface with abstract base class
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
9 |
33802
a0aad86b3b6a
repository: implement generic capability methods on peer class
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33801
diff
changeset
|
10 from .i18n import _ |
a0aad86b3b6a
repository: implement generic capability methods on peer class
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33801
diff
changeset
|
11 from . import ( |
a0aad86b3b6a
repository: implement generic capability methods on peer class
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33801
diff
changeset
|
12 error, |
a0aad86b3b6a
repository: implement generic capability methods on peer class
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33801
diff
changeset
|
13 ) |
37810
856f381ad74b
interfaceutil: module to stub out zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37650
diff
changeset
|
14 from .utils import ( |
856f381ad74b
interfaceutil: module to stub out zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37650
diff
changeset
|
15 interfaceutil, |
856f381ad74b
interfaceutil: module to stub out zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37650
diff
changeset
|
16 ) |
33802
a0aad86b3b6a
repository: implement generic capability methods on peer class
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33801
diff
changeset
|
17 |
37810
856f381ad74b
interfaceutil: module to stub out zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37650
diff
changeset
|
18 class ipeerconnection(interfaceutil.Interface): |
33800
f257943e47ab
repository: formalize peer interface with abstract base class
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
19 """Represents a "connection" to a repository. |
f257943e47ab
repository: formalize peer interface with abstract base class
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
20 |
f257943e47ab
repository: formalize peer interface with abstract base class
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
21 This is the base interface for representing a connection to a repository. |
f257943e47ab
repository: formalize peer interface with abstract base class
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
22 It holds basic properties and methods applicable to all peer types. |
f257943e47ab
repository: formalize peer interface with abstract base class
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
23 |
f257943e47ab
repository: formalize peer interface with abstract base class
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
24 This is not a complete interface definition and should not be used |
f257943e47ab
repository: formalize peer interface with abstract base class
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
25 outside of this module. |
f257943e47ab
repository: formalize peer interface with abstract base class
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
26 """ |
37810
856f381ad74b
interfaceutil: module to stub out zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37650
diff
changeset
|
27 ui = interfaceutil.Attribute("""ui.ui instance""") |
33800
f257943e47ab
repository: formalize peer interface with abstract base class
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
28 |
37320
39f7d4ee8bcd
repository: port peer interfaces to zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37316
diff
changeset
|
29 def url(): |
33800
f257943e47ab
repository: formalize peer interface with abstract base class
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
30 """Returns a URL string representing this peer. |
f257943e47ab
repository: formalize peer interface with abstract base class
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
31 |
f257943e47ab
repository: formalize peer interface with abstract base class
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
32 Currently, implementations expose the raw URL used to construct the |
f257943e47ab
repository: formalize peer interface with abstract base class
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
33 instance. It may contain credentials as part of the URL. The |
f257943e47ab
repository: formalize peer interface with abstract base class
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
34 expectations of the value aren't well-defined and this could lead to |
f257943e47ab
repository: formalize peer interface with abstract base class
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
35 data leakage. |
f257943e47ab
repository: formalize peer interface with abstract base class
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
36 |
f257943e47ab
repository: formalize peer interface with abstract base class
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
37 TODO audit/clean consumers and more clearly define the contents of this |
f257943e47ab
repository: formalize peer interface with abstract base class
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
38 value. |
f257943e47ab
repository: formalize peer interface with abstract base class
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
39 """ |
f257943e47ab
repository: formalize peer interface with abstract base class
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
40 |
37320
39f7d4ee8bcd
repository: port peer interfaces to zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37316
diff
changeset
|
41 def local(): |
33800
f257943e47ab
repository: formalize peer interface with abstract base class
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
42 """Returns a local repository instance. |
f257943e47ab
repository: formalize peer interface with abstract base class
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
43 |
f257943e47ab
repository: formalize peer interface with abstract base class
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
44 If the peer represents a local repository, returns an object that |
f257943e47ab
repository: formalize peer interface with abstract base class
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
45 can be used to interface with it. Otherwise returns ``None``. |
f257943e47ab
repository: formalize peer interface with abstract base class
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
46 """ |
f257943e47ab
repository: formalize peer interface with abstract base class
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
47 |
37320
39f7d4ee8bcd
repository: port peer interfaces to zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37316
diff
changeset
|
48 def peer(): |
33800
f257943e47ab
repository: formalize peer interface with abstract base class
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
49 """Returns an object conforming to this interface. |
f257943e47ab
repository: formalize peer interface with abstract base class
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
50 |
f257943e47ab
repository: formalize peer interface with abstract base class
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
51 Most implementations will ``return self``. |
f257943e47ab
repository: formalize peer interface with abstract base class
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
52 """ |
f257943e47ab
repository: formalize peer interface with abstract base class
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
53 |
37320
39f7d4ee8bcd
repository: port peer interfaces to zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37316
diff
changeset
|
54 def canpush(): |
33800
f257943e47ab
repository: formalize peer interface with abstract base class
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
55 """Returns a boolean indicating if this peer can be pushed to.""" |
f257943e47ab
repository: formalize peer interface with abstract base class
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
56 |
37320
39f7d4ee8bcd
repository: port peer interfaces to zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37316
diff
changeset
|
57 def close(): |
33800
f257943e47ab
repository: formalize peer interface with abstract base class
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
58 """Close the connection to this peer. |
f257943e47ab
repository: formalize peer interface with abstract base class
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
59 |
f257943e47ab
repository: formalize peer interface with abstract base class
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
60 This is called when the peer will no longer be used. Resources |
f257943e47ab
repository: formalize peer interface with abstract base class
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
61 associated with the peer should be cleaned up. |
f257943e47ab
repository: formalize peer interface with abstract base class
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
62 """ |
f257943e47ab
repository: formalize peer interface with abstract base class
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
63 |
37810
856f381ad74b
interfaceutil: module to stub out zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37650
diff
changeset
|
64 class ipeercapabilities(interfaceutil.Interface): |
37610
98861a2298b5
repository: split capabilities methods into separate interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37440
diff
changeset
|
65 """Peer sub-interface related to capabilities.""" |
98861a2298b5
repository: split capabilities methods into separate interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37440
diff
changeset
|
66 |
98861a2298b5
repository: split capabilities methods into separate interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37440
diff
changeset
|
67 def capable(name): |
98861a2298b5
repository: split capabilities methods into separate interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37440
diff
changeset
|
68 """Determine support for a named capability. |
98861a2298b5
repository: split capabilities methods into separate interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37440
diff
changeset
|
69 |
98861a2298b5
repository: split capabilities methods into separate interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37440
diff
changeset
|
70 Returns ``False`` if capability not supported. |
98861a2298b5
repository: split capabilities methods into separate interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37440
diff
changeset
|
71 |
98861a2298b5
repository: split capabilities methods into separate interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37440
diff
changeset
|
72 Returns ``True`` if boolean capability is supported. Returns a string |
98861a2298b5
repository: split capabilities methods into separate interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37440
diff
changeset
|
73 if capability support is non-boolean. |
98861a2298b5
repository: split capabilities methods into separate interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37440
diff
changeset
|
74 |
98861a2298b5
repository: split capabilities methods into separate interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37440
diff
changeset
|
75 Capability strings may or may not map to wire protocol capabilities. |
98861a2298b5
repository: split capabilities methods into separate interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37440
diff
changeset
|
76 """ |
98861a2298b5
repository: split capabilities methods into separate interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37440
diff
changeset
|
77 |
98861a2298b5
repository: split capabilities methods into separate interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37440
diff
changeset
|
78 def requirecap(name, purpose): |
98861a2298b5
repository: split capabilities methods into separate interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37440
diff
changeset
|
79 """Require a capability to be present. |
98861a2298b5
repository: split capabilities methods into separate interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37440
diff
changeset
|
80 |
98861a2298b5
repository: split capabilities methods into separate interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37440
diff
changeset
|
81 Raises a ``CapabilityError`` if the capability isn't present. |
98861a2298b5
repository: split capabilities methods into separate interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37440
diff
changeset
|
82 """ |
98861a2298b5
repository: split capabilities methods into separate interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37440
diff
changeset
|
83 |
37810
856f381ad74b
interfaceutil: module to stub out zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37650
diff
changeset
|
84 class ipeercommands(interfaceutil.Interface): |
33801
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
85 """Client-side interface for communicating over the wire protocol. |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
86 |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
87 This interface is used as a gateway to the Mercurial wire protocol. |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
88 methods commonly call wire protocol commands of the same name. |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
89 """ |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
90 |
37320
39f7d4ee8bcd
repository: port peer interfaces to zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37316
diff
changeset
|
91 def branchmap(): |
33801
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
92 """Obtain heads in named branches. |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
93 |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
94 Returns a dict mapping branch name to an iterable of nodes that are |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
95 heads on that branch. |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
96 """ |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
97 |
37320
39f7d4ee8bcd
repository: port peer interfaces to zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37316
diff
changeset
|
98 def capabilities(): |
33801
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
99 """Obtain capabilities of the peer. |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
100 |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
101 Returns a set of string capabilities. |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
102 """ |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
103 |
37649
a168799687e5
wireproto: properly call clonebundles command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37635
diff
changeset
|
104 def clonebundles(): |
a168799687e5
wireproto: properly call clonebundles command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37635
diff
changeset
|
105 """Obtains the clone bundles manifest for the repo. |
a168799687e5
wireproto: properly call clonebundles command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37635
diff
changeset
|
106 |
a168799687e5
wireproto: properly call clonebundles command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37635
diff
changeset
|
107 Returns the manifest as unparsed bytes. |
a168799687e5
wireproto: properly call clonebundles command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37635
diff
changeset
|
108 """ |
a168799687e5
wireproto: properly call clonebundles command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37635
diff
changeset
|
109 |
37320
39f7d4ee8bcd
repository: port peer interfaces to zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37316
diff
changeset
|
110 def debugwireargs(one, two, three=None, four=None, five=None): |
33801
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
111 """Used to facilitate debugging of arguments passed over the wire.""" |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
112 |
37320
39f7d4ee8bcd
repository: port peer interfaces to zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37316
diff
changeset
|
113 def getbundle(source, **kwargs): |
33801
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
114 """Obtain remote repository data as a bundle. |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
115 |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
116 This command is how the bulk of repository data is transferred from |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
117 the peer to the local repository |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
118 |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
119 Returns a generator of bundle data. |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
120 """ |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
121 |
37320
39f7d4ee8bcd
repository: port peer interfaces to zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37316
diff
changeset
|
122 def heads(): |
33801
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
123 """Determine all known head revisions in the peer. |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
124 |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
125 Returns an iterable of binary nodes. |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
126 """ |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
127 |
37320
39f7d4ee8bcd
repository: port peer interfaces to zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37316
diff
changeset
|
128 def known(nodes): |
33801
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
129 """Determine whether multiple nodes are known. |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
130 |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
131 Accepts an iterable of nodes whose presence to check for. |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
132 |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
133 Returns an iterable of booleans indicating of the corresponding node |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
134 at that index is known to the peer. |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
135 """ |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
136 |
37320
39f7d4ee8bcd
repository: port peer interfaces to zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37316
diff
changeset
|
137 def listkeys(namespace): |
33801
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
138 """Obtain all keys in a pushkey namespace. |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
139 |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
140 Returns an iterable of key names. |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
141 """ |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
142 |
37320
39f7d4ee8bcd
repository: port peer interfaces to zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37316
diff
changeset
|
143 def lookup(key): |
33801
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
144 """Resolve a value to a known revision. |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
145 |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
146 Returns a binary node of the resolved revision on success. |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
147 """ |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
148 |
37320
39f7d4ee8bcd
repository: port peer interfaces to zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37316
diff
changeset
|
149 def pushkey(namespace, key, old, new): |
33801
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
150 """Set a value using the ``pushkey`` protocol. |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
151 |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
152 Arguments correspond to the pushkey namespace and key to operate on and |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
153 the old and new values for that key. |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
154 |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
155 Returns a string with the peer result. The value inside varies by the |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
156 namespace. |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
157 """ |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
158 |
37320
39f7d4ee8bcd
repository: port peer interfaces to zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37316
diff
changeset
|
159 def stream_out(): |
33801
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
160 """Obtain streaming clone data. |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
161 |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
162 Successful result should be a generator of data chunks. |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
163 """ |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
164 |
37320
39f7d4ee8bcd
repository: port peer interfaces to zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37316
diff
changeset
|
165 def unbundle(bundle, heads, url): |
33801
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
166 """Transfer repository data to the peer. |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
167 |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
168 This is how the bulk of data during a push is transferred. |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
169 |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
170 Returns the integer number of heads added to the peer. |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
171 """ |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
172 |
37810
856f381ad74b
interfaceutil: module to stub out zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37650
diff
changeset
|
173 class ipeerlegacycommands(interfaceutil.Interface): |
33801
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
174 """Interface for implementing support for legacy wire protocol commands. |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
175 |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
176 Wire protocol commands transition to legacy status when they are no longer |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
177 used by modern clients. To facilitate identifying which commands are |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
178 legacy, the interfaces are split. |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
179 """ |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
180 |
37320
39f7d4ee8bcd
repository: port peer interfaces to zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37316
diff
changeset
|
181 def between(pairs): |
33801
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
182 """Obtain nodes between pairs of nodes. |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
183 |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
184 ``pairs`` is an iterable of node pairs. |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
185 |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
186 Returns an iterable of iterables of nodes corresponding to each |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
187 requested pair. |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
188 """ |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
189 |
37320
39f7d4ee8bcd
repository: port peer interfaces to zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37316
diff
changeset
|
190 def branches(nodes): |
33801
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
191 """Obtain ancestor changesets of specific nodes back to a branch point. |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
192 |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
193 For each requested node, the peer finds the first ancestor node that is |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
194 a DAG root or is a merge. |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
195 |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
196 Returns an iterable of iterables with the resolved values for each node. |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
197 """ |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
198 |
37635
cc8c06835097
wireproto: convert legacy commands to command executor
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37633
diff
changeset
|
199 def changegroup(nodes, source): |
33801
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
200 """Obtain a changegroup with data for descendants of specified nodes.""" |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
201 |
37635
cc8c06835097
wireproto: convert legacy commands to command executor
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37633
diff
changeset
|
202 def changegroupsubset(bases, heads, source): |
33801
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
203 pass |
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
204 |
37810
856f381ad74b
interfaceutil: module to stub out zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37650
diff
changeset
|
205 class ipeercommandexecutor(interfaceutil.Interface): |
37629
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
206 """Represents a mechanism to execute remote commands. |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
207 |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
208 This is the primary interface for requesting that wire protocol commands |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
209 be executed. Instances of this interface are active in a context manager |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
210 and have a well-defined lifetime. When the context manager exits, all |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
211 outstanding requests are waited on. |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
212 """ |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
213 |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
214 def callcommand(name, args): |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
215 """Request that a named command be executed. |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
216 |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
217 Receives the command name and a dictionary of command arguments. |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
218 |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
219 Returns a ``concurrent.futures.Future`` that will resolve to the |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
220 result of that command request. That exact value is left up to |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
221 the implementation and possibly varies by command. |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
222 |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
223 Not all commands can coexist with other commands in an executor |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
224 instance: it depends on the underlying wire protocol transport being |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
225 used and the command itself. |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
226 |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
227 Implementations MAY call ``sendcommands()`` automatically if the |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
228 requested command can not coexist with other commands in this executor. |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
229 |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
230 Implementations MAY call ``sendcommands()`` automatically when the |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
231 future's ``result()`` is called. So, consumers using multiple |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
232 commands with an executor MUST ensure that ``result()`` is not called |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
233 until all command requests have been issued. |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
234 """ |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
235 |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
236 def sendcommands(): |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
237 """Trigger submission of queued command requests. |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
238 |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
239 Not all transports submit commands as soon as they are requested to |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
240 run. When called, this method forces queued command requests to be |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
241 issued. It will no-op if all commands have already been sent. |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
242 |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
243 When called, no more new commands may be issued with this executor. |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
244 """ |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
245 |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
246 def close(): |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
247 """Signal that this command request is finished. |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
248 |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
249 When called, no more new commands may be issued. All outstanding |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
250 commands that have previously been issued are waited on before |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
251 returning. This not only includes waiting for the futures to resolve, |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
252 but also waiting for all response data to arrive. In other words, |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
253 calling this waits for all on-wire state for issued command requests |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
254 to finish. |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
255 |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
256 When used as a context manager, this method is called when exiting the |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
257 context manager. |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
258 |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
259 This method may call ``sendcommands()`` if there are buffered commands. |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
260 """ |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
261 |
37810
856f381ad74b
interfaceutil: module to stub out zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37650
diff
changeset
|
262 class ipeerrequests(interfaceutil.Interface): |
37629
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
263 """Interface for executing commands on a peer.""" |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
264 |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
265 def commandexecutor(): |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
266 """A context manager that resolves to an ipeercommandexecutor. |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
267 |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
268 The object this resolves to can be used to issue command requests |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
269 to the peer. |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
270 |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
271 Callers should call its ``callcommand`` method to issue command |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
272 requests. |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
273 |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
274 A new executor should be obtained for each distinct set of commands |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
275 (possibly just a single command) that the consumer wants to execute |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
276 as part of a single operation or round trip. This is because some |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
277 peers are half-duplex and/or don't support persistent connections. |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
278 e.g. in the case of HTTP peers, commands sent to an executor represent |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
279 a single HTTP request. While some peers may support multiple command |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
280 sends over the wire per executor, consumers need to code to the least |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
281 capable peer. So it should be assumed that command executors buffer |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
282 called commands until they are told to send them and that each |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
283 command executor could result in a new connection or wire-level request |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
284 being issued. |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
285 """ |
fa0382088993
repository: define new interface for running commands
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37610
diff
changeset
|
286 |
37650
62ebfda864de
repository: remove ipeercommands from ipeerbase
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37649
diff
changeset
|
287 class ipeerbase(ipeerconnection, ipeercapabilities, ipeerrequests): |
37320
39f7d4ee8bcd
repository: port peer interfaces to zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37316
diff
changeset
|
288 """Unified interface for peer repositories. |
33800
f257943e47ab
repository: formalize peer interface with abstract base class
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
289 |
37320
39f7d4ee8bcd
repository: port peer interfaces to zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37316
diff
changeset
|
290 All peer instances must conform to this interface. |
33800
f257943e47ab
repository: formalize peer interface with abstract base class
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
291 """ |
33801
558f5b2ee10e
repository: formalize wire protocol interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33800
diff
changeset
|
292 |
37810
856f381ad74b
interfaceutil: module to stub out zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37650
diff
changeset
|
293 @interfaceutil.implementer(ipeerbase) |
37320
39f7d4ee8bcd
repository: port peer interfaces to zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37316
diff
changeset
|
294 class peer(object): |
39f7d4ee8bcd
repository: port peer interfaces to zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37316
diff
changeset
|
295 """Base class for peer repositories.""" |
39f7d4ee8bcd
repository: port peer interfaces to zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37316
diff
changeset
|
296 |
39f7d4ee8bcd
repository: port peer interfaces to zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37316
diff
changeset
|
297 def capable(self, name): |
33802
a0aad86b3b6a
repository: implement generic capability methods on peer class
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33801
diff
changeset
|
298 caps = self.capabilities() |
a0aad86b3b6a
repository: implement generic capability methods on peer class
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33801
diff
changeset
|
299 if name in caps: |
a0aad86b3b6a
repository: implement generic capability methods on peer class
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33801
diff
changeset
|
300 return True |
a0aad86b3b6a
repository: implement generic capability methods on peer class
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33801
diff
changeset
|
301 |
a0aad86b3b6a
repository: implement generic capability methods on peer class
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33801
diff
changeset
|
302 name = '%s=' % name |
a0aad86b3b6a
repository: implement generic capability methods on peer class
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33801
diff
changeset
|
303 for cap in caps: |
a0aad86b3b6a
repository: implement generic capability methods on peer class
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33801
diff
changeset
|
304 if cap.startswith(name): |
a0aad86b3b6a
repository: implement generic capability methods on peer class
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33801
diff
changeset
|
305 return cap[len(name):] |
a0aad86b3b6a
repository: implement generic capability methods on peer class
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33801
diff
changeset
|
306 |
a0aad86b3b6a
repository: implement generic capability methods on peer class
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33801
diff
changeset
|
307 return False |
a0aad86b3b6a
repository: implement generic capability methods on peer class
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33801
diff
changeset
|
308 |
a0aad86b3b6a
repository: implement generic capability methods on peer class
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33801
diff
changeset
|
309 def requirecap(self, name, purpose): |
a0aad86b3b6a
repository: implement generic capability methods on peer class
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33801
diff
changeset
|
310 if self.capable(name): |
a0aad86b3b6a
repository: implement generic capability methods on peer class
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33801
diff
changeset
|
311 return |
a0aad86b3b6a
repository: implement generic capability methods on peer class
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33801
diff
changeset
|
312 |
a0aad86b3b6a
repository: implement generic capability methods on peer class
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33801
diff
changeset
|
313 raise error.CapabilityError( |
a0aad86b3b6a
repository: implement generic capability methods on peer class
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33801
diff
changeset
|
314 _('cannot %s; remote repository does not support the %r ' |
a0aad86b3b6a
repository: implement generic capability methods on peer class
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33801
diff
changeset
|
315 'capability') % (purpose, name)) |
a0aad86b3b6a
repository: implement generic capability methods on peer class
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33801
diff
changeset
|
316 |
37810
856f381ad74b
interfaceutil: module to stub out zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37650
diff
changeset
|
317 class ifilerevisionssequence(interfaceutil.Interface): |
37440
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
318 """Contains index data for all revisions of a file. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
319 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
320 Types implementing this behave like lists of tuples. The index |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
321 in the list corresponds to the revision number. The values contain |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
322 index metadata. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
323 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
324 The *null* revision (revision number -1) is always the last item |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
325 in the index. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
326 """ |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
327 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
328 def __len__(): |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
329 """The total number of revisions.""" |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
330 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
331 def __getitem__(rev): |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
332 """Returns the object having a specific revision number. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
333 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
334 Returns an 8-tuple with the following fields: |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
335 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
336 offset+flags |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
337 Contains the offset and flags for the revision. 64-bit unsigned |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
338 integer where first 6 bytes are the offset and the next 2 bytes |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
339 are flags. The offset can be 0 if it is not used by the store. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
340 compressed size |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
341 Size of the revision data in the store. It can be 0 if it isn't |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
342 needed by the store. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
343 uncompressed size |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
344 Fulltext size. It can be 0 if it isn't needed by the store. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
345 base revision |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
346 Revision number of revision the delta for storage is encoded |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
347 against. -1 indicates not encoded against a base revision. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
348 link revision |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
349 Revision number of changelog revision this entry is related to. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
350 p1 revision |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
351 Revision number of 1st parent. -1 if no 1st parent. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
352 p2 revision |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
353 Revision number of 2nd parent. -1 if no 1st parent. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
354 node |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
355 Binary node value for this revision number. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
356 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
357 Negative values should index off the end of the sequence. ``-1`` |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
358 should return the null revision. ``-2`` should return the most |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
359 recent revision. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
360 """ |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
361 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
362 def __contains__(rev): |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
363 """Whether a revision number exists.""" |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
364 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
365 def insert(self, i, entry): |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
366 """Add an item to the index at specific revision.""" |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
367 |
37810
856f381ad74b
interfaceutil: module to stub out zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37650
diff
changeset
|
368 class ifileindex(interfaceutil.Interface): |
37440
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
369 """Storage interface for index data of a single file. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
370 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
371 File storage data is divided into index metadata and data storage. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
372 This interface defines the index portion of the interface. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
373 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
374 The index logically consists of: |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
375 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
376 * A mapping between revision numbers and nodes. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
377 * DAG data (storing and querying the relationship between nodes). |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
378 * Metadata to facilitate storage. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
379 """ |
37810
856f381ad74b
interfaceutil: module to stub out zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37650
diff
changeset
|
380 index = interfaceutil.Attribute( |
37440
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
381 """An ``ifilerevisionssequence`` instance.""") |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
382 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
383 def __len__(): |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
384 """Obtain the number of revisions stored for this file.""" |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
385 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
386 def __iter__(): |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
387 """Iterate over revision numbers for this file.""" |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
388 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
389 def revs(start=0, stop=None): |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
390 """Iterate over revision numbers for this file, with control.""" |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
391 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
392 def parents(node): |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
393 """Returns a 2-tuple of parent nodes for a revision. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
394 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
395 Values will be ``nullid`` if the parent is empty. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
396 """ |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
397 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
398 def parentrevs(rev): |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
399 """Like parents() but operates on revision numbers.""" |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
400 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
401 def rev(node): |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
402 """Obtain the revision number given a node. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
403 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
404 Raises ``error.LookupError`` if the node is not known. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
405 """ |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
406 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
407 def node(rev): |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
408 """Obtain the node value given a revision number. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
409 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
410 Raises ``IndexError`` if the node is not known. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
411 """ |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
412 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
413 def lookup(node): |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
414 """Attempt to resolve a value to a node. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
415 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
416 Value can be a binary node, hex node, revision number, or a string |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
417 that can be converted to an integer. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
418 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
419 Raises ``error.LookupError`` if a node could not be resolved. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
420 """ |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
421 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
422 def linkrev(rev): |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
423 """Obtain the changeset revision number a revision is linked to.""" |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
424 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
425 def flags(rev): |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
426 """Obtain flags used to affect storage of a revision.""" |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
427 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
428 def iscensored(rev): |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
429 """Return whether a revision's content has been censored.""" |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
430 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
431 def commonancestorsheads(node1, node2): |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
432 """Obtain an iterable of nodes containing heads of common ancestors. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
433 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
434 See ``ancestor.commonancestorsheads()``. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
435 """ |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
436 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
437 def descendants(revs): |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
438 """Obtain descendant revision numbers for a set of revision numbers. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
439 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
440 If ``nullrev`` is in the set, this is equivalent to ``revs()``. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
441 """ |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
442 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
443 def headrevs(): |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
444 """Obtain a list of revision numbers that are DAG heads. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
445 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
446 The list is sorted oldest to newest. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
447 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
448 TODO determine if sorting is required. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
449 """ |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
450 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
451 def heads(start=None, stop=None): |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
452 """Obtain a list of nodes that are DAG heads, with control. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
453 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
454 The set of revisions examined can be limited by specifying |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
455 ``start`` and ``stop``. ``start`` is a node. ``stop`` is an |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
456 iterable of nodes. DAG traversal starts at earlier revision |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
457 ``start`` and iterates forward until any node in ``stop`` is |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
458 encountered. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
459 """ |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
460 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
461 def children(node): |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
462 """Obtain nodes that are children of a node. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
463 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
464 Returns a list of nodes. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
465 """ |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
466 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
467 def deltaparent(rev): |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
468 """"Return the revision that is a suitable parent to delta against.""" |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
469 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
470 def candelta(baserev, rev): |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
471 """"Whether a delta can be generated between two revisions.""" |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
472 |
37810
856f381ad74b
interfaceutil: module to stub out zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37650
diff
changeset
|
473 class ifiledata(interfaceutil.Interface): |
37440
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
474 """Storage interface for data storage of a specific file. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
475 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
476 This complements ``ifileindex`` and provides an interface for accessing |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
477 data for a tracked file. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
478 """ |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
479 def rawsize(rev): |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
480 """The size of the fulltext data for a revision as stored.""" |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
481 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
482 def size(rev): |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
483 """Obtain the fulltext size of file data. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
484 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
485 Any metadata is excluded from size measurements. Use ``rawsize()`` if |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
486 metadata size is important. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
487 """ |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
488 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
489 def checkhash(fulltext, node, p1=None, p2=None, rev=None): |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
490 """Validate the stored hash of a given fulltext and node. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
491 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
492 Raises ``error.RevlogError`` is hash validation fails. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
493 """ |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
494 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
495 def revision(node, raw=False): |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
496 """"Obtain fulltext data for a node. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
497 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
498 By default, any storage transformations are applied before the data |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
499 is returned. If ``raw`` is True, non-raw storage transformations |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
500 are not applied. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
501 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
502 The fulltext data may contain a header containing metadata. Most |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
503 consumers should use ``read()`` to obtain the actual file data. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
504 """ |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
505 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
506 def read(node): |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
507 """Resolve file fulltext data. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
508 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
509 This is similar to ``revision()`` except any metadata in the data |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
510 headers is stripped. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
511 """ |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
512 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
513 def renamed(node): |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
514 """Obtain copy metadata for a node. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
515 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
516 Returns ``False`` if no copy metadata is stored or a 2-tuple of |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
517 (path, node) from which this revision was copied. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
518 """ |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
519 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
520 def cmp(node, fulltext): |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
521 """Compare fulltext to another revision. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
522 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
523 Returns True if the fulltext is different from what is stored. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
524 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
525 This takes copy metadata into account. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
526 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
527 TODO better document the copy metadata and censoring logic. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
528 """ |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
529 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
530 def revdiff(rev1, rev2): |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
531 """Obtain a delta between two revision numbers. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
532 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
533 Operates on raw data in the store (``revision(node, raw=True)``). |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
534 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
535 The returned data is the result of ``bdiff.bdiff`` on the raw |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
536 revision data. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
537 """ |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
538 |
37810
856f381ad74b
interfaceutil: module to stub out zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37650
diff
changeset
|
539 class ifilemutation(interfaceutil.Interface): |
37440
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
540 """Storage interface for mutation events of a tracked file.""" |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
541 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
542 def add(filedata, meta, transaction, linkrev, p1, p2): |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
543 """Add a new revision to the store. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
544 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
545 Takes file data, dictionary of metadata, a transaction, linkrev, |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
546 and parent nodes. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
547 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
548 Returns the node that was added. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
549 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
550 May no-op if a revision matching the supplied data is already stored. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
551 """ |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
552 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
553 def addrevision(revisiondata, transaction, linkrev, p1, p2, node=None, |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
554 flags=0, cachedelta=None): |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
555 """Add a new revision to the store. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
556 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
557 This is similar to ``add()`` except it operates at a lower level. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
558 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
559 The data passed in already contains a metadata header, if any. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
560 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
561 ``node`` and ``flags`` can be used to define the expected node and |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
562 the flags to use with storage. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
563 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
564 ``add()`` is usually called when adding files from e.g. the working |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
565 directory. ``addrevision()`` is often called by ``add()`` and for |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
566 scenarios where revision data has already been computed, such as when |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
567 applying raw data from a peer repo. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
568 """ |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
569 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
570 def addgroup(deltas, linkmapper, transaction, addrevisioncb=None): |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
571 """Process a series of deltas for storage. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
572 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
573 ``deltas`` is an iterable of 7-tuples of |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
574 (node, p1, p2, linknode, deltabase, delta, flags) defining revisions |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
575 to add. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
576 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
577 The ``delta`` field contains ``mpatch`` data to apply to a base |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
578 revision, identified by ``deltabase``. The base node can be |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
579 ``nullid``, in which case the header from the delta can be ignored |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
580 and the delta used as the fulltext. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
581 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
582 ``addrevisioncb`` should be called for each node as it is committed. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
583 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
584 Returns a list of nodes that were processed. A node will be in the list |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
585 even if it existed in the store previously. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
586 """ |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
587 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
588 def getstrippoint(minlink): |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
589 """Find the minimum revision that must be stripped to strip a linkrev. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
590 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
591 Returns a 2-tuple containing the minimum revision number and a set |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
592 of all revisions numbers that would be broken by this strip. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
593 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
594 TODO this is highly revlog centric and should be abstracted into |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
595 a higher-level deletion API. ``repair.strip()`` relies on this. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
596 """ |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
597 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
598 def strip(minlink, transaction): |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
599 """Remove storage of items starting at a linkrev. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
600 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
601 This uses ``getstrippoint()`` to determine the first node to remove. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
602 Then it effectively truncates storage for all revisions after that. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
603 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
604 TODO this is highly revlog centric and should be abstracted into a |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
605 higher-level deletion API. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
606 """ |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
607 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
608 class ifilestorage(ifileindex, ifiledata, ifilemutation): |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
609 """Complete storage interface for a single tracked file.""" |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
610 |
37810
856f381ad74b
interfaceutil: module to stub out zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37650
diff
changeset
|
611 version = interfaceutil.Attribute( |
37440
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
612 """Version number of storage. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
613 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
614 TODO this feels revlog centric and could likely be removed. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
615 """) |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
616 |
37810
856f381ad74b
interfaceutil: module to stub out zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37650
diff
changeset
|
617 storedeltachains = interfaceutil.Attribute( |
37440
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
618 """Whether the store stores deltas. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
619 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
620 TODO deltachains are revlog centric. This can probably removed |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
621 once there are better abstractions for obtaining/writing |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
622 data. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
623 """) |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
624 |
37810
856f381ad74b
interfaceutil: module to stub out zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37650
diff
changeset
|
625 _generaldelta = interfaceutil.Attribute( |
37440
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
626 """Whether deltas can be against any parent revision. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
627 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
628 TODO this is used by changegroup code and it could probably be |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
629 folded into another API. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
630 """) |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
631 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
632 def files(): |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
633 """Obtain paths that are backing storage for this file. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
634 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
635 TODO this is used heavily by verify code and there should probably |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
636 be a better API for that. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
637 """ |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
638 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
639 def checksize(): |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
640 """Obtain the expected sizes of backing files. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
641 |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
642 TODO this is used by verify and it should not be part of the interface. |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
643 """ |
4335a75f0bd0
repository: define existing interface for file storage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37351
diff
changeset
|
644 |
37810
856f381ad74b
interfaceutil: module to stub out zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37650
diff
changeset
|
645 class completelocalrepository(interfaceutil.Interface): |
37181
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
646 """Monolithic interface for local repositories. |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
647 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
648 This currently captures the reality of things - not how things should be. |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
649 """ |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
650 |
37810
856f381ad74b
interfaceutil: module to stub out zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37650
diff
changeset
|
651 supportedformats = interfaceutil.Attribute( |
37181
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
652 """Set of requirements that apply to stream clone. |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
653 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
654 This is actually a class attribute and is shared among all instances. |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
655 """) |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
656 |
37810
856f381ad74b
interfaceutil: module to stub out zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37650
diff
changeset
|
657 openerreqs = interfaceutil.Attribute( |
37181
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
658 """Set of requirements that are passed to the opener. |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
659 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
660 This is actually a class attribute and is shared among all instances. |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
661 """) |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
662 |
37810
856f381ad74b
interfaceutil: module to stub out zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37650
diff
changeset
|
663 supported = interfaceutil.Attribute( |
37181
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
664 """Set of requirements that this repo is capable of opening.""") |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
665 |
37810
856f381ad74b
interfaceutil: module to stub out zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37650
diff
changeset
|
666 requirements = interfaceutil.Attribute( |
37181
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
667 """Set of requirements this repo uses.""") |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
668 |
37810
856f381ad74b
interfaceutil: module to stub out zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37650
diff
changeset
|
669 filtername = interfaceutil.Attribute( |
37181
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
670 """Name of the repoview that is active on this repo.""") |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
671 |
37810
856f381ad74b
interfaceutil: module to stub out zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37650
diff
changeset
|
672 wvfs = interfaceutil.Attribute( |
37181
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
673 """VFS used to access the working directory.""") |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
674 |
37810
856f381ad74b
interfaceutil: module to stub out zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37650
diff
changeset
|
675 vfs = interfaceutil.Attribute( |
37181
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
676 """VFS rooted at the .hg directory. |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
677 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
678 Used to access repository data not in the store. |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
679 """) |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
680 |
37810
856f381ad74b
interfaceutil: module to stub out zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37650
diff
changeset
|
681 svfs = interfaceutil.Attribute( |
37181
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
682 """VFS rooted at the store. |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
683 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
684 Used to access repository data in the store. Typically .hg/store. |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
685 But can point elsewhere if the store is shared. |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
686 """) |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
687 |
37810
856f381ad74b
interfaceutil: module to stub out zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37650
diff
changeset
|
688 root = interfaceutil.Attribute( |
37181
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
689 """Path to the root of the working directory.""") |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
690 |
37810
856f381ad74b
interfaceutil: module to stub out zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37650
diff
changeset
|
691 path = interfaceutil.Attribute( |
37181
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
692 """Path to the .hg directory.""") |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
693 |
37810
856f381ad74b
interfaceutil: module to stub out zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37650
diff
changeset
|
694 origroot = interfaceutil.Attribute( |
37181
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
695 """The filesystem path that was used to construct the repo.""") |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
696 |
37810
856f381ad74b
interfaceutil: module to stub out zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37650
diff
changeset
|
697 auditor = interfaceutil.Attribute( |
37181
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
698 """A pathauditor for the working directory. |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
699 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
700 This checks if a path refers to a nested repository. |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
701 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
702 Operates on the filesystem. |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
703 """) |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
704 |
37810
856f381ad74b
interfaceutil: module to stub out zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37650
diff
changeset
|
705 nofsauditor = interfaceutil.Attribute( |
37181
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
706 """A pathauditor for the working directory. |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
707 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
708 This is like ``auditor`` except it doesn't do filesystem checks. |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
709 """) |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
710 |
37810
856f381ad74b
interfaceutil: module to stub out zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37650
diff
changeset
|
711 baseui = interfaceutil.Attribute( |
37181
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
712 """Original ui instance passed into constructor.""") |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
713 |
37810
856f381ad74b
interfaceutil: module to stub out zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37650
diff
changeset
|
714 ui = interfaceutil.Attribute( |
37181
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
715 """Main ui instance for this instance.""") |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
716 |
37810
856f381ad74b
interfaceutil: module to stub out zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37650
diff
changeset
|
717 sharedpath = interfaceutil.Attribute( |
37181
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
718 """Path to the .hg directory of the repo this repo was shared from.""") |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
719 |
37810
856f381ad74b
interfaceutil: module to stub out zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37650
diff
changeset
|
720 store = interfaceutil.Attribute( |
37181
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
721 """A store instance.""") |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
722 |
37810
856f381ad74b
interfaceutil: module to stub out zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37650
diff
changeset
|
723 spath = interfaceutil.Attribute( |
37181
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
724 """Path to the store.""") |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
725 |
37810
856f381ad74b
interfaceutil: module to stub out zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37650
diff
changeset
|
726 sjoin = interfaceutil.Attribute( |
37181
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
727 """Alias to self.store.join.""") |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
728 |
37810
856f381ad74b
interfaceutil: module to stub out zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37650
diff
changeset
|
729 cachevfs = interfaceutil.Attribute( |
37181
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
730 """A VFS used to access the cache directory. |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
731 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
732 Typically .hg/cache. |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
733 """) |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
734 |
37810
856f381ad74b
interfaceutil: module to stub out zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37650
diff
changeset
|
735 filteredrevcache = interfaceutil.Attribute( |
37181
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
736 """Holds sets of revisions to be filtered.""") |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
737 |
37810
856f381ad74b
interfaceutil: module to stub out zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37650
diff
changeset
|
738 names = interfaceutil.Attribute( |
37181
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
739 """A ``namespaces`` instance.""") |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
740 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
741 def close(): |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
742 """Close the handle on this repository.""" |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
743 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
744 def peer(): |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
745 """Obtain an object conforming to the ``peer`` interface.""" |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
746 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
747 def unfiltered(): |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
748 """Obtain an unfiltered/raw view of this repo.""" |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
749 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
750 def filtered(name, visibilityexceptions=None): |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
751 """Obtain a named view of this repository.""" |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
752 |
37810
856f381ad74b
interfaceutil: module to stub out zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37650
diff
changeset
|
753 obsstore = interfaceutil.Attribute( |
37181
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
754 """A store of obsolescence data.""") |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
755 |
37810
856f381ad74b
interfaceutil: module to stub out zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37650
diff
changeset
|
756 changelog = interfaceutil.Attribute( |
37181
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
757 """A handle on the changelog revlog.""") |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
758 |
37810
856f381ad74b
interfaceutil: module to stub out zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37650
diff
changeset
|
759 manifestlog = interfaceutil.Attribute( |
37181
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
760 """A handle on the root manifest revlog.""") |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
761 |
37810
856f381ad74b
interfaceutil: module to stub out zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37650
diff
changeset
|
762 dirstate = interfaceutil.Attribute( |
37181
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
763 """Working directory state.""") |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
764 |
37810
856f381ad74b
interfaceutil: module to stub out zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37650
diff
changeset
|
765 narrowpats = interfaceutil.Attribute( |
37181
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
766 """Matcher patterns for this repository's narrowspec.""") |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
767 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
768 def narrowmatch(): |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
769 """Obtain a matcher for the narrowspec.""" |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
770 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
771 def setnarrowpats(newincludes, newexcludes): |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
772 """Define the narrowspec for this repository.""" |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
773 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
774 def __getitem__(changeid): |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
775 """Try to resolve a changectx.""" |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
776 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
777 def __contains__(changeid): |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
778 """Whether a changeset exists.""" |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
779 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
780 def __nonzero__(): |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
781 """Always returns True.""" |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
782 return True |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
783 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
784 __bool__ = __nonzero__ |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
785 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
786 def __len__(): |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
787 """Returns the number of changesets in the repo.""" |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
788 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
789 def __iter__(): |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
790 """Iterate over revisions in the changelog.""" |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
791 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
792 def revs(expr, *args): |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
793 """Evaluate a revset. |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
794 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
795 Emits revisions. |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
796 """ |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
797 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
798 def set(expr, *args): |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
799 """Evaluate a revset. |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
800 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
801 Emits changectx instances. |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
802 """ |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
803 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
804 def anyrevs(specs, user=False, localalias=None): |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
805 """Find revisions matching one of the given revsets.""" |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
806 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
807 def url(): |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
808 """Returns a string representing the location of this repo.""" |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
809 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
810 def hook(name, throw=False, **args): |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
811 """Call a hook.""" |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
812 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
813 def tags(): |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
814 """Return a mapping of tag to node.""" |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
815 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
816 def tagtype(tagname): |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
817 """Return the type of a given tag.""" |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
818 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
819 def tagslist(): |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
820 """Return a list of tags ordered by revision.""" |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
821 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
822 def nodetags(node): |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
823 """Return the tags associated with a node.""" |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
824 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
825 def nodebookmarks(node): |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
826 """Return the list of bookmarks pointing to the specified node.""" |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
827 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
828 def branchmap(): |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
829 """Return a mapping of branch to heads in that branch.""" |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
830 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
831 def revbranchcache(): |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
832 pass |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
833 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
834 def branchtip(branchtip, ignoremissing=False): |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
835 """Return the tip node for a given branch.""" |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
836 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
837 def lookup(key): |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
838 """Resolve the node for a revision.""" |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
839 |
37351
fdd22bf6398f
localrepo: drop "remote" argument from lookupbranch() (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
37320
diff
changeset
|
840 def lookupbranch(key): |
37181
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
841 """Look up the branch name of the given revision or branch name.""" |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
842 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
843 def known(nodes): |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
844 """Determine whether a series of nodes is known. |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
845 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
846 Returns a list of bools. |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
847 """ |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
848 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
849 def local(): |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
850 """Whether the repository is local.""" |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
851 return True |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
852 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
853 def publishing(): |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
854 """Whether the repository is a publishing repository.""" |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
855 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
856 def cancopy(): |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
857 pass |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
858 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
859 def shared(): |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
860 """The type of shared repository or None.""" |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
861 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
862 def wjoin(f, *insidef): |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
863 """Calls self.vfs.reljoin(self.root, f, *insidef)""" |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
864 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
865 def file(f): |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
866 """Obtain a filelog for a tracked path.""" |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
867 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
868 def setparents(p1, p2): |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
869 """Set the parent nodes of the working directory.""" |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
870 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
871 def filectx(path, changeid=None, fileid=None): |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
872 """Obtain a filectx for the given file revision.""" |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
873 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
874 def getcwd(): |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
875 """Obtain the current working directory from the dirstate.""" |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
876 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
877 def pathto(f, cwd=None): |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
878 """Obtain the relative path to a file.""" |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
879 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
880 def adddatafilter(name, fltr): |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
881 pass |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
882 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
883 def wread(filename): |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
884 """Read a file from wvfs, using data filters.""" |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
885 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
886 def wwrite(filename, data, flags, backgroundclose=False, **kwargs): |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
887 """Write data to a file in the wvfs, using data filters.""" |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
888 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
889 def wwritedata(filename, data): |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
890 """Resolve data for writing to the wvfs, using data filters.""" |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
891 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
892 def currenttransaction(): |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
893 """Obtain the current transaction instance or None.""" |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
894 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
895 def transaction(desc, report=None): |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
896 """Open a new transaction to write to the repository.""" |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
897 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
898 def undofiles(): |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
899 """Returns a list of (vfs, path) for files to undo transactions.""" |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
900 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
901 def recover(): |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
902 """Roll back an interrupted transaction.""" |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
903 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
904 def rollback(dryrun=False, force=False): |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
905 """Undo the last transaction. |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
906 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
907 DANGEROUS. |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
908 """ |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
909 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
910 def updatecaches(tr=None, full=False): |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
911 """Warm repo caches.""" |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
912 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
913 def invalidatecaches(): |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
914 """Invalidate cached data due to the repository mutating.""" |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
915 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
916 def invalidatevolatilesets(): |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
917 pass |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
918 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
919 def invalidatedirstate(): |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
920 """Invalidate the dirstate.""" |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
921 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
922 def invalidate(clearfilecache=False): |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
923 pass |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
924 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
925 def invalidateall(): |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
926 pass |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
927 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
928 def lock(wait=True): |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
929 """Lock the repository store and return a lock instance.""" |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
930 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
931 def wlock(wait=True): |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
932 """Lock the non-store parts of the repository.""" |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
933 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
934 def currentwlock(): |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
935 """Return the wlock if it's held or None.""" |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
936 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
937 def checkcommitpatterns(wctx, vdirs, match, status, fail): |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
938 pass |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
939 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
940 def commit(text='', user=None, date=None, match=None, force=False, |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
941 editor=False, extra=None): |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
942 """Add a new revision to the repository.""" |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
943 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
944 def commitctx(ctx, error=False): |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
945 """Commit a commitctx instance to the repository.""" |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
946 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
947 def destroying(): |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
948 """Inform the repository that nodes are about to be destroyed.""" |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
949 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
950 def destroyed(): |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
951 """Inform the repository that nodes have been destroyed.""" |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
952 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
953 def status(node1='.', node2=None, match=None, ignored=False, |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
954 clean=False, unknown=False, listsubrepos=False): |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
955 """Convenience method to call repo[x].status().""" |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
956 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
957 def addpostdsstatus(ps): |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
958 pass |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
959 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
960 def postdsstatus(): |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
961 pass |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
962 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
963 def clearpostdsstatus(): |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
964 pass |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
965 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
966 def heads(start=None): |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
967 """Obtain list of nodes that are DAG heads.""" |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
968 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
969 def branchheads(branch=None, start=None, closed=False): |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
970 pass |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
971 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
972 def branches(nodes): |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
973 pass |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
974 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
975 def between(pairs): |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
976 pass |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
977 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
978 def checkpush(pushop): |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
979 pass |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
980 |
37810
856f381ad74b
interfaceutil: module to stub out zope.interface
Gregory Szorc <gregory.szorc@gmail.com>
parents:
37650
diff
changeset
|
981 prepushoutgoinghooks = interfaceutil.Attribute( |
37181
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
982 """util.hooks instance.""") |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
983 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
984 def pushkey(namespace, key, old, new): |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
985 pass |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
986 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
987 def listkeys(namespace): |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
988 pass |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
989 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
990 def debugwireargs(one, two, three=None, four=None, five=None): |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
991 pass |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
992 |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
993 def savecommitmessage(text): |
0dfb5672f015
repository: define interface for local repositories
Gregory Szorc <gregory.szorc@gmail.com>
parents:
33802
diff
changeset
|
994 pass |