From dafb1d68d33137779c96a83c7e42cac0e7a27ca4 Mon Sep 17 00:00:00 2001 From: Doug Anderson Date: Thu, 7 Apr 2011 11:46:59 -0700 Subject: Fixed repo abandon to give better messages. The main fix is to give an error message if nothing was actually abandoned. See . The secondary fix is to list projects where the abandon happened. This could be done in a separate CL or dropped altogether if requested. TEST=manual $ repo abandon dougabc; echo $? Abandon dougabc: 100% (127/127), done. Abandoned in 2 project(s): chromite src/platform/init 0 $ repo abandon dougabc; echo $? Abandon dougabc: 100% (127/127), done. error: no project has branch dougabc 1 $ repo abandon dougabc; echo $? Abandon dougabc: 100% (127/127), done. error: chromite/: cannot abandon dougabc 1 Change-Id: I79520cc3279291acadc1a24ca34a761e9de04ed4 --- subcmds/abandon.py | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) (limited to 'subcmds') diff --git a/subcmds/abandon.py b/subcmds/abandon.py index 8af61327..42abb2ff 100644 --- a/subcmds/abandon.py +++ b/subcmds/abandon.py @@ -41,21 +41,30 @@ It is equivalent to "git branch -D ". nb = args[0] err = [] + success = [] all = self.GetProjects(args[1:]) pm = Progress('Abandon %s' % nb, len(all)) for project in all: pm.update() - if not project.AbandonBranch(nb): - err.append(project) + + status = project.AbandonBranch(nb) + if status is not None: + if status: + success.append(project) + else: + err.append(project) pm.end() if err: - if len(err) == len(all): - print >>sys.stderr, 'error: no project has branch %s' % nb - else: - for p in err: - print >>sys.stderr,\ - "error: %s/: cannot abandon %s" \ - % (p.relpath, nb) + for p in err: + print >>sys.stderr,\ + "error: %s/: cannot abandon %s" \ + % (p.relpath, nb) + sys.exit(1) + elif not success: + print >>sys.stderr, 'error: no project has branch %s' % nb sys.exit(1) + else: + print >>sys.stderr, 'Abandoned in %d project(s):\n %s' % ( + len(success), '\n '.join(p.relpath for p in success)) -- cgit v1.2.3-54-g00ecf