1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
from bzrlib import errors
from bzrlib.bzrdir import BzrDir
from bzrlib.transport import get_transport
from bzrtools import apache_ls
def list_branches(t):
def is_inside(branch):
return bool(branch.base.startswith(t.base))
if t.base.startswith('http://'):
def evaluate(bzrdir):
try:
branch = bzrdir.open_branch()
if is_inside(branch):
return True, branch
else:
return True, None
except errors.NotBranchError:
return True, None
return [b for b in BzrDir.find_bzrdirs(t, list_current=apache_ls,
evaluate=evaluate) if b is not None]
elif not t.listable():
raise BzrCommandError("Can't list this type of location.")
return [b for b in BzrDir.find_branches(t) if is_inside(b)]
def branches(location=None):
if location is None:
location = '.'
t = get_transport(location)
for branch in list_branches(t):
if branch is None:
continue
print branch.base[len(t.base):].rstrip('/')
|