Browse Source

remote-bzr: add support for shared repo

This way all the remotes share the same data, so adding multiple
remotes, or renaming them doesn't create extra overhead.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Felipe Contreras 12 years ago committed by Junio C Hamano
parent
commit
c95c35f4b8
  1. 22
      contrib/remote-helpers/git-remote-bzr

22
contrib/remote-helpers/git-remote-bzr

@ -752,7 +752,20 @@ def get_repo(url, alias): @@ -752,7 +752,20 @@ def get_repo(url, alias):
origin = bzrlib.bzrdir.BzrDir.open(url)
is_local = isinstance(origin.transport, bzrlib.transport.local.LocalTransport)

clone_path = os.path.join(dirname, 'clone')
shared_path = os.path.join(gitdir, 'bzr')
try:
shared_dir = bzrlib.bzrdir.BzrDir.open(shared_path)
except bzrlib.errors.NotBranchError:
shared_dir = bzrlib.bzrdir.BzrDir.create(shared_path)
try:
shared_repo = shared_dir.open_repository()
except bzrlib.errors.NoRepositoryPresent:
shared_repo = shared_dir.create_repository(shared=True)

if not is_local:
clone_path = os.path.join(dirname, 'clone')
if not os.path.exists(clone_path):
os.mkdir(clone_path)

try:
repo = origin.open_repository()
@ -763,8 +776,6 @@ def get_repo(url, alias): @@ -763,8 +776,6 @@ def get_repo(url, alias):
branch = origin.open_branch()

if not is_local:
if not os.path.exists(clone_path):
os.mkdir(clone_path)
peers[name] = branch
branches[name] = get_remote_branch(origin, branch, name)
else:
@ -774,9 +785,6 @@ def get_repo(url, alias): @@ -774,9 +785,6 @@ def get_repo(url, alias):
else:
# repository

if not is_local and not os.path.exists(clone_path):
clonedir = bzrlib.bzrdir.BzrDir.create(clone_path)

for branch in repo.find_branches():

name = repo.user_transport.relpath(branch.base)
@ -800,7 +808,7 @@ def fix_path(alias, orig_url): @@ -800,7 +808,7 @@ def fix_path(alias, orig_url):
subprocess.call(cmd)

def main(args):
global marks, prefix, dirname
global marks, prefix, gitdir, dirname
global tags, filenodes
global blob_marks
global parsed_refs

Loading…
Cancel
Save