def maketemp(): tmp = os.path.join(os.path.dirname(__file__), 'tmp') mkdir(tmp) name = find_test_name() tmp = os.path.join(tmp, name) try: shutil.rmtree(tmp) except OSError, e: if e.errno == errno.ENOENT: pass else: raise
def init(repo): """ Initialize bug tracking component of existing repository. """ util.mkdir(os.path.join(repo, '.git', 'bugit')) # does refs/heads/bugit/master exist? if git_rev_parse( rev='refs/heads/bugit/master', repo=repo, ) is None: # it did not, so create it # first create empty tree tree = git_mktree( children=[], repo=repo, ) # create a commit that points to empty tree commit = git_commit_tree( tree=tree, message='Initial creation of bugit tree.', repo=repo, ) # make a ref point to that tree git_update_ref( ref='refs/heads/bugit/master', sha=commit, old_sha=40*'0', repo=repo, ) # does bugit/HEAD exist? process = subprocess.Popen( args=[ 'git', 'symbolic-ref', '--quiet', 'bugit/HEAD', ], cwd=repo, close_fds=True, stdout=subprocess.PIPE, ) head = process.stdout.read() returncode = process.wait() if returncode not in [0, 1]: raise RuntimeError('git symbolic-ref failed') if not head: # it did not, so create it returncode = subprocess.call( args=[ 'git', 'symbolic-ref', 'bugit/HEAD', 'refs/heads/bugit/master', ], cwd=repo, close_fds=True, ) if returncode != 0: raise RuntimeError('git symbolic-ref failed')