33
from bzrlib.foreign import (
36
from bzrlib.lockable_files import (
39
from bzrlib.transport import (
40
register_lazy_transport,
41
register_transport_proto,
43
from bzrlib.commands import (
46
from bzrlib.trace import (
50
# versions ending in 'exp' mean experimental mappings
51
# versions ending in 'dev' mean development version
52
# versions ending in 'final' mean release (well tested, etc)
53
version_info = (0, 2, 0, 'dev', 0)
55
if version_info[3] == 'final':
56
version_string = '%d.%d.%d' % version_info[:3]
58
version_string = '%d.%d.%d%s%d' % version_info
59
__version__ = version_string
61
MINIMUM_DULWICH_VERSION = (0, 1, 1)
62
COMPATIBLE_BZR_VERSIONS = [(1, 13, 0)]
29
from bzrlib import bzrdir, errors as bzr_errors
30
from bzrlib.foreign import foreign_vcs_registry
31
from bzrlib.lockable_files import TransportLock
32
from bzrlib.transport import register_lazy_transport
33
from bzrlib.commands import plugin_cmds
34
from bzrlib.trace import warning
36
MINIMUM_DULWICH_VERSION = (0, 1, 0)
37
COMPATIBLE_BZR_VERSIONS = [(1, 11, 0), (1, 12, 0)]
64
39
if getattr(sys, "frozen", None):
65
40
# allow import additional libs from ./_lib for bzr.exe only
86
61
help='GIT repository.', native=False, experimental=True,
89
from bzrlib.revisionspec import revspec_registry
90
revspec_registry.register_lazy("git:", "bzrlib.plugins.git.revspec",
65
from bzrlib.revisionspec import revspec_registry
66
revspec_registry.register_lazy("git:", "bzrlib.plugins.git.revspec",
70
from bzrlib.revisionspec import SPEC_TYPES
71
from bzrlib.plugins.git.revspec import RevisionSpec_git
72
SPEC_TYPES.append(RevisionSpec_git)
93
74
class GitBzrDirFormat(bzrdir.BzrDirFormat):
94
75
_lock_class = TransportLock
177
158
"""Open this directory.
180
# we dont grok readonly - git isn't integrated with transport.
182
if url.startswith('readonly+'):
183
url = url[len('readonly+'):]
184
if (not url.startswith("git://") and
185
not url.startswith("git+")):
186
raise bzr_errors.NotBranchError(transport.base)
187
161
from bzrlib.plugins.git.remote import RemoteGitDir, GitSmartTransport
188
162
if not isinstance(transport, GitSmartTransport):
189
163
raise bzr_errors.NotBranchError(transport.base)
164
# we dont grok readonly - git isn't integrated with transport.
166
if url.startswith('readonly+'):
167
url = url[len('readonly+'):]
190
169
from bzrlib.plugins.git.dir import GitLockableFiles, GitLock
191
170
lockfiles = GitLockableFiles(transport, GitLock())
192
171
return RemoteGitDir(transport, lockfiles, self)
195
174
def probe_transport(klass, transport):
196
175
"""Our format is present if the transport ends in '.not/'."""
198
if url.startswith('readonly+'):
199
url = url[len('readonly+'):]
200
if (not url.startswith("git://") and
201
not url.startswith("git+")):
202
raise bzr_errors.NotBranchError(transport.base)
203
176
# little ugly, but works
205
178
from bzrlib.plugins.git.remote import GitSmartTransport
229
202
bzrdir.BzrDirFormat.register_control_format(LocalGitBzrDirFormat)
230
203
bzrdir.BzrDirFormat.register_control_format(RemoteGitBzrDirFormat)
232
register_transport_proto('git://',
233
help="Access using the Git smart server protocol.")
234
register_transport_proto('git+ssh://',
235
help="Access using the Git smart server protocol over SSH.")
237
205
register_lazy_transport("git://", 'bzrlib.plugins.git.remote',
238
'TCPGitSmartTransport')
240
register_lazy_transport("git+ssh://", 'bzrlib.plugins.git.remote',
241
'SSHGitSmartTransport')
243
208
foreign_vcs_registry.register_lazy("git",
244
209
"bzrlib.plugins.git.mapping",
248
213
plugin_cmds.register_lazy("cmd_git_serve", [], "bzrlib.plugins.git.commands")
249
214
plugin_cmds.register_lazy("cmd_git_import", [], "bzrlib.plugins.git.commands")
251
def get_rich_root_format():
253
return bzrdir.format_registry.make_bzrdir("default-rich-root")
255
return bzrdir.format_registry.make_bzrdir("1.9-rich-root")
257
216
def test_suite():
258
217
from bzrlib.plugins.git import tests
259
218
return tests.test_suite()