[PATCH v2 1/8] remote-bzr: recover from failed clones
From: Felipe Contreras <hidden>
Date: 2016-06-15 22:57:26
Subsystem:
the rest · Maintainer:
Linus Torvalds
Signed-off-by: Felipe Contreras <redacted> --- contrib/remote-helpers/git-remote-bzr | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-)
diff --git a/contrib/remote-helpers/git-remote-bzr b/contrib/remote-helpers/git-remote-bzr
index 10300c6..8a4df51 100755
--- a/contrib/remote-helpers/git-remote-bzr
+++ b/contrib/remote-helpers/git-remote-bzr@@ -769,22 +769,24 @@ def get_remote_branch(origin, remote_branch, name): global dirname, peers branch_path = os.path.join(dirname, 'clone', name) - if os.path.exists(branch_path): - # pull + + try: d = bzrlib.bzrdir.BzrDir.open(branch_path) branch = d.open_branch() - try: - branch.pull(remote_branch, [], None, False) - except bzrlib.errors.DivergedBranches: - # use remote branch for now - return remote_branch - else: + except bzrlib.errors.NotBranchError: # clone d = origin.sprout(branch_path, None, hardlink=True, create_tree_if_local=False, force_new_repo=False, source_branch=remote_branch) branch = d.open_branch() + else: + # pull + try: + branch.pull(remote_branch, [], None, False) + except bzrlib.errors.DivergedBranches: + # use remote branch for now + return remote_branch return branch
--
1.8.3.rc3.312.g47657de