~bzr-pqm/bzr/1.17

« back to all changes in this revision

Viewing changes to bzrlib/revisionspec.py

merge merge tweaks from aaron, which includes latest .dev

Show diffs side-by-side

added added

removed removed

Lines of Context:
110
110
        if spec is None:
111
111
            return object.__new__(RevisionSpec, spec)
112
112
 
113
 
        if isinstance(spec, RevisionSpec):
114
 
            import pdb;pdb.set_trace()
115
 
 
116
113
        try:
117
114
            spec = int(spec)
118
115
        except ValueError:
119
116
            pass
120
 
        except TypeError:
121
 
            raise TypeError('Unexpected type, got %s, %r' % (type(spec), spec))
122
 
 
123
117
 
124
118
        if isinstance(spec, int):
125
119
            return object.__new__(RevisionSpec_int, spec)
134
128
            raise TypeError('Unhandled revision type %s' % spec)
135
129
 
136
130
    def __init__(self, spec):
137
 
        if isinstance(spec, RevisionSpec):
138
 
            self.spec = spec.spec
139
 
        else:
140
 
            if self.prefix and spec.startswith(self.prefix):
141
 
                spec = spec[len(self.prefix):]
142
 
            self.spec = spec
 
131
        if self.prefix and spec.startswith(self.prefix):
 
132
            spec = spec[len(self.prefix):]
 
133
        self.spec = spec
143
134
 
144
135
    def _match_on(self, branch, revs):
145
136
        return RevisionInfo(branch, 0, None)
166
157
                              self.prefix or '',
167
158
                              self.spec)
168
159
 
169
 
    def __eq__(self, other):
170
 
        if isinstance(other, RevisionSpec):
171
 
            return self.spec == other.spec
172
 
        return other == self.spec
173
 
 
174
160
 
175
161
# private API
176
162
 
177
163
class RevisionSpec_int(RevisionSpec):
178
164
    """Spec is a number.  Special case."""
179
165
    def __init__(self, spec):
180
 
        if isinstance(spec, RevisionSpec):
181
 
            self.spec = int(spec.spec)
182
 
        else:
183
 
            self.spec = int(spec)
 
166
        self.spec = int(spec)
184
167
 
185
168
    def _match_on(self, branch, revs):
186
169
        if self.spec < 0: