remote-bzr: simplify get_remote_branch()
No need for 'origin', it's only needed for the bzrdir 'sprout' method, which can be greatly simplified. Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
ad44a72095
commit
1bf09d4fbf
@ -765,25 +765,26 @@ def do_list(parser):
|
|||||||
print "@refs/heads/%s HEAD" % master_branch
|
print "@refs/heads/%s HEAD" % master_branch
|
||||||
print
|
print
|
||||||
|
|
||||||
def get_remote_branch(origin, remote_branch, name):
|
def clone(path, remote_branch):
|
||||||
|
bdir = bzrlib.bzrdir.BzrDir.create(path)
|
||||||
|
repo = bdir.find_repository()
|
||||||
|
repo.fetch(remote_branch.repository)
|
||||||
|
return remote_branch.sprout(bdir, repository=repo)
|
||||||
|
|
||||||
|
def get_remote_branch(remote_branch, name):
|
||||||
global dirname, peers
|
global dirname, peers
|
||||||
|
|
||||||
branch_path = os.path.join(dirname, 'clone', name)
|
branch_path = os.path.join(dirname, 'clone', name)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
d = bzrlib.bzrdir.BzrDir.open(branch_path)
|
branch = bzrlib.branch.Branch.open(branch_path)
|
||||||
branch = d.open_branch()
|
|
||||||
except bzrlib.errors.NotBranchError:
|
except bzrlib.errors.NotBranchError:
|
||||||
# clone
|
# clone
|
||||||
d = origin.sprout(branch_path, None,
|
branch = clone(branch_path, remote_branch)
|
||||||
hardlink=True, create_tree_if_local=False,
|
|
||||||
force_new_repo=False,
|
|
||||||
source_branch=remote_branch)
|
|
||||||
branch = d.open_branch()
|
|
||||||
else:
|
else:
|
||||||
# pull
|
# pull
|
||||||
try:
|
try:
|
||||||
branch.pull(remote_branch, [], None, False)
|
branch.pull(remote_branch, overwrite=True)
|
||||||
except bzrlib.errors.DivergedBranches:
|
except bzrlib.errors.DivergedBranches:
|
||||||
# use remote branch for now
|
# use remote branch for now
|
||||||
return remote_branch
|
return remote_branch
|
||||||
@ -856,7 +857,7 @@ def get_repo(url, alias):
|
|||||||
|
|
||||||
if not is_local:
|
if not is_local:
|
||||||
peers[name] = remote_branch.base
|
peers[name] = remote_branch.base
|
||||||
branch = get_remote_branch(origin, remote_branch, name)
|
branch = get_remote_branch(remote_branch, name)
|
||||||
else:
|
else:
|
||||||
branch = remote_branch
|
branch = remote_branch
|
||||||
|
|
||||||
@ -874,7 +875,7 @@ def get_repo(url, alias):
|
|||||||
|
|
||||||
if not is_local:
|
if not is_local:
|
||||||
peers[name] = remote_branch.base
|
peers[name] = remote_branch.base
|
||||||
branch = get_remote_branch(origin, remote_branch, name)
|
branch = get_remote_branch(remote_branch, name)
|
||||||
else:
|
else:
|
||||||
branch = remote_branch
|
branch = remote_branch
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user