summaryrefslogtreecommitdiffstats
path: root/subcmds/abandon.py
diff options
context:
space:
mode:
Diffstat (limited to 'subcmds/abandon.py')
-rw-r--r--subcmds/abandon.py27
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))