Mercurial > hg > mercurial-crew-with-dirclash
annotate mercurial/repo.py @ 5380:a5a7f7fd5554
convert_git: add --filemap support
author | Alexis S. L. Carvalho <alexis@cecm.usp.br> |
---|---|
date | Thu, 04 Oct 2007 23:21:37 -0300 |
parents | 65dc707606ed |
children | 08d6e8754388 |
rev | line source |
---|---|
1089 | 1 # repo.py - repository base classes for mercurial |
2 # | |
4635
63b9d2deed48
Updated copyright notices and add "and others" to "hg version"
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3930
diff
changeset
|
3 # Copyright 2005, 2006 Matt Mackall <mpm@selenic.com> |
2858 | 4 # Copyright 2006 Vadim Gelfer <vadim.gelfer@gmail.com> |
1089 | 5 # |
6 # This software may be used and distributed according to the terms | |
7 # of the GNU General Public License, incorporated herein by reference. | |
8 | |
2612
ffb895f16925
add support for streaming clone.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
1089
diff
changeset
|
9 class RepoError(Exception): |
ffb895f16925
add support for streaming clone.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
1089
diff
changeset
|
10 pass |
ffb895f16925
add support for streaming clone.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
1089
diff
changeset
|
11 |
5255
65dc707606ed
Push capability checking into protocol-level code.
Bryan O'Sullivan <bos@serpentine.com>
parents:
4635
diff
changeset
|
12 class NoCapability(RepoError): |
65dc707606ed
Push capability checking into protocol-level code.
Bryan O'Sullivan <bos@serpentine.com>
parents:
4635
diff
changeset
|
13 pass |
65dc707606ed
Push capability checking into protocol-level code.
Bryan O'Sullivan <bos@serpentine.com>
parents:
4635
diff
changeset
|
14 |
2612
ffb895f16925
add support for streaming clone.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
1089
diff
changeset
|
15 class repository(object): |
ffb895f16925
add support for streaming clone.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
1089
diff
changeset
|
16 def capable(self, name): |
ffb895f16925
add support for streaming clone.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
1089
diff
changeset
|
17 '''tell whether repo supports named capability. |
ffb895f16925
add support for streaming clone.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
1089
diff
changeset
|
18 return False if not supported. |
ffb895f16925
add support for streaming clone.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
1089
diff
changeset
|
19 if boolean capability, return True. |
ffb895f16925
add support for streaming clone.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
1089
diff
changeset
|
20 if string capability, return string.''' |
5255
65dc707606ed
Push capability checking into protocol-level code.
Bryan O'Sullivan <bos@serpentine.com>
parents:
4635
diff
changeset
|
21 if name in self.capabilities: |
65dc707606ed
Push capability checking into protocol-level code.
Bryan O'Sullivan <bos@serpentine.com>
parents:
4635
diff
changeset
|
22 return True |
2612
ffb895f16925
add support for streaming clone.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
1089
diff
changeset
|
23 name_eq = name + '=' |
ffb895f16925
add support for streaming clone.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
1089
diff
changeset
|
24 for cap in self.capabilities: |
ffb895f16925
add support for streaming clone.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
1089
diff
changeset
|
25 if cap.startswith(name_eq): |
ffb895f16925
add support for streaming clone.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
1089
diff
changeset
|
26 return cap[len(name_eq):] |
ffb895f16925
add support for streaming clone.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
1089
diff
changeset
|
27 return False |
5255
65dc707606ed
Push capability checking into protocol-level code.
Bryan O'Sullivan <bos@serpentine.com>
parents:
4635
diff
changeset
|
28 |
65dc707606ed
Push capability checking into protocol-level code.
Bryan O'Sullivan <bos@serpentine.com>
parents:
4635
diff
changeset
|
29 def requirecap(self, name, purpose): |
65dc707606ed
Push capability checking into protocol-level code.
Bryan O'Sullivan <bos@serpentine.com>
parents:
4635
diff
changeset
|
30 '''raise an exception if the given capability is not present''' |
65dc707606ed
Push capability checking into protocol-level code.
Bryan O'Sullivan <bos@serpentine.com>
parents:
4635
diff
changeset
|
31 if not self.capable(name): |
65dc707606ed
Push capability checking into protocol-level code.
Bryan O'Sullivan <bos@serpentine.com>
parents:
4635
diff
changeset
|
32 raise NoCapability(_('cannot %s; remote repository does not ' |
65dc707606ed
Push capability checking into protocol-level code.
Bryan O'Sullivan <bos@serpentine.com>
parents:
4635
diff
changeset
|
33 'support the %r capability') % |
65dc707606ed
Push capability checking into protocol-level code.
Bryan O'Sullivan <bos@serpentine.com>
parents:
4635
diff
changeset
|
34 (purpose, name)) |