diff options
author | Guido Günther <agx@sigxcpu.org> | 2008-11-22 17:44:29 +0100 |
---|---|---|
committer | Guido Guenther <agx@sigxcpu.org> | 2008-11-22 17:46:37 +0100 |
commit | 1898f63e8a5cc389a992e18094b35b3ceb3857dd (patch) | |
tree | 873c59c1f455740c294201d44ea573c84037ef7b | |
parent | a5d3c847337fd34f491b386e2b7cd42fca23b941 (diff) |
add GitRepository.is_empty and create_repo helpers
-rw-r--r-- | gbp/git_utils.py | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/gbp/git_utils.py b/gbp/git_utils.py index 90926f00..da8884e2 100644 --- a/gbp/git_utils.py +++ b/gbp/git_utils.py @@ -5,7 +5,7 @@ import subprocess import os.path -from command_wrappers import (GitAdd, GitRm, GitCheckoutBranch, copy_from) +from command_wrappers import (GitAdd, GitRm, GitCheckoutBranch, GitInit, copy_from) import dateutil.parser import calendar @@ -90,6 +90,14 @@ class GitRepository(object): ret = True return (ret, "".join(out)) + def is_empty(self): + """returns True if repo is empty (doesn't have any commits)""" + # an empty repo has no branches: + if self.get_branch(): + return False + else: + return True + def index_files(self): """List files in the index""" out, ret = self.__git_getoutput('ls-files', ['-z']) @@ -146,6 +154,22 @@ class GitRepository(object): return not self.is_clean()[0] +def create_repo(path): + """create a repository at path""" + abspath = os.path.abspath(path) + pwd = os.path.abspath(os.curdir) + try: + os.makedirs(abspath) + os.chdir(abspath) + GitInit()() + return GitRepository(abspath) + except OSError, err: + raise GitRepositoryError, "Cannot create Git repository at %s: %s "% err[1] + finally: + os.chdir(pwd) + return None + + def build_tag(format, version): """Generate a tag from a given format and a version""" return format % dict(version=sanitize_version(version)) |