diff options
Diffstat (limited to 'subcmds/abandon.py')
| -rw-r--r-- | subcmds/abandon.py | 27 | 
1 files changed, 18 insertions, 9 deletions
| 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 <branchname>". | |||
| 41 | 41 | ||
| 42 | nb = args[0] | 42 | nb = args[0] | 
| 43 | err = [] | 43 | err = [] | 
| 44 | success = [] | ||
| 44 | all = self.GetProjects(args[1:]) | 45 | all = self.GetProjects(args[1:]) | 
| 45 | 46 | ||
| 46 | pm = Progress('Abandon %s' % nb, len(all)) | 47 | pm = Progress('Abandon %s' % nb, len(all)) | 
| 47 | for project in all: | 48 | for project in all: | 
| 48 | pm.update() | 49 | pm.update() | 
| 49 | if not project.AbandonBranch(nb): | 50 | |
| 50 | err.append(project) | 51 | status = project.AbandonBranch(nb) | 
| 52 | if status is not None: | ||
| 53 | if status: | ||
| 54 | success.append(project) | ||
| 55 | else: | ||
| 56 | err.append(project) | ||
| 51 | pm.end() | 57 | pm.end() | 
| 52 | 58 | ||
| 53 | if err: | 59 | if err: | 
| 54 | if len(err) == len(all): | 60 | for p in err: | 
| 55 | print >>sys.stderr, 'error: no project has branch %s' % nb | 61 | print >>sys.stderr,\ | 
| 56 | else: | 62 | "error: %s/: cannot abandon %s" \ | 
| 57 | for p in err: | 63 | % (p.relpath, nb) | 
| 58 | print >>sys.stderr,\ | 64 | sys.exit(1) | 
| 59 | "error: %s/: cannot abandon %s" \ | 65 | elif not success: | 
| 60 | % (p.relpath, nb) | 66 | print >>sys.stderr, 'error: no project has branch %s' % nb | 
| 61 | sys.exit(1) | 67 | sys.exit(1) | 
| 68 | else: | ||
| 69 | print >>sys.stderr, 'Abandoned in %d project(s):\n %s' % ( | ||
| 70 | len(success), '\n '.join(p.relpath for p in success)) | ||
