summaryrefslogtreecommitdiffhomepage
path: root/git_buildpackage/git_utils.py
diff options
context:
space:
mode:
Diffstat (limited to 'git_buildpackage/git_utils.py')
-rw-r--r--git_buildpackage/git_utils.py28
1 files changed, 25 insertions, 3 deletions
diff --git a/git_buildpackage/git_utils.py b/git_buildpackage/git_utils.py
index 59f80f25..1cd5e6d5 100644
--- a/git_buildpackage/git_utils.py
+++ b/git_buildpackage/git_utils.py
@@ -1,12 +1,16 @@
# -*- coding: utf-8 -*-
+#
# (C) 2006 Guido Guenther <agx@sigxcpu.org>
"""provides some git repository related helpers"""
import subprocess
import os.path
+import re
+
def is_repository_clean(path):
"""Does the repository at path contain any uncommitted modifications"""
+ clean_msg='nothing to commit'
try:
curdir=os.path.abspath(os.path.curdir)
os.chdir(path)
@@ -15,13 +19,30 @@ def is_repository_clean(path):
popen = subprocess.Popen(['git','status'], stdout=subprocess.PIPE)
popen.wait()
out=popen.stdout.readlines()
- if out[0].strip() != 'nothing to commit':
- ret=False
- else:
+ if out[0].strip() == clean_msg:
+ ret=True
+ elif out[0].startswith('#') and out[1].strip() == clean_msg:
ret=True
+ else:
+ ret=False
os.chdir(curdir)
return (ret, "".join(out))
+
+def get_repository_branch(path):
+ """on what branch is the repository at path?"""
+ try:
+ curdir=os.path.abspath(os.path.curdir)
+ os.chdir(path)
+ except OSError:
+ return None
+ popen = subprocess.Popen(['git','branch'], stdout=subprocess.PIPE)
+ popen.wait()
+ for line in popen.stdout:
+ if line.startswith('*'):
+ return line.split(' ',1)[1].strip()
+
+
def is_repository(path):
"""Is there a git repository at path"""
if not path:
@@ -32,6 +53,7 @@ def is_repository(path):
return False
return True
+
def sanitize_version(version):
"""sanitize a version so git accepts it as a tag"""
if ':' in version: # strip of any epochs