From ed3200cd69b0422d32a70095f5aa46f2fa574556 Mon Sep 17 00:00:00 2001 From: Holger Levsen Date: Wed, 8 Feb 2012 19:04:06 +0100 Subject: [PATCH] lets try to get rid of the double clone --- debian_build.py | 10 ++++------ lib/git_helper.py | 33 +++++++++++++++++++-------------- 2 files changed, 23 insertions(+), 20 deletions(-) diff --git a/debian_build.py b/debian_build.py index cf7bf39..66b97bd 100755 --- a/debian_build.py +++ b/debian_build.py @@ -260,12 +260,10 @@ if __name__ == '__main__': repo = git.repo.Repo() #if GIT_BRANCH_NAME != 'master': - #git_helper.git_new_branch_from( - # FIXME: error checking... (as below) - git_helper.git_checkout_branch( - GIT_BRANCH_NAME) #, - # os.path.join('origin', GIT_BRANCH_NAME) - #) + git_helper.git_new_branch_from( + GIT_BRANCH_NAME, + os.path.join('origin', GIT_BRANCH_NAME) + ) # git-buildpackage uses only treeish object in v0.5.10, so let's fetch the # treeish refspec when a name was given (i.e. tag names, branch names, diff --git a/lib/git_helper.py b/lib/git_helper.py index 228f63a..ae03728 100644 --- a/lib/git_helper.py +++ b/lib/git_helper.py @@ -71,10 +71,27 @@ def git_clone_remote_repository(url, destination): return True def git_new_branch_from(branch_name, from_branch): + if git_repo_has_branch(branch_name): + cmd = [GIT, 'branch', '-D', branch_name] + + cmdobj = subprocess.Popen( + cmd, + shell=False, + close_fds=True, + stderr=subprocess.PIPE, + stdout=subprocess.PIPE, + env={'':''}, + cwd=os.getcwd() + ) + cmd = [GIT, 'checkout', branch_name] + + # this should not happen, we just deleted it if git_repo_has_branch(branch_name): raise BranchExistError(branch_name) -# if not git_repo_has_branch(from_branch): -# raise BranchNotExistError(from_branch) + + #if not git_repo_has_branch(from_branch): + # raise BranchNotExistError(from_branch) + cmd = [GIT, 'checkout', '-b', branch_name, from_branch] cmdobj = subprocess.Popen( @@ -118,18 +135,6 @@ def git_checkout_branch(branch_name): #if not git_repo_has_branch(branch_name): #raise BranchNotExistError(branch_name) - cmd = [GIT, 'reset', '--hard'] - - cmdobj = subprocess.Popen( - cmd, - shell=False, - close_fds=True, - stderr=subprocess.PIPE, - stdout=subprocess.PIPE, - env={'':''}, - cwd=os.getcwd() - ) - cmd = [GIT, 'checkout', branch_name] cmdobj = subprocess.Popen( cmd, -- 2.39.5