bzr branch
http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar
0.200.695
by Jelmer Vernooij
Clean up trailing whitespace. |
1 |
# Copyright (C) 2008 Jelmer Vernooij
|
2 |
# Copyright (C) 2008 John Carr
|
|
0.217.1
by John Carr
Start stubbing out rewritten git-serve |
3 |
# Copyright (C) 2008 Canonical Ltd
|
4 |
#
|
|
5 |
# This program is free software; you can redistribute it and/or modify
|
|
6 |
# it under the terms of the GNU General Public License as published by
|
|
7 |
# the Free Software Foundation; either version 2 of the License, or
|
|
8 |
# (at your option) any later version.
|
|
9 |
#
|
|
10 |
# This program is distributed in the hope that it will be useful,
|
|
11 |
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12 |
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13 |
# GNU General Public License for more details.
|
|
14 |
#
|
|
15 |
# You should have received a copy of the GNU General Public License
|
|
16 |
# along with this program; if not, write to the Free Software
|
|
17 |
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
18 |
||
0.200.531
by Jelmer Vernooij
Support 'bzr serve --git'. |
19 |
from dulwich.server import TCPGitServer |
20 |
||
0.200.495
by Jelmer Vernooij
Fix import. |
21 |
from bzrlib.bzrdir import ( |
22 |
BzrDir, |
|
0.200.861
by Jelmer Vernooij
Simplify ref determination, add asserts. |
23 |
)
|
0.200.292
by Jelmer Vernooij
Fix formatting. |
24 |
|
25 |
from bzrlib.plugins.git.mapping import ( |
|
26 |
default_mapping, |
|
27 |
)
|
|
0.200.456
by Jelmer Vernooij
Fix git -> git fetching. |
28 |
from bzrlib.plugins.git.object_store import ( |
0.200.485
by Jelmer Vernooij
Use ObjectStore to find revision SHA1s rather than 'simple' looups. |
29 |
get_object_store
|
0.200.456
by Jelmer Vernooij
Fix git -> git fetching. |
30 |
)
|
0.200.872
by Jelmer Vernooij
Move refs code to separate module. |
31 |
from bzrlib.plugins.git.refs import ( |
0.200.873
by Jelmer Vernooij
Add convenience command for accessing virtual git refs. |
32 |
BazaarRefsContainer, |
0.200.872
by Jelmer Vernooij
Move refs code to separate module. |
33 |
)
|
0.200.292
by Jelmer Vernooij
Fix formatting. |
34 |
|
35 |
from dulwich.server import ( |
|
36 |
Backend, |
|
0.200.831
by Jelmer Vernooij
Implement new git server backend API. |
37 |
BackendRepo, |
0.200.292
by Jelmer Vernooij
Fix formatting. |
38 |
)
|
0.217.32
by John Carr
Dirtyness to help pass tests |
39 |
|
0.217.1
by John Carr
Start stubbing out rewritten git-serve |
40 |
class BzrBackend(Backend): |
0.200.828
by Jelmer Vernooij
Fix formatting. |
41 |
"""A git serve backend that can use a Bazaar repository.""" |
0.217.1
by John Carr
Start stubbing out rewritten git-serve |
42 |
|
0.200.531
by Jelmer Vernooij
Support 'bzr serve --git'. |
43 |
def __init__(self, transport): |
44 |
self.transport = transport |
|
0.217.7
by John Carr
Create tips |
45 |
self.mapping = default_mapping |
0.217.2
by John Carr
Fix missing imports. Update TCPGitServer instantiation to latest. BzrBackend needs to know which directory its repo is in. |
46 |
|
0.200.831
by Jelmer Vernooij
Implement new git server backend API. |
47 |
def open_repository(self, path): |
0.249.1
by Jelmer Vernooij
More work on server side. |
48 |
# FIXME: More secure path sanitization
|
0.200.861
by Jelmer Vernooij
Simplify ref determination, add asserts. |
49 |
return BzrBackendRepo(self.transport.clone(path.lstrip("/")), |
50 |
self.mapping) |
|
0.200.831
by Jelmer Vernooij
Implement new git server backend API. |
51 |
|
52 |
||
53 |
class BzrBackendRepo(BackendRepo): |
|
54 |
||
55 |
def __init__(self, transport, mapping): |
|
56 |
self.transport = transport |
|
57 |
self.mapping = mapping |
|
58 |
self.repo_dir = BzrDir.open_from_transport(self.transport) |
|
59 |
self.repo = self.repo_dir.find_repository() |
|
60 |
self.object_store = get_object_store(self.repo) |
|
0.200.873
by Jelmer Vernooij
Add convenience command for accessing virtual git refs. |
61 |
self.refs = BazaarRefsContainer(self.repo_dir, self.object_store) |
0.200.874
by Jelmer Vernooij
Support tag refs. |
62 |
self._refs = self.refs.as_dict() # Much faster for now.. |
0.200.873
by Jelmer Vernooij
Add convenience command for accessing virtual git refs. |
63 |
|
64 |
def get_refs(self): |
|
0.200.874
by Jelmer Vernooij
Support tag refs. |
65 |
return self._refs |
0.200.831
by Jelmer Vernooij
Implement new git server backend API. |
66 |
|
0.200.862
by Jelmer Vernooij
Fix locking. |
67 |
def get_peeled(self, name): |
68 |
return self.get_refs()[name] |
|
69 |
||
70 |
def fetch_objects(self, determine_wants, graph_walker, progress, |
|
71 |
get_tagged=None): |
|
0.217.1
by John Carr
Start stubbing out rewritten git-serve |
72 |
""" yield git objects to send to client """ |
0.251.1
by Jelmer Vernooij
Implement ObjectStore.add_{thin_,}pack. |
73 |
|
0.217.12
by John Carr
Support ls-remote against bazaar |
74 |
wants = determine_wants(self.get_refs()) |
0.200.862
by Jelmer Vernooij
Fix locking. |
75 |
self.repo.lock_read() |
76 |
try: |
|
77 |
have = self.object_store.find_common_revisions(graph_walker) |
|
0.200.871
by Jelmer Vernooij
Fix fetching from bzr-git's server. |
78 |
return self.object_store.generate_pack_contents(have, wants, progress, |
79 |
get_tagged) |
|
0.200.862
by Jelmer Vernooij
Fix locking. |
80 |
finally: |
81 |
self.repo.unlock() |
|
0.200.531
by Jelmer Vernooij
Support 'bzr serve --git'. |
82 |
|
83 |
||
84 |
def serve_git(transport, host=None, port=None, inet=False): |
|
85 |
backend = BzrBackend(transport) |
|
86 |
||
0.248.1
by David Coles
Use host specified, not localhost |
87 |
if host is None: |
0.248.2
by Jelmer Vernooij
Still default to localhost, update NEWS |
88 |
host = 'localhost' |
0.248.1
by David Coles
Use host specified, not localhost |
89 |
if port: |
90 |
server = TCPGitServer(backend, host, port) |
|
91 |
else: |
|
92 |
server = TCPGitServer(backend, host) |
|
0.200.531
by Jelmer Vernooij
Support 'bzr serve --git'. |
93 |
server.serve_forever() |