summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2017-07-22 13:45:38 +0300
committerLars Wirzenius <liw@liw.fi>2017-07-22 13:45:38 +0300
commit81c846e27bf3a1fddf297c6f3604d510af33bf3e (patch)
treedd4bd679ea7470ee15ea98fa4412b3be062e87cb
parentd59a66ecb4e5f5624ffa26dd6081c7331343dbc9 (diff)
downloaddistix-master.tar.gz
Add: clearer error message for unclean repoHEADmaster
-rw-r--r--NEWS1
-rw-r--r--distixlib/repo.py12
2 files changed, 12 insertions, 1 deletions
diff --git a/NEWS b/NEWS
index 9779565..e800bad 100644
--- a/NEWS
+++ b/NEWS
@@ -7,6 +7,7 @@ distix, a distributed ticketing system.
Version 0.17+git, not yet released
----------------------------------
+* Error messages about an unclean repository are now a bit clearer.
Version 0.17, released 2017-06-18
----------------------------------
diff --git a/distixlib/repo.py b/distixlib/repo.py
index 9a246e7..0f900ec 100644
--- a/distixlib/repo.py
+++ b/distixlib/repo.py
@@ -48,10 +48,20 @@ class Repository(object):
return [filename]
def require_clean_working_tree(self, stderr=sys.stderr):
+ states = {
+ '??': 'unknown',
+ 'M': 'modified',
+ }
+
git = distixlib.Git(self._dirname)
dirt = git.find_dirt()
if dirt:
- stderr.write('\ndirt: %r\n' % dirt)
+ stderr.write('ERROR: unclean repository:\n')
+ for speck in dirt:
+ status = speck[:2].strip()
+ filename = speck[3:].strip()
+ stderr.write(
+ ' {}: {}\n'.format(states.get(status, status), filename))
sys.exit(1)
def get_description(self):